我想定義一個自定義類型,只擴展DIctionary只有一個區別。當我設置一個這樣的值:C#自定義詞典類型與setter如果不存在鍵
myCustomDic[3.5] = 4.0;
它首先檢查密鑰3.5是否存在。如果是,則將該值設置爲新值。否則它將添加新值的密鑰。我這樣做是這樣的:
class Dic : Dictionary<double, double>
{
private readonly Dictionary<double, double> _property;
public Dic(Dictionary<double, double> property)
{
_property = property;
}
//Indexer:
public new double this[double CA]
{
get
{
return _property[CA];
}
set
{
if (_property.ContainsKey(CA))
{
_property[CA] = value;
}
else
{
_property.Add(CA, value);
}
}
}
}
,我使用它是這樣的:
var testDic = new Dic(new Dictionary<double, double>());
testDic[2.5] = 4.0;
但是,有添加到testDic沒有鍵值對? 有人可以告訴爲什麼嗎?