首页 > 解决方案 > 是否应将公司或工具包缩写用作 C# 类名称和方法的前缀

问题描述

我正在寻找有关 C# 类命名的信息,该类具有一个标识前缀或后缀,该前缀或后缀是指该库来自的工具包或公司。

例如,假设公司名称是 Audio Solutions,他们想要为名为 Audio Control Toolkit 的工具包创建 C# 类库。

使用 AS 的公司缩写的示例:

namespace AudioSolutions.AudioControlToolkit

public class AS_FileConversions
{
  public static AS_MP3toWave() { .... }
}

使用工具包缩写的示例

namespace AudioSolutions.AudioControlToolkit

public class ACT_FileConversions
{
  public static ACT_MP3toWave() { .... }
}

需要使用上述前缀来识别应用程序的哪些部分正在使用该工具包。是否有任何关于使用上述方法从供应商处获取品牌代码的公开信息?我不知道上述命名考虑是否会导致问题或被认为是不好的做法。提前致谢。

更新 2020 年 4 月 15 日下午 12:15(太平洋标准时间)

这个话题似乎非常受偏好驱动,还没有人找到任何关于这个问题的广泛发表的材料。我确实在他们的类或方法的前缀中使用标识符找到了一个大名鼎鼎的地方,下面是一些示例:

https://cuda-tutorial.readthedocs.io/en/latest/tutorials/tutorial01/ 来自上述网站页面的示例编码对象:

cudaMalloc((void**)&d_a, sizeof(float) * N);
cudaMemcpy(d_a, a, sizeof(float) * N, cudaMemcpyHostToDevice);
cudaFree(d_a);

除了确定是否正在使用某个供应商的 sdk 功能之外,我只能找到添加此类前缀的另一个原因。这个原因是为了避免编译器抱怨两个或多个具有相同名称但名称空间不同的函数调用之间的歧义。在这种情况下,可以通过决定哪个供应商的实现来完全限定其函数名称并使用名称空间作为源代码中的前缀来轻松解决。

标签: c#naming-conventionsclass-library

解决方案


我建议不要将公司名称/缩写放在类名中,而是使用命名空间。我想我不记得曾经在我使用过的任何框架/工具包的类名中直接包含公司名称。

例如 Telerik 有许多非常流行的框架/工具包,它们通常在命名空间中包含 Telerik(例如 Telerik.Reporting、Telerik.ReportViewer.Mvc),但从不在类名中。


推荐阅读