我从来没有真正质疑过这一点,直到现在。我有与一些领域的输入模式,我想通过输入模型呈现属性的字符串名称,这样我的网格可以使用它们:为什么类没有静态或常量属性和同名的实例属性?
public class SomeGridRow
{
public string Code { get;set; }
public string Description { get;set; }
public const string Code = "Code";
}
显然,这给出了错误:
The type 'SomeGridRow' already contains a definition for 'Code'
为什么CLR不能处理两个在我眼中是分开的名字?
string code = gridRow.Code; // Actual member from instantiated class
string codeField = SomeGridRow.Code; // Static/Const
我现在只用叫我输入内Fields
现在一个子类,所以我可以使用SomeGridRow.Fields.Code
。这有点乱,但它的工作原理。
Aye,I sup当这样拼写出来时,这很明显。我总是把静态成员视为理所当然的使用他们的实际类名进行访问。作为我工作的部分编码标准。 – GenericTypeTea 2010-10-06 09:45:19
@GenericTypeTea - 这是一个很好的标准,在课堂上是我认为最暧昧的地方,也许它永远不会被允许这种方式......但我认为它最终的方式可能是最容易混淆的妥协。 – 2010-10-06 09:47:22
我同意。这是另一种尺寸不适合所有人的情况......这真的不是什么大问题。我只是挑剔。我只是厌恶嵌套类。 – GenericTypeTea 2010-10-06 09:50:03