सभी मैं चाहता हूँ एक शब्दकोश जो मुझे जो कुंजी यह नहीं पा सके सिर्फ The given key was not present in the dictionary
कह के बजाय, बताता है।"Verbose शब्दकोश" सी # में, 'ओवरराइड नए' यह [] या लागू IDictionary
मैंने संक्षेप में override new this[TKey key]
के साथ उप-वर्ग करने पर विचार किया, लेकिन मुझे लगा कि यह थोड़ा हैकी है, इसलिए मैं आईडीकी इंटरफ़ेस को कार्यान्वित करने के साथ चला गया हूं, और सीधे एक आंतरिक शब्दकोश में सबकुछ पास कर रहा हूं, जिसमें केवल अतिरिक्त तर्क है सूचकांक:
public TValue this[TKey key]
{
get
{
ThrowIfKeyNotFound(key);
return _dic[key];
}
set
{
ThrowIfKeyNotFound(key);
_dic[key] = value;
}
}
private void ThrowIfKeyNotFound(TKey key)
{
if(!_dic.ContainsKey(key))
throw new ArgumentOutOfRangeException("Can't find key [" + key + "] in dictionary");
}
क्या यह सही/एकमात्र तरीका है? इस पर नया क्या होगा [] वास्तव में वह बुरा हो?
मुझे बहुत खुशी है उन हूँ # 1 और # 2 ग्रह के दाईं ओर हैं :) – Benjol