ОБЪЕКТИВНОСТЬ БЕЗ КОМПРОМИССОВОбъективность Без Компромиссов В Мире Компьютеров
НОВОСТИ САЙТАТЕСТИРУЕМ ВМЕСТЕИНТЕРНЕТ и ПОВСЯКО-РАЗНОСОФТ ПРОЕКТЫНАШИ ССЫЛКИ
ГЛАВНАЯ >> ИНТЕРНЕТ и ПО >> ПРОГРАММИРОВАНИЕ: Секреты Visual Basic 2012

НАЗВАНИЕ СТАТЬИ: Секреты Visual Basic 2012
АВТОРСТВО: Алекс Наб
ДАТА НАПИСАНИЯ: Октябрь 2012 года
ДАТА ПЕЧАТНОЙ ПУБЛИКАЦИИ: online
ДАТА ПОСЛЕДНЕЙ РЕДАКЦИИ: Октябрь 2012
Игорь Мотякин

Многие начинающие программисты решают проблему по созданию базы из готовых кусов кода для решения типичных задач. К сожалению, готовых рецептов с комплексным подходом пока нет, но попытки создания подобных энциклопедий для определенных языков программирования продолжаются.
У нас на редактуре лежит «рукопись» книги весьма толкового программиста Игоря Мотякина. В ней автор рассказывает о полезных функциях и известных приемах в консольном программировании на Visual Basic 2012. Многие знания удачно систематизированы в удобные таблицы и лаконичные абзацы. Разумеется, не удержались и попросили разрешение автора на перепечатку ряда упакованных данных, которые не встретишь даже в специализированной литературе. К удивлению, Игорь Владимирович Мотякин не смог отказать, так что и вы получаете возможность перенять накопленные знания уже сегодня, как в образовательных целях, так и в профессиональных.

