-2

我该如何解决这个问题?我怎样才能指出我想使用的确切重载?

    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;
    }
4

2 回答 2

2

当您提供多个具有相同名称的方法时,该方法称为重载。您不能在 C# 中重载返回类型的方法:您需要为它们指定不同的名称或不同的参数类型。在您的情况下,更改 to 的名称bool Abool 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;
}
于 2013-02-03T15:09:16.433 回答
0

@dasblinkenlight 是对的。将函数命名为描述性名称也是一种好习惯。

示例:布尔 IsEnvironmentTickCount666()。函数名称中的 Is 使阅读您的代码的人很容易看到您正在返回一个布尔值

于 2013-02-03T15:20:26.943 回答