c# - 你如何解决类型和对象之间常见的命名冲突?

标签 c# class naming-conventions types namespaces

由于标准的 c# 约定是将公共(public)属性的首字母大写,旧的 c++ 约定类型名称的首字母大写和非类型名称的首字母小写并不能防止经典名称冲突,其中最明显的对象名称匹配类型名称:

class FooManager
{
    public BarManager BarManager { get; set; } // Feels very wrong.
                                               // Recommended naming convention?
    public int DoIt()
    {
         // 1st and 2nd Bar Manager are different symbols 
         return BarManager.Blarb + BarManager.StaticBlarb;                                                                          
    }
}

class BarManager
{
    public        int Blarb { get; set; }
    public static int StaticBlarb { get; set; }
}

好像编译通过了,但是感觉好不对。是否有推荐的命名约定来避免这种情况?

最佳答案

具有完全相同名称的类型和属性并不少见。是的,它看起来有点奇怪,但诚然,重命名属性以避免这种冲突看起来更奇怪。

Eric Lippert 有 a blog post on this exact topic .

然而,编译器没有歧义。

关于c# - 你如何解决类型和对象之间常见的命名冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434788/

相关文章:

c++ - 区分 C++ 静态方法是被类调用还是被对象调用

jakarta-ee - 正确的 : Java "enterprise" edition = Java "internet" edition?

node.js - 当不同的服务都命名为 'server.js' 时,如何识别它们?

python - 我应该如何在 Python 中引用类变量?

c# - 如何同步使用 UserManager?

c# - 使 WPF 文本框边距可单击/可选择

c# 在 session 之间保存目录

c# 从父类访问子类

javascript - 异步 getter 的命名约定

c# - 将部分构造函数参数传递给 caSTLe windsor 容器