我有时会看到这样的代码:

public class B1
{
}

public class B2
{
    private B1 b1;

    public B1 B1
    {
        get { return b1; }
        set { b1 = value; }
    }
}

i、 e.B2类有一个名为"B1"的属性,也是"B1"类型.

我的直觉告诉我这不是一个好主意,但是有没有什么技术原因可以让你避免给一个属性起与其类相同的名字?

(如果重要的话,我正在使用.NET2.0).

推荐答案

没事.这里的典型例子是

public Background {
    public Color Color { get; set; }
}

这里出现了一些罕见的问题(角落 case ),但不足以保证避免使用这种设备.坦率地说,我觉得这个设备很有用.我不喜欢不能做到以下几点:

class Ticker { ... }


public StockQuote {
    public Ticker Ticker { get; set; }
}

我不想说Ticker StockTickerTicker ThisTicker等等.

.net相关问答推荐

如何处理以用户为中心的CSP现时值?(uc-lock.bundle.js)

CLR如何在后台优化布尔比较操作?

Npgsql Minimum Pool Size 似乎没有被考虑在内

如何规范机器之间连字符的排序顺序?

StreamWriter.Flush() 和 StreamWriter.Close() 有什么区别?

是否有任何 x 次的 for 循环的更短/更简单的版本?

如何获取 Sql Server 数据库中所有模式的列表

我可以从 .NET/C# 获取其他进程的命令行参数吗?

如何使用 NUnit(或可能使用另一个框架)测试异步方法?

如何对无法加载的 VSTO 插件进行故障排除?

Convert.ToBoolean 和 Boolean.Parse 不接受 0 和 1

关于 Enumerable.Range 与传统 for 循环的 foreach 的思考

C#中的引用类型

风格上的差异:IDictionary vs Dictionary

如何将 WebResponse.GetResponseStream 返回转换为字符串?

嵌套的 Try/Catch 块是个坏主意吗?

IEnumerable vs IReadonlyCollection vs ReadonlyCollection 用于公开列表成员

为什么 .NET 中没有 Tree 类?

为 webClient.DownloadFile() 设置超时

有没有一种简单的方法来判断 .NET Framework 版本?