我可以声明两个不同类型的属性,但在C#中具有相似的名称。 像这样:
public class Types
{
public string Element
{
get { return ""; }
}
public int Element
{
get { return 0; }
}
}
答案 0 :(得分:5)
类似名称?是。 相同的名称?否。
在同一个类中,只有两个具有相同名称的成员才能使用构造函数和方法 - 并且每个重载必须具有不同的签名。
从C#4规范,第10.3节:
常量,字段,属性,事件或类型的名称必须与同一类中声明的所有其他成员的名称不同。
如果允许 ,那将会非常混乱并导致明显模糊的代码:
Types types = new Types();
object x = types.Element; // What would this do?
答案 1 :(得分:2)
您需要运行您编写的代码并获取错误,但您可能需要类似于下面的内容
public class Types<T>
{
public T Element
{
get { return default(T); }
}
}