System - пространство имен
Пространство имен System содержит фундаментальные и базовые классы, которые определяют распространенные типы значений и ссылочные типы данных, события и обработчики событий, интерфейсы, атрибуты и исключения обработки. Также содержит классы, обеспечивающие поддержку преобразования типов данных, операций с параметрами методов, математических операций, удаленного и локального вызова программ, управления средой приложений и контроля управляемых и неуправляемых приложений.
Класс Описание
AccessViolationException Исключение, которое выбрасывается при попытке чтения или записи в защищенную область памяти.
ActivationContext Идентифицирует контекст активации для текущего приложения. Данный класс не может наследоваться.
Activator Содержит методы, позволяющие локально или удаленно создавать типы объектов или получать ссылки на существующие удаленные объекты. Данный класс не может наследоваться.
AppDomain Представляет домен приложения, являющийся изолированной средой, в которой выполняются приложения. Данный класс не может наследоваться.
AppDomainManager Предоставляет управляемый эквивалент неуправляемого узла.
AppDomainSetup Предоставляет сведения о привязке сборок, которые могут быть добавлены к экземпляру класса AppDomain.
AppDomainUnloadedException Исключение, выбрасываемое при попытке доступа к выгруженному домену приложения.
ApplicationException Это исключение выбрасывается при происхождении устранимой ошибки приложения.
ApplicationId Содержит сведения, используемые для уникальной идентификации приложения на основе манифеста. Данный класс не может наследоваться.
ApplicationIdentity Предоставляет возможность уникальной идентификации приложения, активируемого на основе манифеста. Данный класс не может наследоваться.
ArgumentException Это исключение выбрасывается, если один из передаваемых методу аргументов является недопустимым.
ArgumentNullException Исключение, которое выбрасывается, при передаче указателя NULL (Nothing в Visual Basic) методу, который не принимает его как недопустимый аргумент.
ArgumentOutOfRangeException Исключение, которое выбрасывается, когда значение аргумента находится вне допустимого диапазона значений, как определено вызываемым методом.
ArithmeticException Исключение, которое выбрасывается для ошибок арифметических действий, а также операций приведения к типу и преобразования.
Array Предоставляет методы для создания, изменения, поиска и сортировки массивов, то есть выступает в роли базового класса для всех массивов в среде CLR.
ArrayTypeMismatchException Исключение, которое выбрасывается при попытке сохранить в массиве элемент неправильного типа.
AssemblyLoadEventArgs Предоставляет данные для события AssemblyLoad.
Attribute Представляет базовый класс для настраиваемых атрибутов.
AttributeUsageAttribute Определяет использование другого класса атрибутов. Данный класс не может наследоваться.
BadImageFormatException Исключение, которое выбрасывается при недопустимом образе файла DLL или выполняемой программы.
BitConverter Преобразует базовые типы данных в массив байтов и массив байтов в базовые типы данных.
Buffer Манипулирует массивами простых типов.
CannotUnloadAppDomainException Исключение, которое выбрасывается при неудачной попытке выгрузить домен приложения.
CharEnumerator Поддерживает итерацию по объекту String и чтение отдельных его символов. Данный класс не может наследоваться.
CLSCompliantAttribute Указывает, соответствует ли элемент программы спецификации CLS. Данный класс не может наследоваться.
Console Предоставляет стандартные потоки для консольных приложений: входной, выходной и поток сообщений об ошибках. Данный класс не может наследоваться.
ConsoleCancelEventArgs Предоставляет данные для события Console..::.CancelKeyPress. Данный класс не может наследоваться.
ContextBoundObject Определяет базовый класс для всех классов с привязкой к контексту.
ContextMarshalException Устаревшее. Исключение, выбрасываемое при неудачной попытке маршалинга объекта через границы контекста.
ContextStaticAttribute Указывает, что значение статического поля уникально для конкретного контекста.
Convert Преобразует значение одного базового типа данных к другому базовому типу данных.
DataMisalignedException Исключение, которое выбрасывается, когда единица данных считывается или записывается по адресу, не кратному размеру данных. Данный класс не может наследоваться.
DBNull Представляет несуществующее значение. Данный класс не может наследоваться.
Delegate Представляет делегат — структуру данных, указывающую на статический метод или на экземпляр класса и метод экземпляра этого класса.
DivideByZeroException Исключение, выбрасываемое при попытке деления целого или дробного числа на нуль.
DllNotFoundException Исключение, которое выбрасывается в случае невозможности найти библиотеку DLL, указанную при импорте DLL.
DuplicateWaitObjectException Исключение, выбрасываемое, когда объект присутствует в массиве объектов синхронизации более одного раза.
EntryPointNotFoundException Исключение, выбрасываемое, когда попытка загрузки класса завершается неудачей из-за отсутствия метода входа.
Enum Предоставляет базовый класс для перечислений.
Environment Предоставляет сведения о текущей среде и платформе, а также необходимые для управления ими средства. Данный класс не может наследоваться.
EventArgs EventArgs — это базовый класс для классов, содержащих данные о событии.
Exception Представляет ошибки, происходящие во время выполнения приложения.
ExecutionEngineException Исключение, выбрасываемое при внутренней ошибке в ядре выполнения среды CLR. Данный класс не может наследоваться.
FieldAccessException Исключение, выбрасываемое при попытке недопустимого доступа к закрытому или защищенному полю класса.
FileStyleUriParser Настраиваемое средство синтаксического анализа на основе схемы File.
FlagsAttribute Указывает, что перечисление может обрабатываться как битовое поле, которое является набором флагов.
FormatException Исключение, выбрасываемое, если формат аргумента не соответствует спецификациям параметра вызываемого метода.
FtpStyleUriParser Настраиваемое средство синтаксического анализа на основе схемы протокола FTP.
GC Управляет системным сборщиком мусора — службой, которая автоматически высвобождает неиспользуемую память.
GenericUriParser Настраиваемый анализатор иерархического универсального кода ресурса (URI).
GopherStyleUriParser Настраиваемое средство синтаксического анализа на основе схемы Gopher.
HttpStyleUriParser Настраиваемое средство синтаксического анализа на основе схемы HTTP.
IndexOutOfRangeException Исключение, которое выбрасывается при попытке обращения к элементу массива с индексом, который находится вне границ массива. Данный класс не может наследоваться.
InsufficientMemoryException Исключение, которое выбрасывается, когда проверка наличия необходимого объема памяти завершается неудачей. Данный класс не может наследоваться.
InvalidCastException Исключение, которое выбрасывается при недопустимом приведении или явном преобразовании типов.
InvalidOperationException Исключение, которое выдается при вызове метода, недопустимого для текущего состояния объекта.
InvalidProgramException Исключение, которое выбрасывается, если программа содержит недопустимые инструкции MSIL или метаданные. Обычно оно указывает на ошибку в компиляторе, который сгенерировал данную программу.
InvalidTimeZoneException Исключение возникает при недопустимости сведений о часовом поясе.
LdapStyleUriParser Настраиваемое средство синтаксического анализа, основанное на схеме протокола LDAP.
LoaderOptimizationAttribute Используется для установки политики оптимизации загрузчика для основного метода исполняемого приложения.
LocalDataStoreSlot Инкапсулирует ячейку памяти для хранения локальных данных. Данный класс не может наследоваться.
MarshalByRefObject Разрешает доступ к объектам через границы доменов приложения в приложениях, поддерживающих удаленное взаимодействие.
Math Предоставляет константы и статические методы для тригонометрических, логарифмических и иных общих математических функций.
MemberAccessException Исключение возникает при неудачной попытке доступа к члену класса.
MethodAccessException Исключение, выбрасываемое при попытке недопустимого доступа к служебным или защищенным методам внутри класса.
MissingFieldException Исключение, выбрасываемое при попытке динамического доступа к несуществующему полю.
MissingMemberException Исключение, выбрасываемое при попытке динамического доступа к несуществующему члену класса.
MissingMethodException Исключение, выбрасываемое при попытке динамического доступа к несуществующему методу.
MTAThreadAttribute Указывает, что потоковая модель COM для приложения является многопотоковым подразделением (MTA).
MulticastDelegate Представляет групповой делегат, то есть делегат, имеющий в своем списке вызовов более одного элемента.
MulticastNotSupportedException Исключение, которое выбрасывается при попытке объединить два делегата на основе типа Delegate, а не MulticastDelegate. Данный класс не может наследоваться.
NetPipeStyleUriParser Средство синтаксического анализа, основанное на схеме NetPipe для системы Indigo.
NetTcpStyleUriParser Средство синтаксического анализа на основе схемы NetTcp для системы Indigo.
NewsStyleUriParser Настраиваемое средство анализа, основанное на схеме новостей, используемой протоколом NNTP.
NonSerializedAttribute Указывает, что поле сериализуемого класса не должно быть сериализовано. Данный класс не может наследоваться.
NotFiniteNumberException Исключение, которое выбрасывается, когда значение с плавающей запятой является плюс бесконечностью, минус бесконечностью или не является числовым (NaN).
NotImplementedException Это исключение выбрасывается, когда запрошенный метод или операция не реализованы.
NotSupportedException Исключение, которое генерируется, если вызываемый метод не поддерживается, или если была осуществлена попытка чтения, поиска или записи в потоке, который не поддерживает функции вызова.
Nullable Поддерживает тип значения, которому может быть присвоено значение nullNothingnullptrссылка null (Nothing в Visual Basic), как и ссылочному типу. Данный класс не может наследоваться.
NullReferenceException Исключение, возникающее при попытке разыменования указателя NULL на объект.
Object Поддерживает все классы в иерархии классов .NET Framework и предоставляет низкоуровневые службы для производных классов. Он является исходным базовым классом для всех классов платформы .NET Framework и корнем иерархии типов.
ObjectDisposedException Исключение, которое выбрасывается при выполнении операции над удаленным объектом.
ObsoleteAttribute Отмечает элементы программы, которые больше не используются. Данный класс не может наследоваться.
OperatingSystem Предоставляет информацию об операционной системе, например версию и идентификатор платформы. Данный класс не может наследоваться.
OperationCanceledException Исключение, которое выбрасывается в потоке при отмене операции, которую выполняет этот поток.
OutOfMemoryException Исключение, которое выбрасывается при недостаточном объеме памяти для выполнения программы.
OverflowException Исключение, которое выбрасывается, когда при выполнении арифметических операций, операций приведения типов и преобразования происходит переполнение.
ParamArrayAttribute Указывает на то, что при вызове метода допускается использование переменного числа аргументов. Данный класс не может наследоваться.
PlatformNotSupportedException Исключение, возникающее в случае невозможности выполнения функции на определенной платформе.
Random Представляет генератор псевдослучайных чисел, устройство, которое выдает последовательность чисел, отвечающую определенным статистическим критериям случайности.
RankException Исключение, которое возникает при передаче в метод массива с неправильным числом размерностей.
ResolveEventArgs Предоставляет данные для событий TypeResolve, ResourceResolve и AssemblyResolve.
SerializableAttribute Указывает на возможность сериализации класса. Данный класс не может наследоваться.
StackOverflowException Исключение, которое выбрасывается при переполнении стека выполнения из-за чрезмерного количества вложенных вызовов метода. Данный класс не может наследоваться.
STAThreadAttribute Указывает, что потоковая модель COM для приложения является однопотоковым подразделением (STA).
String Представляет текст как последовательность знаков Юникода.
StringComparer Представляет операции сравнения строк, в которых используются правила сравнения с учетом регистра, языка и региональных параметров или правил сравнения по порядковому номеру.
SystemException Определяет базовый класс для стандартных исключений в пространстве имен System.
ThreadStaticAttribute Указывает, что значение статического поля уникально для каждого потока.
TimeoutException Исключение, возникающее при истечении времени, предоставленного процессу или операции.
TimeZone Предоставляет часовой пояс.
TimeZoneInfo Представляет любой часовой пояс в мире.
TimeZoneInfo..::.AdjustmentRule Предоставляет сведения о такой связанной с часовым поясом коррекции, как переход на летнее и зимнее время.
TimeZoneNotFoundException Исключение, выбрасываемое, когда не удается найти часовой пояс.
Type Представляет объявления типов для классов, интерфейсов, массивов, значений, перечислений параметров, определений универсальных типов и открытых или закрытых сконструированных универсальных типов.
TypeInitializationException Исключение, которое выбрасывается как оболочка для исключения, выброшенного инициализатором класса. Данный класс не может наследоваться.
TypeLoadException Исключение, выбрасываемое при сбоях во время загрузки типов.
TypeUnloadedException Исключение, которое выбрасывается при попытке обращения к выгруженному классу.
UnauthorizedAccessException Исключение, возникающее в случае запрета доступа операционной системой из-за ошибки ввода-вывода или особого типа ошибки безопасности.
UnhandledExceptionEventArgs Предоставляет данные для события, которое генерируется при возникновении исключения, не обработанного ни одним доменом приложения.
Uri Обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям.
UriBuilder Предоставляет особый конструктор для универсальных идентификаторов ресурсов (URI), а также изменяет URI для класса Uri.
UriFormatException Исключение возникает при обнаружении недопустимого универсального кода ресурса (URI).
UriParser Анализирует новую схему URI. Этот класс является абстрактным.
UriTemplate A class that represents a Uniform Resource Identifier (URI) template.
UriTemplateEquivalenceComparer A class used to compare UriTemplate instances for structural (instead of reference) equivalence.
UriTemplateMatch A class that represents the results of a match operation on a UriTemplate instance.
UriTemplateMatchException Represents an error when matching a Uri to a UriTemplateTable.
UriTemplateTable A class that represents an associative set of UriTemplate objects.
UriTypeConverter Преобразует значение типа String к типу Uri и наоборот.
ValueType Предоставляет базовый класс для типов значений.
Version Представляет номер версии построения среды CLR. Данный класс не может наследоваться.
WeakReference Представляет слабую ссылку, которая указывает на объект, но позволяет удалять его сборщику мусора.

