而不是做一個類構造函數的重載,我想通過Dictionary
來動態設置變量。使用字典鍵(作爲字符串)在構造函數中設置變量
// Class definition
public class Project
{
public DateTime LastModified;
public string LoanName;
public string LoanNumber;
public int LoanProgram;
public string ProjectAddress;
...
// Project class constructor
public Project(Dictionary<string, object> Dict)
{
foreach (KeyValuePair<string, object> entry in Dict)
{
// ie, when the Key is "LoanName", this.LoanName is set
this.(entry.Key) = entry.Value; // <-- Does not compile, obviously
}
}
}
// application code
...
Dictionary<string, object> dict = new Dictionary<string,object>();
dict.Add("LoanName", "New Loan Name");
dict.Add("LoanProgram", 1);
dict.Add("ProjectAddress", "123 Whatever Way");
Project p = new Project(dict);
...
在構造函數中,有沒有什麼方法可以使用Dictionary Key(一個字符串)來確定要設置的類成員?這可以用反射來完成嗎?
這聽起來非常愚蠢。 – Pubby
這對你有什麼好處?你必須用特定的鍵和值填充一個字典,然後把它作爲參數傳遞給構造函數,並找出如何使用它。爲什麼不傳遞價值觀呢? –
或者,對於這個問題使用'對象初始值設定項'。 –