2014-02-06 212 views
0

我正在訪問此變量Der,我可以通過本地_der獲取或設置該變量。從字符串名稱訪問變量

SetValues得上是想改變參數字符串名稱(和本地列表應設置一個列表)

字符串自帶的「全球」數據存儲的名字,這是我改變本地(Der - > _ der)。

現在,我如何在SetValues中將字符串名稱「lParam」「轉換」爲我想要設置的實際本地參數?

希望你瞭解並能幫助

[Subscribe] 
public StorableList<double> Der{ 
    get{return _der;} 
    set{_der = value;} 
} 

public static string ConvertToLocalParameter(string input) { 
    if (String.IsNullOrEmpty(input)) { 
     throw new ArgumentException("ARGH"); 
    } 

    return "_" + char.ToLower(input[0]) + input.Substring(1); 
} 

public void SetValues(string listName, StorableList<double> values) { 
    string lParam = ConvertToLocalParameter(listName); 
} 

private StorableList<double> _der; 
+1

用你正在使用的語言標記你的問題。 – user2357112

+0

對不起 - C#是 – user3278724

回答

0

如果我理解你正確(這是JAVA),你可以使用反射

Field field = MyClass.class.getDeclaredField(lParam); 

field.set(this, values); 

但是如果你只擁有這樣的數量有限值你可以只使用幾個如果在你的方法來設置值


編輯:如果它是C#,你可以閱讀有關Reflection in C#

+0

我的項目不喜歡使用System.Data.DataSetExtensions;這似乎是需要的 - Library.Containers - 確實提供了一個字段類,但沒有在例子中的方法 我正在開發的Windows CE - 如果這很重要? – user3278724

+0

它大約有10個不同的輸入atm我可以得到 - 但我可以說未來有多少 - 爲了方便起見,我希望它只是添加一個新變量時需要添加的類的訂閱 - 我想過只是使用基於字符串的開關盒 - 但更多的代碼 - 必須編寫代碼2的地方,而不是一個新的變量... – user3278724

+0

它會改變這些變量將永遠是類型的任何東西StorableList ? – user3278724