पढ़ना यह , मुझे पता चला यह संभव था एक विधि यह एक सामान्य विधि बनाकर कई प्रकार के पैरामीटर स्वीकार करने की अनुमति। उदाहरण में, निम्नलिखित कोड का उपयोग "U" सुनिश्चित करने के लिए एक प्रकार की बाधा के साथ किया जाता है IEnumerable<T>।
public T DoSomething<U, T>(U arg) where U : IEnumerable<T>
{
return arg.First();
}
मुझे कुछ और कोड मिले जिन्होंने कई प्रकार की बाधाओं को जोड़ने की अनुमति दी, जैसे:
public void test<T>(string a, T arg) where T: ParentClass, ChildClass
{
//do something
}
हालाँकि, यह कोड लागू होता argहै जो एक प्रकार का ParentClass और दोनों होना चाहिए ChildClass। मैं यह कहना चाहता हूं कि arg एक प्रकार का ParentClass या ChildClass निम्नलिखित तरीके से हो सकता है:
public void test<T>(string a, T arg) where T: string OR Exception
{
//do something
}
आपकी मदद हमेशा की तरह सराहना की है!
where T : string, जैसा stringकि एक सील वर्ग है। केवल उपयोगी चीज जो आप कर सकते हैं , नीचे दिए गए अपने उत्तर में @ Botz3000 द्वारा समझाया गया है stringऔर के लिए ओवरलोड को परिभाषित कर रहा है T : Exception।
argजिन तरीकों से कॉल कर सकते हैं, वे केवल objectउसी के द्वारा परिभाषित होते हैं - तो क्यों न केवल चित्र से जेनेरिक को हटा दें और किस प्रकार का बनाएं arg object? आप क्या हासिल कर रहे हैं?