返回一个默认值。 (C#)

我正在创建自己的字典,并且无法实现TryGetValue函数。 当找不到密钥时,我没有任何东西可以分配给out参数,所以我保持原样。 这会导致以下错误:“在控制离开当前方法之前,必须将out参数'value'分配给”

所以,基本上,我需要一种方法来获取默认值(0,false或nullptr取决于类型)。 我的代码类似于以下内容:

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

    ....

}

您正在寻找default关键字。

例如,在你给出的例子中,你需要像下面这样的东西:

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

    ....

}

default(T)

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

....

}

链接地址: http://www.djcxy.com/p/52873.html

上一篇: Returning a default value. (C#)

下一篇: How do I check for nulls in an '==' operator overload without infinite recursion?