User98743 Ответов: 1

Множественные вхождения статических методов и классов


Я читал некоторые противоречивые сведения о том, что static модификатор. Во-первых, видео, записанное недавно тренером .NET, говорит о том, что static модификатор используется не так часто, что мне показалось странным, потому что я использую его довольно часто. Я работаю с кодом C# уже много лет, но никогда не был на том уровне, на котором нахожусь сейчас, поэтому мне интересно, может быть, я использую его неправильно.

Могут ли методы и классы, используемые для подключения к SQL Server, быть static, даже если я могу подключаться к двум разным базам данных, через два разных соединения? Нет, правда? Это были бы два экземпляра класса, верно?

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

Любой вклад был бы великолепен.

Что я уже пробовал:

Мои методы подключения к базе данных-это методы экземпляра, которые требуют использования MyObj dbobj = new MyOb();

1 Ответов

Рейтинг:
8

OriginalGriff

В случае соединений с БД (а также команд, адаптеров и тому подобного) это должны быть экземпляры: потому что они должны быть утилизированы как можно скорее, чтобы гарантировать, что они не "задержатся" и не испортят все позже (это дефицитные ресурсы, поэтому они должны быть освобождены должным образом.
Самый простой способ сделать это-через using блоки:

using (MyObj dbObj = new MyObj())
   {
   ... use it here ...
   } ... destroyed when it goes out of context.

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

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


[no name]

Чем вы за то, что подтвердили бит о том, что статические классы используются не так уж часто. Менее типизированная часть заключается в том, что я создал библиотеку классов, которую я разделил между кучей проектов Visual Studio. Я должен отметить, что я был классическим веб-разработчиком ASP/VBS 10 лет, ушел в службы данных в течение 8 лет, поэтому мне нужно узнать, как все делается в объектно-ориентированной среде.

Все мои вызовы базы данных уже используются using- так что мне там хорошо. Мне просто нужно напомнить себе, что я должен задать эти вопросы, чтобы не продолжать двигаться вперед с вредными привычками. Спасибо, что уделили мне время!