Эта ситуация, вероятно, не является чем-то необычным для некоторых из вас: у вас есть некоторая функциональность для помещения в класс, но идеальное имя (*) для этого класса берется одним из классов в пространстве имен System
или другом пространстве имен/ класс не твой, но ты using
/ import
ing.
(*) Под идеальным я подразумеваю маленькие, лаконичные и ясные имена.
Например, у меня есть класс Utils
, который имеет класс Diagnostics
(главным образом, утилиты отладки) и класс Drawing
.Я мог бы:
- иметь класс
DrawingUtils
и класс DiagnosticsUtils
, но это просто пахнет как плохая структура. - выберите тезаурус и покончите с более худшим, длинным или неловким именем, которое по-прежнему не принято.
- Пишите имена классов на моем родном языке вместо английского.
- Спросите умных парней в StackOverflow.
Я думаю, варианты 1-3 не обещают:(
РЕДАКТИРОВАТЬ:
Поскольку мой выбранный ответ не решает проблему окончательно (как и я), , что я бы порекомендовал для людей, сталкивающихся с такой же ситуацией:Спросите себя: будете ли вы часто использовать конфликтующее класс / пространство имен BCL? Если нет, тогда пусть ваше имя конфликтует (как я делал с Diagnostics). Если да, добавьте слово, которое ограничивает возможности вашего класса/namespace.
На практике это означает:
"Drawing"
: что-то, что рисует.
"MyCustomControlDrawing"
: что-то, что рисует только вклMyCustomControl
. Например: "WidgetDrawing"
.
EDIT2:
Еще одно решение, чтобы посмотреть в следующий раз: Методы расширения (любезно предоставлено Газонокосилка ).