Различные способы объявить / определить переменные? - PullRequest
0 голосов
/ 12 февраля 2010

Это вопрос новичка VB.Net. Я запутался в различных способах объявления и определения переменных.

Вот пример :

Dim URL As String = http://www.c-sharpcorner.com/default.asp
Dim request As HttpWebRequest = WebRequest.Create(URL)
Dim response As HttpWebResponse = request.GetResponse()
Dim reader As StreamReader = New StreamReader(response.GetResponseStream())

Когда мне следует использовать 1. ничто, 2. вызвать метод Create (), 3. вызвать другой метод объекта, кроме Create (), и 4. использовать новое слово?

1 Ответ

0 голосов
/ 12 февраля 2010

Большинство примитивных типов (Int32, String и т. Д.) В .Net имеют буквальный синтаксис, который позволяет вам объявить новый экземпляр. Там, где это доступно, это, вероятно, должно быть вашим первым выбором. Ваша переменная URL сверху может быть примером этого.

Ваш следующий выбор, вероятно, будет ключевым словом New. Это хорошо, когда тип, который вы пытаетесь создать, известен во время разработки. Это может не подходить, например, если вы просто пытаетесь создать экземпляр типа, который реализует интерфейс, но не заботится о конкретном типе возвращаемого объекта.

Шаблон проектирования, который можно использовать в этом случае (тип неизвестен во время разработки), - это Заводской метод . Способ инициализации фабричного метода может влиять на тип возвращаемого объекта.

Если у класса нет видимого извне конструктора, то это, вероятно, потому, что разработчик этого класса хотел оставить за собой право решать во время выполнения, какой тип он будет возвращать. В этом случае он обычно предоставляет фабричный метод (с условным обозначением префикс «Создать»). Метод не обязательно будет в классе, который вы пытаетесь создать, но он может быть добавлен к другому классу в API, который имеет контекст, необходимый, во-первых, для принятия решения о том, какой конкретный класс вернуть, и, во-вторых, имеет возможность предоставить необходимые зависимости для создания объекта.

В итоге ваш путь принятия решения, вероятно, должен быть ..

  1. Дословный
  2. Конструктор
  3. Заводской метод

Как интересно, тип данных DateTime - это случай, когда VB.Net имеет буквальный синтаксис, а C # - нет. 31 мая 1999 года можно создать экземпляр объекта DateTime в VB.Net с использованием синтаксиса #5/31/1993#. Для создания экземпляра того же значения даты в C # потребуется использование конструктора new DateTime(1999, 5, 31).

...