我该如何解决这个问题?我怎样才能指出我想要使用的确切重载?
int A()
{
if (Environment.TickCount == 666)
return 0;
else
return 1;
}
bool A()
{
if (A() == 0) //here's an error!
return false;
else
return true;
}
答案 0 :(得分:2)
当您提供多个具有相同名称的方法时,该方法被称为重载。您不能在C#中重载返回类型的方法:您需要为它们指定不同的名称或不同的参数类型。在您的情况下,将bool A
的名称更改为bool B
可解决问题:
int A()
{
if (Environment.TickCount == 666)
return 0;
else
return 1;
}
bool B()
{
if (A() == 0) //No error here
return false;
else
return true;
}
答案 1 :(得分:0)
@dasblinkenlight是对的。将函数命名为描述性名称也是一种很好的做法。
示例:bool IsEnvironmentTickCount666()。函数名称中的Is使得阅读代码的人很容易看到你正在返回一个bool