C# CS0542-的原因;成员名称不能与其封闭类型“相同”;
我有此错误,但由于某些原因,我无法识别错误(CS0542): 成员名称不能与其封闭类型相同 代码:C# CS0542-的原因;成员名称不能与其封闭类型“相同”;,c#,.net,C#,.net,我有此错误,但由于某些原因,我无法识别错误(CS0542): 成员名称不能与其封闭类型相同 代码: 字符串为nSuperTeamName的构造函数不应具有void。通过使void,您使其成为类的成员之一。您与该方法发生冲突,该方法的名称为类构造函数 试试这个例子 public SuperTeam() { SuperTeamName = ""; } public void SuperTeamMethod (string nSuperTeamName) { SuperTeamNam
字符串为
nSuperTeamName
的构造函数不应具有void
。通过使void
,您使其成为类的成员之一。您与该方法发生冲突,该方法的名称为类构造函数试试这个例子
public SuperTeam()
{
SuperTeamName = "";
}
public void SuperTeamMethod (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
您的类是SuperTeam,它有一个名为SuperTeam的方法,该方法不是构造函数。我猜它应该是一个构造函数,在这种情况下,请删除
void
返回类型
public SuperTeam (string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
如果它实际上应该是设置SuperTeamName
的方法,那么更改函数的名称(SetSuperTeamName
似乎合适),或者更好地将其更改为具有getter和setter的属性。问题在于:
public void SuperTeam(string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}
我相信您希望类具有一个返回类型,并且由于构造函数不能具有返回类型,编译器将其视为一个方法。现在方法名与类名相同,这就是为什么会出现错误
- 如果是构造函数,则删除
(返回类型)void
- 如果它是一个简单的方法,则将名称更改为除超级团队以外的其他名称
我理解正确的第一和快速的第二,这就是我所做的:(这是真的,但它被编辑了1分钟ago@JulieShannon,我只是补充了阿列克谢指出的一些额外细节,在那之前也没问题:)@AlexeiLevenkov链接:)@AngeloB.,完全由你来判断答案是否可以接受,你之前把马特的答案标为正确答案,现在你把我的答案标为正确答案。如果你认为马特的答案是正确的,那么接受这个事实,不要担心投票数或任何评论。这是你的选择:)+1。请注意,CS0542的文章明确地介绍了这种情况:“如果您不小心在构造函数上放置了一个返回类型,这实际上使它成为一个普通方法,则可能会导致此错误……”AlexeiLevenkov,perfect addition,刚刚将此添加到了答案中。
public void SuperTeam(string nSuperTeamName)
{
SuperTeamName = nSuperTeamName;
}