我有一个包含属性的类:
public bool IsMandatory {get;set;}
现在我要添加方法IsMandatory(string str)
。
public bool IsMandatory(string str)
{
//return false;
//return true;
}
我收到编译时错误
该类型已包含“IsMandatory”的定义
C#中的方法名称和属性名称不能相同吗?我们以不同的方式使用方法和属性,为什么会出现编译错误?
答案 0 :(得分:17)
这是一个编译器错误,因为如果名称可能相同会导致混淆。在某些情况下可能会导致歧义 - 例如,使用Action委托等时,方法不需要括号,以及使用var
时。
答案 1 :(得分:1)
简而言之:这是不允许的。成员名称(字段,属性和方法)必须是 唯一的。