Обычно я вижу несколько операторов using в верхней части файла классов. Пример:
using System.Collections.Generic;
using System.IO;
using System.Xml.Linq;
Но в проекте, над которым я работаю, в нескольких случаях я вижу 20 или более операций использования / импорта в одном файле класса. Это плохой дизайн? Кажется, что классы, предназначенные для выполнения одной задачи, должны опираться только на несколько компонентов.
programming-practices
Джон Рейнор
источник
источник
using
операторы. Возможно, вы захотите узнать, сколько из этих 20 действительно используется.using
операторов без необходимости увеличения количества классов? Имейте в виду, что увеличение количества классов или исходных файлов приведет к увеличению затрат на управление исходным кодом.Ответы:
Это может указывать на плохой дизайн, да. Может случиться так, что класс, на который вы смотрите, делает слишком много вещей, но это также может означать, что импортируемые вами пространства имен действительно более связаны, чем предполагает разделение пространства имен. Это может быть из-за чрезмерной инженерии или чрезмерной абстракции, но это также может быть просто дизайн, который не согласуется с использованием.
Тем не менее, это запах - иногда это приводит вас к чему-то плохому, а иногда это просто ложная тревога.
источник
using
в одном файле C #.Класс должен быть не больше и не меньше, чем то, что необходимо для обеспечения предполагаемой функции.
В одном приложении у меня есть класс шифрования, у которого есть одно задание: шифровать данные. Между основной функциональностью, ведением журналов и обработкой исключений среде требуется 11 отдельных импортов пространства имен для выполнения этой единственной работы.
Мне трудно сказать себе «минимизировать импорт». Или судить об успехах моего класса исключительно по подсчету количества импортированных пространств имен. Я не могу оправданно использовать это в отдельности, как показатель успеха класса. Для меня «импорт» - это средство для конца класса. Если работа класса четко определена, все остальное в системе поддержки, включая импорт, само позаботится о себе.
источник