在C#中声明两个具有不同类型但名称相似的属性

Myk*_*huk -6 c# properties

我可以声明两个不同类型的属性,但在C#中具有相似的名称.像这样的东西:

public class Types
{
    public string Element
        {
            get { return ""; }
        }
    public int Element
        {
            get { return 0; }
        }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

相似的名字?是.在相同的名字?没有.

只有两个在同一个类中声明的具有相同名称的成员才能使用构造函数和方法 - 并且每个重载必须具有不同的签名.

从C#4规范,第10.3节:

常量,字段,属性,事件或类型的名称必须与同一类中声明的所有其他成员的名称不同.

如果允许这样,那将会非常混乱并导致明显模糊的代码:

Types types = new Types();
object x = types.Element; // What would this do?
Run Code Online (Sandbox Code Playgroud)