Иллюстрированный самоучитель по VB.NET



Создание объектов в VB .NET - часть 2


В VB .NET эта особенность была исключена.

Некоторые программисты (особенно работающие на С# и Java) предпочитают третий вариант синтаксиса, который выглядит как комбинация первых двух:

Dim foo As Random = New Random()

' В стиле C#/Java

Он ничем не отличается от второго варианта синтаксиса.

Метод New позволяет конструировать объекты в любом выражении VB .NET, если результат соответствует контексту. Следующая команда VB .NET вполне допустима (хотя понять ее непросто, поэтому использовать подобный стиль программирования не рекомендуется):

Consolе.WriteLi net New Random().Next())

Впрочем, подобные конструкции могут встретиться в чужих программах, которые вам придется сопровождать. Особенно часто они используются программистами с опытом работы на C++/Java.

Создав экземпляр класса Random, вы можете пользоваться его методами и свойствами при помощи знакомого «точечного» синтаксиса. Библиотека .NET Framework содержит множество классов; технология IntelliSense всегда напомнит вам, что можно сделать с тем или иным экземпляром класса (рис. 4.1).

Рис. 4.1. Подсказка IntelliSense для класса Random

Например, в отличие от функции Rnd из прежних версий VB вам не придется дополнительно обрабатывать числа от 0 до 1, чтобы получить случайное положительное число в заданном интервале. Вам понадобилось случайное целое от 1 до 6? Воспользуйтесь следующей конструкцией:

Dim aRandomlinstance As New Random()

Dim die As Integer die =aRandomInstance.Next(1.6)

Console.WriteLine(die)

Не используйте класс Random для серьезных криптографических задач, поскольку его алгоритм построения случайных чисел легко взломать. Библиотека .NET Framework велика, и в нее входит генератор случайных чисел, надежный с точки зрения криптографии (конечно, более медленный) — класс RandomNumberGenerator из пространства имен System.Security.Cryptography (пространства имен рассматриваются ниже в этой главе).

Доступ к средствам класса обычно осуществляется через конкретный экземпляр, однако у этого правила имеется исключение.Дело в том, что некоторые возможности реализуются на уровне класса, а не отдельных объектов. В главе 3 мы встречались с классом Math и использованием конструкций Math . PI и Math . Sin( ) без вызова метода New. Члены, принадлежащие классу в целом, а не его отдельным экземплярам, называются общими (shared). К общим членам можно обращаться как по имени класса, так и по имени объектной переменной, объявленной с соответствующим типом. Предположим, у вас имеется класс Ваr с общим методом Foo. Метод Foo может быть вызван любым. из приведенных ниже способов:

Ваг.Foo()

Dim test As Bar test.Foo()

В других языках программирования (таких, как С# и Java) общие члены называются статическими (static).




Содержание  Назад  Вперед