सी # में, मुझे स्ट्रिंग के रूप में फ़ंक्शन में पास किए गए डेटा प्रकारों की कॉमा-सीमांकित सूची के आधार पर रन-टाइम पर टाइप ऑब्जेक्ट्स की एक सरणी बनाने में सक्षम होना चाहिए। असल में, यहाँ है कि मैं क्या पूरा करने के लिए कोशिश कर रहा हूँ है:डायनामिक रूप से टाइप इन सी #
// create array of types
Type[] paramTypes = { typeof(uint), typeof(string), typeof(string), typeof(uint) };
लेकिन मैं इस तरह मेरी समारोह कॉल करने के लिए सक्षम होना चाहिए:
MyFunction("uint, string, string, uint");
और यह स्ट्रिंग पारित कर के आधार पर डायनामिक सरणी उत्पन्न किया है में। मेरा पहला प्रयास था:
void MyFunction(string dataTypes)
{
//out or in parameters of your function.
char[] charSeparators = new char[] {',', ' '};
string[] types = dataTypes.Split(charSeparators,
stringSplitOptions.RemoveEmptyEntries);
// create a list of data types for each argument
List<Type> listTypes = new List<Type>();
foreach (string t in types)
{
listTypes.Add(Type.GetType(t));
}
// convert the list to an array
Type [] paramTypes = listTypes.ToArray<Type>();
}
यह कोड बस सिस्टम प्रकार की शून्य वस्तुओं की एक सरणी बनाता है। टाइप करें। मुझे पूरा यकीन है कि समस्या यहां निहित है:
listTypes.Add(Type.GetType(t));
सुझाव यह सिंटैक्स चाल क्यों नहीं करता है?
आपको यह C# -aliases तालिका 'स्विच' कथन या इसी तरह के लिए उपयोगी मिल सकती है। http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx – Ani
असेंबलीनाम-मुद्दे में जोड़ने के लिए, 'Type.GetType' के अधिभारित संस्करण का उपयोग करने पर विचार करें जो मामले को अनदेखा करता है। –