簡體   English   中英

動態創建C#類的實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM