[英]Dynamically create instance(s) of C# class
我想動態創建一個類的實例,所以我創建了一個該類對象的字典,並通過將一個計數器附加到一個字符串來分配名稱。 但是如何訪問對象的屬性?
代碼是這樣的:
int count = 0;
string name = "MyInstanceName" + count.ToString();
Dictionary<string, MyClass> d = new Dictionary<string, MyClass>();
d.Add(name, new MyClass(Parameter));
//try to retrieve the Property - this doesn't work
textBox1.Text = d[name.Property];
你可以這樣做
int count = 0;
string name = "MyInstanceName" + count.ToString();
var d = new Dictionary<string, MyClass>();
d.Add(name, new MyClass());
textBox1.Text = d[name].Property;
您創建了一個Dictionary
,鍵是一個string
,值是MyClass
一個實例。
使用Dictionary索引時,括號[]
之間的值應該是鍵,在本例中是一個字符串。
myDictionary["keyValue"]
textBox1.Text = d[name].Property;
除了Alberto Monteiro的回答,別忘了施展你的對象:
textBox1.Text = (myClass) d["MyInstanceName1"].Property;
要么
var myInstanceX = d["MyInstanceName1"].Property;
textBox1.Text = myInstanceX.myStringProperty();
在C#中(與VB不同),如果編譯器可以在其他地方確定變量,則無需指定變量的類型,因此您還可以簡化:
Dictionary<string, MyClass> d = new Dictionary<string, MyClass>();
成
var d = new Dictionary<string, MyClass>();
var是一個類型化的變量聲明符(與javascript不同)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.