c# - Using generic methods, is it possible to get different types back from the same method? -
क्या मेरे पास ऐसा कुछ हो सकता है:
int x = MyMethod & lt; int & gt; () ; स्ट्रिंग y = MyMethod & lt; स्ट्रिंग & gt; ();
इस प्रकार, टी पर आधारित विभिन्न प्रकारों को लौटाने वाला एक तरीका निश्चित रूप से विधि के अंदर तर्क होगा कि यह सही बात वापस कर रहा है।
मैं कर सकता हूँ कभी इसे चलाने के लिए कुछ नहीं मिलता यह शिकायत करता है कि यह रिटर्न वैल्यू टी:
सार्वजनिक स्थिर टी MyMethod & lt; T & gt; () {if (टाइपफ (टी) == टाइपफ (Int32)) पर लौटा नहीं सकता {return 0 ; } और {वापसी "कुछ नहीं"; }}
निम्न प्रयास करें
सार्वजनिक स्थिर टी MyMethod & lt; T & gt; () {if (टाइपफ (टी) == टाइपफ (Int32)) {रिटर्न (टी) (ऑब्जेक्ट) 0; } अन्य {रिटर्न (टी) (ऑब्जेक्ट) "कुछ नहीं"; }}
यहाँ चाल को वस्तु
पर कास्टिंग है। आप जो करने की कोशिश कर रहे हैं वह स्वाभाविक रूप से असुरक्षित है क्योंकि कंपाइलर यह अनुमान नहीं लगा सकते कि 0 या "कुछ नहीं" किसी दिए गए T
के लिए परिवर्तनीय है। यह सब के बाद असीम है तो बस कंपाइलर को स्पष्ट रूप से बताएं कि यह वस्तु
पर कास्टिंग के साथ सुरक्षित नहीं है।
Comments
Post a Comment