Модуль Visual Basic v Singleton - PullRequest
       11

Модуль Visual Basic v Singleton

4 голосов
/ 07 августа 2009

Итак, я программировал на C # последние 6 лет или около того, и теперь я мокну от VB.net.

База кода, с которой я работаю, использует некоторые модули. Для меня модуль выглядит как синглтон. Существует только один; его можно вызывать где угодно внутри пространства имен.

Есть что-то, чего я здесь не хватает? Разве VB не поддерживает нормальный способ структурирования синглтона (частный конструктор / публичное поле экземпляра)?

Ответы [ 2 ]

6 голосов
/ 07 августа 2009

Модули не одиночные. Это гораздо больше похоже на статический класс в C #. Если вы декомпилируете код, вы увидите, что они имеют очень похожую структуру (модули имеют дополнительный атрибут).

Основные различия между статическим классом C # и модулем VB.Net заключаются в ...

  • Не нужно добавлять статические / общие квалификаторы к методам в модуле. Они являются общими по умолчанию, и вы не можете изменить это
  • Если модуль находится в пространстве имен Imported, все его методы доступны без квалификации.
  • Статические классы в C # могут быть универсальными, модули - нет (хотя они могут иметь универсальные члены)
3 голосов
/ 07 августа 2009

Если я не ошибаюсь, модуль VB - это то же самое, что и статический класс.

...