Console - класс
Предоставляет стандартные потоки для консольных приложений: входной, выходной и поток сообщений об ошибках. Данный класс не может наследоваться. Консолью называется окно операционной системы, в котором пользователи взаимодействуют с операционной системой или текстовым консольным приложением путем набора текстового ввода с клавиатуры и чтения текстового вывода с экрана компьютера. Например, в Windows консоль называется окном командной строки и принимает команды MS-DOS. Класс Console предоставляет базовую поддержку приложениям, считывающим символы с консоли и записывающим их на консоль.
Потоки консольного ввода-вывода. Когда консольное приложение начинает работу, операционная система автоматически связывает с консолью три потока ввода-вывода. Приложение может считывать пользовательский ввод из стандартного входного потока, записывать обычные данные в стандартный выходной поток и записывать данные об ошибках в стандартный поток сообщений об ошибках. Эти потоки представлены в приложении значениями свойств In, Out и Error.
По умолчанию значением свойства In является объект System.IO..::.TextReader, а значениями свойств Out и Error — объекты System.IO..::.TextWriter. Однако имеется возможность связать эти свойства с потоками, не предоставляющими консоль, например с потоками, предоставляющими файлы. Чтобы перенаправить стандартный ввод, стандартный вывод или стандартный поток ошибки, вызовите соответствующий метод: SetIn, SetOut или SetError. Операции ввода-вывода, осуществляемые с использованием указанных потоков, синхронизированы, то есть несколько программных потоков могут выполнять чтение и запись данных в потоки ввода-вывода.
Члены класса Console, работающие нормально, когда базовый поток направлен на консоль, могут выбрасывать исключение, если поток перенаправлен, например, в файл. Поэтому в приложениях следует перехватывать исключение System.IO..::.IOException, если стандартный поток перенаправлен.
Иногда целесообразно явно вызывать члены потоковых объектов, представленные свойствами In, Out и Error. Например, по умолчанию метод Console..::.ReadLine считывает входные данные из стандартного входного потока. Точно так же метод Console..::.WriteLine записывает данные в стандартный поток вывода и завершает вывод записью строки по умолчанию, идентифицирующей конец строки данных; то есть за данными следуют символы возврата каретки и перевода строки ("\r\n"). Однако класс Console не предоставляет соответствующего метода для записи данных в стандартный поток сообщений об ошибках или свойства для изменения строки, идентифицирующей конец записанных в поток данных.
Для решения этой проблемы можно присвоить свойству TextWriter..::.NewLine объекта Out или Error другую строку, идентифицирующую конец строки данных. Например, оператор C# Console.Error.NewLine = "\r\n\r\n"; задает для стандартного потока сообщений об ошибках строку, идентифицирующую конец строки данных, в виде двух последовательностей символов возврата каретки и перевода строки. Затем можно явно вызвать метод WriteLine объекта, представляющего поток сообщений об ошибках, как в следующем операторе C#: Console.Error.WriteLine();.

