use*_*891 15 c# generics default-value
我正在创建自己的字典,但我无法实现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;
}
....
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*tes 44
您正在寻找default
关键字.
例如,在您给出的示例中,您需要以下内容:
class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
bool IDictionary<K, V>.TryGetValue (K key, out V value)
{
value = default(V);
return false;
}
....
}
Run Code Online (Sandbox Code Playgroud)
return default(int);
return default(bool);
return default(MyObject);
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下你会写:
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;
}
}
....
Run Code Online (Sandbox Code Playgroud)
}
归档时间: |
|
查看次数: |
17008 次 |
最近记录: |