Sunday 15 March 2015

c# - Why does this static factory method involving implied generic types, work? -


विचार करें

  सार्वजनिक वर्ग ट्यूपल & lt; T1, T2 & gt; {सार्वजनिक ट्यूपल (टी 1 वी 1, टी 2 v2) {V1 = v1; वी 2 = वी 2; } सार्वजनिक T1 V1 {प्राप्त करें; सेट; } सार्वजनिक T2 V2 {प्राप्त करें; सेट; }} सार्वजनिक स्थिर कक्षा टपल {// जादू !! सार्वजनिक स्थिर ट्यूपल & lt; T1, टी 2 & gt; नया & lt; T1, T2 & gt; (T1 v1, T2 v2) {नया ट्यूपल & lt; T1, T2 & gt; (v1, v2); }}  

उपरोक्त कार्य में "मैजिक" का हिस्सा क्यों लगाया गया है? यह Tuple.New (<, "2") के बजाय नए ट्यूपल & lt; int, string & gt; (1, "2") की तरह सिंटैक्स की अनुमति देता है, लेकिन ... कैसे और क्यों?

मुझे Tuple.New & lt; int, string & gt; (1, "2") की आवश्यकता क्यों नहीं है

इसे सामान्य प्रकार का अनुमान कहा जाता है और यह केवल सामान्य तरीकों के लिए काम करता है। आप नया के लिए तर्क के रूप में जो कुछ भी चाहते हैं, उसके उदाहरणों को पारित कर सकते हैं और कंपाइलर का अनुमान है कि आप विशेष सामान्य ट्यूपल को वापस लौटने का मतलब है जो कि Tuple & lt; int, string & gt; ...


No comments:

Post a Comment