Игорь Мотякин: секреты Visual Basic 2012
Игорь Мотякин

Буфер экрана и окно консоли. Двумя тесно связанными между собой элементами консоли являются буфер экрана и окно консоли. Текст в реальности считывается из потоков и записывается в потоки, принадлежащие консоли, но кажется, что он считывается из принадлежащей консоли области, называемой буфером экрана, и записывается в эту область. Буфер экрана является атрибутом консоли, он организован в виде прямоугольной сетки строки и столбцов, в которой каждое пересечение строки и столбца, или символьная ячейка, содержит один символ. Каждый символ имеет собственный цвет и каждая символьная ячейка имеет собственный цвет фона.
Содержимое буфера экрана просматривается через прямоугольную область, называемую окном консоли. Окно консоли является еще одним атрибутом консоли; это не сама консоль, которая является окном операционной системы. Окно консоли также организовано в виде строк и столбцов, а его размер меньше или равен размеру буфера экрана; при этом окно консоли можно перемещать для просмотра разных областей буфера экрана, с которым оно связано. Если буфер экрана больше окна консоли, в этом окне автоматически отображаются полосы прокрутки, чтобы окно консоли можно было репозиционировать относительно буфера.
Курсор задает позицию в буфере экрана, откуда в данный момент осуществляется чтение и куда осуществляется запись данных. Курсор можно скрывать или отображать, можно также менять его высоту. Если курсор отображается, положение окна консоли автоматически изменяется, чтобы он постоянно был видим.
Началом координат сетки символьных ячеек в буфере экрана является его верхний левый угол, и позиция курсора в окне консоли измеряется относительно этого начала координат. Для указания позиции используются индексы, отсчитываемые от нуля, то есть самая верхняя строка и крайний слева столбец имеют индекс 0. Максимальное значение индексов строки и столбца определяется значением свойства Int16..::.MaxValue.
Функциональные возможности. Класс Console содержит методы для чтения с консоли отдельных символов или целых строк, а также несколько методов записи, автоматически преобразующие экземпляр типа значения, массив символов или набор объектов в форматированную или неформатированную строку и затем записывающие эту строку, а за ней необязательную строку, идентифицирующую конец строки данных. Также класс Console содержит методы и свойства, позволяющие получить или задать размер буфера экрана, окна консоли и курсора, изменить положение окна консоли и курсора, переместить или удалить данные в буфере экрана, изменить цвета фона и текста, изменить текст, отображаемый в строке заголовка консоли и воспроизвести звуковой сигнал.
Класс Console также включает элементы, которые поддерживают настройку внешнего вида самого окна консоли. Метод SetWindowSize позволяет одновременно изменять количество строк или столбцов в окне консоли, в то время как свойства WindowHeight и WindowWidth позволяют изменять количество строк и столбцов независимо друг от друга. Свойства ForegroundColor и BackgroundColor позволяют изменять цвет окна консоли, а свойства CursorSize и CursorVisible позволяют выполнять настройку курсора в окне консоли.

