-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# では、戻り値の型でメソッドをオーバーロードすることはできません。別の名前または別のパラメーターの型を指定する必要があります。あなたの場合、の名前をに変更する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は正しいです。関数にわかりやすい名前を付けるのも良い方法です。

例: bool IsEnvironmentTickCount666()。関数名に Is があると、コードを読んでいる人がブール値を返していることを簡単に確認できます

于 2013-02-03T15:20:26.943 に答える