在我的項目中,我需要一個「移位」列表。 基本上我有一個public class dyn_int : List<int>
來支持我們的一些舊腳本(寫在一個專有的語言,但「半自動翻譯」,以C#)覆蓋索引運算符的偏移量
在這種語言,名單開始了他們的指數爲1,而不是0!
我目前嘗試創建一個方便的API,以便我們的開發人員仍然可以使用他們熟悉的風格。
但是我堅持創建索引運算符。 這是我目前對列表的索引訪問器的實現。 吸氣劑工作正常,但我不知道如何處理set方法。 到目前爲止我沒有找到List.SetElementAt(key, value)
的方法。
public class dyn_int : List<int>
{
public int this[int key]
{
get
{
return this.ElementAt(key-1);
}
}
}
'getter正常工作......你試過'dyn_int [0]'嗎? – Jonesopolis
我會*強烈*敦促你在這裏使用組合而不是繼承(並開始遵循.NET命名約定)。給你的班級一個'List'*變量*,而不是從'List '派生出來,並讓你的班級實施'IList '......儘管考慮到索引者的期望,這將是「有趣的」。 –
您也不應該使用'ElementAt'從列表中獲取項目。您正在迭代整個序列以獲取該節點。 – Servy