【发布时间】:2011-09-30 18:18:21
【问题描述】:
我不敢相信我以前从未遇到过这种情况,但为什么我收到此代码的编译器错误?
public class Main
{
public Main()
{
var ambiguous = new FooBar(1);
var isConfused = ambiguous.IsValid; // this call is ambiguous
}
}
public class FooBar
{
public int DefaultId { get; set; }
public FooBar(int defaultId)
{
DefaultId = defaultId;
}
public bool IsValid
{
get { return DefaultId == 0; }
}
public bool IsValid(int id)
{
return (id == 0);
}
}
这是错误信息:
“FooBar.IsValid”和“FooBar.IsValid(int)”之间的歧义
为什么会这样模棱两可?
我认为它不应该模棱两可的原因有两个:
-
IsConfused后面没有括号。 -
IsConfused没有 int 参数。
歧义在哪里?
【问题讨论】:
标签: c# .net compiler-errors ambiguity