由于标准的 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/