Это хорошая практика для вызова функций модуля непосредственно в VB.NET? - PullRequest
3 голосов
/ 29 апреля 2010

У меня есть модуль Util в моей программе VB.NET, который имеет методы для всего проекта, такие как ведение журнала и анализ свойств. Общая практика, в которой я работаю, заключается в том, чтобы вызывать эти методы напрямую, без добавления префикса Util. Когда я был новичком в VB, мне потребовалось некоторое время, чтобы понять, откуда появились эти методы / функции. Поскольку сейчас я использую свои собственные Util методы, я не могу не думать, что гораздо яснее и понятнее добавлять Util. перед каждым вызовом метода (вы сразу знаете, что он определяется пользователем, но не в текущем классе, и где его найти) и вряд ли даже дольше. Какова общая практика при вызове процедур / функций модулей VB? Должны ли мы ставить перед ними префикс с именем модуля или нет?

Ответы [ 3 ]

2 голосов
/ 29 апреля 2010

Intellisense (и «Определение Goto») должно сделать тривиальным поиск мест, где находятся вещи, но я всегда предваряю вызовы лучшим пространством имен, просто для ясности чтения. Тогда ясно, что это пользовательская функция, а не что-то встроенное или локальное для класса, с которым вы работаете.

Может быть, есть небольшая разница, которую я пропускаю, но я склонен использовать общие классы вместо модулей для любого кода, который является общим и самодостаточным - мне просто легче отследить, и это также обеспечит соблюдение правило префектирования, поскольку вы не можете просто вызывать его из любого места, не предоставив пространства имен для его вызова.

1 голос
/ 29 апреля 2010

Util - это общее имя.

Пример из .Net framework.У вас есть System.Web.HttpUtility.UrlEncode(...).Обычно вы называете это HttpUtility.UrlEncode, так как у вас есть оператор импорта вверху.

Имя класса, который имеет статические служебные методы, должно быть читаемым и объяснимым.Это хорошая практика.Если у вас есть хорошие имена классов, они также могут находиться в пространстве имен Utils, но имя класса не должно быть Utils.

. Поместите все ваши записи в класс Logger.Вся ваша строка передается в классе StringUtils и т. Д. И постарайтесь сохранить имена классов как можно более конкретными, и я бы предпочел иметь больше классов с меньшим количеством функций, чем наоборот.

1 голос
/ 29 апреля 2010

Я обычно помещаю полное пространство имен для разделяемой функции, для удобства чтения.

Call MyNameSpace.Utils.MySharedFunction()
...