ГЛАВНАЯ >> ИНТЕРНЕТ и ПО >> ПРОГРАММИРОВАНИЕ: Секреты 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».
>> НАВЕРХ СТРАНИЦЫ <<
|