DITIONARYを1つの違いで拡張するカスタム型を定義しようとしています。C#キーが存在しない場合のセッター付きのカスタム辞書型
myCustomDic[3.5] = 4.0;
最初にキー3.5が存在するかどうかを確認します。そうであれば、値を新しい値に設定します。それ以外の場合は、キーに新しい値を追加します。しかしtestDicに追加どのキーと値のペアが存在しない
var testDic = new Dic(new Dictionary<double, double>());
testDic[2.5] = 4.0;
:私はこのようにそれをやった:
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);
}
}
}
}
と私はこのようにそれを使うのか? 誰かが理由を教えてくれますか?