Math - члены
Предоставляет константы и статические методы для тригонометрических, логарифмических и иных общих математических функций. Тип Math предоставляет следующие члены.
Имя Описание
Abs Перегружен. Возвращает абсолютное значение заданного числа.
Acos Возвращает угол, косинус которого равен указанному числу.
Asin Возвращает угол, синус которого равен указанному числу.
Atan Возвращает угол, тангенс которого равен указанному числу.
Atan2 Возвращает угол, тангенс которого равен отношению двух указанных чисел.
BigMul Умножает два 32-битовых числа.
Ceiling Перегружен. Возвращает наименьшее целое число, которое больше или равно заданному числу.
Cos Возвращает косинус указанного угла.
Cosh Возвращает гиперболический косинус указанного угла.
DivRem Перегружен. Вычисляет частное двух чисел и возвращает остаток в выходном параметре.
Exp Возвращает e, возведенное в указанную степень.
Floor Перегружен. Возвращает наибольшее целое число, которое меньше или равно указанному числу.
IEEERemainder Возвращает остаток от деления одного указанного числа на другое указанное число.
Log Перегружен. Возвращает логарифм указанного числа.
Log10 Возвращает логарифм с основанием 10 указанного числа.
Max Перегружен. Возвращает большее из двух указанных чисел.
Min Перегружен. Возвращает меньшее из двух чисел.
Pow Возвращает указанное число, возведенное в указанную степень.
Round Перегружен. Округляет значение до ближайшего целого или указанного количества десятичных знаков.
Sign Перегружен. Возвращает значение, определяющее знак числа.
Sin Возвращает синус указанного угла.
Sinh Возвращает гиперболический синус указанного угла.
Sqrt Возвращает квадратный корень из указанного числа.
Tan Возвращает тангенс указанного угла.
Tanh Возвращает гиперболический тангенс указанного угла.
Truncate Перегружен. Вычисляет целую часть числа.

В завершении заметки хочется еще раз поблагодарить Игоря за удачную компиляцию накопленных знаний и навыков. И отдельное спасибо, за возможность продолжения наших перепечаток из книги Игоря Мотякина – «Консольное программирование в Visual Basic 2012».

>> НАВЕРХ СТРАНИЦЫ <<

Rambler's Top100 Рейтинг@Mail.ru