2012-01-26 3 views
7

を設定します。これは、動的配列を作成することができますは、動的配列を作成し、要素

Assembly asm = object.GetType().Assembly; 
string sTypeName = "Company.Namespace.ClassName"; 
object arrayWithSize1 = Activator.CreateInstance(asm.GetType(sTypeName), 1); 

をしかし、どのように上記で作成された配列の最初の要素を設定していますか?

答えて

12

あなたはArray.SetValueを使用することができます。

// How are you going to create this? Activator.CreateInstance? 
object instance = ... 

// Create one-dimensional array of length 1. 
Array arrayWithSize1 = Array.CreateInstance(asm.GetType(sTypeName), 1); 

// Set first (only) element of the array to the value of instance. 
arrayWithSize1.SetValue(instance, 0); 
7

あなただけの反射通話よりもコードを読みやすくするためにdynamicキーワードを使用することができます。

var arrayType = typeof(int); 
dynamic array = Array.CreateInstance(arrayType, 1); 
array[0] = 123; 
関連する問題