これにより、配列を動的に作成できます。
Assembly asm = object.GetType().Assembly;
string sTypeName = "Company.Namespace.ClassName";
object arrayWithSize1 = Activator.CreateInstance( asm.GetType(sTypeName), 1 );
しかし、上で作成された配列の最初の要素をどのように設定しますか?
これにより、配列を動的に作成できます。
Assembly asm = object.GetType().Assembly;
string sTypeName = "Company.Namespace.ClassName";
object arrayWithSize1 = Activator.CreateInstance( asm.GetType(sTypeName), 1 );
しかし、上で作成された配列の最初の要素をどのように設定しますか?
使用できます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);
キーワードを使用してdynamic
、リフレクション呼び出しよりもコードを読みやすくすることができます。
var arrayType = typeof(int);
dynamic array = Array.CreateInstance(arrayType, 1);
array[0] = 123;