聽起來很奇怪,我想訪問不是的東西。通過調用方法獲取不存在變量的值
下面是一個例子:
int tempVar = myObject.myVar // myVar does not exist;
在現實中,我希望類運行的方法,這將坐不存在的變量作爲參數:
object returningVariables(string variableName)
{
object desiredObject; // a concrete object that I have stored somewhere in an array inside the class
// going trough some List that contains names of all variables, when it finds it
// return it
return desiredObject;
}
我會盡力在一個具體的例子中解釋我想達到什麼以及爲什麼。
我有一個類存儲對象的統計信息:名稱,級別,速度,大小等。 他們應該通過方法訪問StatData getStat(string statName)
;
通過方法void MakeStat()
創建統計信息。當一些統計數據在類中被創建爲公共變量並且被其他分類訪問而不是通過getStat()方法時,問題就開始了。
既然公共變量已被更改,刪除或添加了新變量,則需要進行一些重構才能使應用程序再次運行。當有混合調用可以直接訪問一個公共變量和一個同樣的方法時,它看起來很糟糕。
請注意,我知道如何以標準方式修復我的代碼;我只是感興趣,如果上述技術將工作。
聽起來像是你需要一個['Dictionary'(http://msdn.microsoft.com/en-us/library/xfhwa508(V = vs.110)的.aspx) –
看DynamicObject類: http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject(v=vs.110).aspx – MarcinJuraszek
@CreativeMagic如果desiredObject不包含'variableName',會發生什麼......什麼是應該從'returnsVariables'返回? – Leo