C#中的属性名称和方法名称是否相同?

时间:2013-03-20 11:27:17

标签: c# .net class methods properties

我有一个包含属性的类:

public bool IsMandatory {get;set;}

现在我要添加方法IsMandatory(string str)

public bool IsMandatory(string str)
{
  //return false;
  //return true;
}

我收到编译时错误

  

该类型已包含“IsMandatory”的定义

C#中的方法名称和属性名称不能相同吗?我们以不同的方式使用方法和属性,为什么会出现编译错误?

2 个答案:

答案 0 :(得分:17)

这是一个编译器错误,因为如果名称可能相同会导致混淆。在某些情况下可能会导致歧义 - 例如,使用Action委托等时,方法不需要括号,以及使用var时。

答案 1 :(得分:1)

简而言之:这是不允许的。成员名称(字段,属性和方法)必须是 唯一的。