20

我有一个包含属性的类:

public bool IsMandatory {get;set;}

现在我正在添加一个方法IsMandatory(string str)

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

我收到一个编译时错误

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

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

4

2 回答 2

20

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

于 2013-03-20T11:30:26.740 回答
0

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

于 2013-03-20T11:32:12.767 回答