2012-01-26 13 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; 
संबंधित मुद्दे