16

独自の辞書を作成していますが、TryGetValue関数の実装に問題があります。キーが見つからない場合は、out パラメーターに割り当てるものがないので、そのままにしておきます。これにより、次のエラーが発生します。

したがって、基本的に、デフォルト値 (タイプに応じて 0、false、または nullptr) を取得する方法が必要です。私のコードは次のようになります。

class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
    bool IDictionary<K, V>.TryGetValue (K key, out V value)
    {
        return false;
    }

    ....

}
4

3 に答える 3

45

defaultキーワードを探しています。

たとえば、あなたが与えた例では、次のようなものが必要です。

class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
    bool IDictionary<K, V>.TryGetValue (K key, out V value)
    {
        value = default(V);
        return false;
    }

    ....

}
于 2008-12-15T03:07:07.487 に答える
5
return default(int);

return default(bool);

return default(MyObject);

したがって、あなたの場合は次のように記述します。

class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
    bool IDictionary<K, V>.TryGetValue (K key, out V value)
    {
        ... get your value ...
        if (notFound) {
          value = default(V);
          return false;
        }
    }

....

}

于 2008-12-15T03:06:47.563 に答える