0

この方法を見てください:

Dictionary<string,object> ViewModelParams = new Dictionary<string,object>();

AddParam(string paramKey,value)
{
    viewModelParams.Add(paramKey,value);
}

T GetParam<T>(string paramKey)
{
    if(viewModelParams[paramKey] is T)
        return (T)viewModelParams[paramKey];
    else
        throw exception...
}

Nullable型の場合、ディクショナリの値が null の場合、式がif(viewModelParams[paramKey] is T)適切に機能しなかったため、次のことを明確にします。

int? item=null;
AddParam("key",item);
GetParam<int?>("key")// throw exception because of 
                     // (viewModelParams[paramKey] is T) is false

null 許容型のボックス化とボックス化解除の概念 ( Boxing Nullable Typesif(viewModelParams[paramKey] is T) ) は知っていますが、このシナリオでどの式が置き換えられたのかわかりませんか?

4

0 に答える 0