c# - 我是否应该使用与 .NET BCL 的名称冲突的(否则是最佳的)类名称?

标签 c# vb.net naming-conventions classname fully-qualified-naming

这种情况对你们中的一些人来说可能并不少见:您有一些功能可以放在一个类中,但是该类的完美名称 (*) 被 System 中的一个类采用> 不属于您但您正在使用/导入的 namespace 或其他 namespace /类。

(*) 我所说的完美是指小巧、简洁和清晰的名称。

例如,我有一个 Utils 类,它有一个 Diagnostics(主要是 debug utils)类和一个 Drawing 类。我可以:

  1. 有一个 DrawingUtils 类和一个 DiagnosticsUtils 类,但这闻起来像是结构不好。
  2. 选择一个同义词库,然后用一个更糟糕、更长或笨拙的名字来完成,这些名字仍然不经意地被使用。
  3. 用我的母语而不是英语写类(class)名称。
  4. 请教 StackOverflow 的聪明人。

我认为选项 1-3 没有希望 :(

编辑:

由于我选择的答案没有明确解决问题(我也没有),我建议面临相同情况的人问问自己:你会经常使用冲突的 BCL类/命名空间?如果不是,那么让你的名字冲突(就像我对 Diagnostics 所做的那样)。如果是,请添加一个限制您的类/命名空间的可能性的词。

在实践中,这意味着:
“绘图”:绘图的东西。
“MyCustomControlDrawing”:MyCustomControl 上绘制的内容。例如:“WidgetDrawing”

编辑2:

下次再看看的另一个解决方案:Extension Methods (由 Lawnmower 提供)。

最佳答案

我认为保留名称 DrawingDiagnostics 等没有任何问题。这是命名空间的目的之一,用于解决命名冲突。

关于c# - 我是否应该使用与 .NET BCL 的名称冲突的(否则是最佳的)类名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3424458/

相关文章:

c# - C# "finally" block 是否总是执行?

c# - 定义带有描述的 C# 枚举

asp.net - Insert 方法触发后,如何防止 FormView 清除用户输入的值?

naming-conventions - 'service' 和 'server' 有什么区别?

c# - 如何选择当前选中项的DisplayMember或DisplayValue?

c# - Convert.ChangeType() 是创建对象的副本还是返回原始对象的引用?

java - 您对 Spring MVC 应用程序中的服务层使用什么命名约定?

java - 为什么使用句点分隔单词是 Ant 构建文件中目标名称的惯例?

c# - 合并 .cshtml 文件时 Visual Studio 2015 Update 2 崩溃

c# - C# 中是否有类似 VB.NET 的运算符?