Moe*_*sko 66 .net c# naming-conventions
我有时会看到这样编写的代码:
public class B1
{
}
public class B2
{
    private B1 b1;
    public B1 B1
    {
        get { return b1; }
        set { b1 = value; }
    }
}
即,B2类具有名为"B1"的属性,其也是"B1"类型.
我的直觉告诉我这不是一个好主意,但有什么技术原因可以避免给出与其类同名的财产吗?
(我正在使用.net 2.0,以防万一).
jas*_*son 61
没关系.这里的典型例子是
public Background {
    public Color Color { get; set; }
}
这里出现了罕见的问题(极端情况),但还不足以避免使用此设备.坦率地说,我发现这个设备非常有用.我不喜欢无法做到以下几点:
class Ticker { ... }
public StockQuote {
    public Ticker Ticker { get; set; }
}
我不想不得不说Ticker StockTicker还是Ticker ThisTicker等等.
Dan*_*plo 16
成员的Microsoft命名指南声明:
考虑给一个属性与其类型相同的属性.
当您具有强类型的枚举属性时,该属性的名称可以与枚举的名称相同.例如,如果您有一个名为枚举的枚举
CacheLevel,则还可以命名一个返回其值之一的属性CacheLevel.
虽然我承认他们是否只是为Enums或一般属性推荐这个有点含糊不清.
Mif*_*Fox 11
我只能想到一个缺点.如果你想做这样的事情:
public class B1
{
        public static void MyFunc(){ ; }
}
public class B2
{
        private B1 b1;
        public B1 B1
        {
                get { return b1; }
                set { b1 = value; }
        }
        public void Foo(){
                B1.MyFunc();
        }
}
你必须改为使用:
MyNamespace.B1.MyFunc();
一个很好的例子是在Winforms编程中常见的用法,其中System.Windows.Forms.Cursor类与System.Windows.Forms.Form.Cursor属性重叠,因此表单事件必须使用完整的命名空间访问静态成员.
就在今天,Eric在博客中谈到了"颜色"问题.
http://blogs.msdn.com/ericlippert/archive/2009/07/06/color-color.aspx
就个人而言,如果可能,我会尽量避免.
另一个问题是内部类型。
我一直遇到这个:
public class Car {
    public enum Make {
        Chevy,
        Ford
    };
    // No good, need to pull Make out of the class or create
    // a name that isn't exactly what you want
    public Make Make {
        get; set;
    }
}
| 归档时间: | 
 | 
| 查看次数: | 23490 次 | 
| 最近记录: |