2008-12-17 10 views
9

क्या जेनिक्स में 'टी' के उपयोग के लिए कोई कारण है? क्या यह किसी प्रकार का संक्षेप है? जहां तक ​​मुझे पता है, सब कुछ काम करता है। उदाहरणजेनिक्स अक्सर टी का उपयोग क्यों करते हैं?

public G Say<G>(){ ... } 

या यहाँ तक कि

public Hello Say<Hello>(){ ... } 
+0

यहां पूछा गया [क्या-क्या-टी-माध्य-इन-सी?] (Http://stackoverflow.com/questions/400314/what-does-t-mean-in-c?lq=1) भी। – nawfal

उत्तर

29

टी टी ype के लिए है। लेकिन यह वास्तव में सिर्फ एक परंपरा है और आपको अन्य नामों का उपयोग करने से रोकने के लिए कुछ भी नहीं है। उदाहरण के लिए, सामान्य शब्दकोश <TKey, TValue> का उपयोग करते हैं।

वहाँ भी है एक Microsoft guideline यदि आप एक ही प्रकार पैरामीटर है, और साथ वर्णनात्मक पैरामीटर नाम उपसर्ग टी यदि आप एक से अधिक है कि पत्र टी उपयोग करने की सलाह। ऐसा करने से आपके कोड में एक अधिक सुसंगत अनुभव मिलेगा।

8

टी प्रकार के लिए, की तरह के रूप में के लिए आप ने कहा कि सब कुछ काम करता है ठीक है.पर उस जगह में टी डाल तुम्हें याद दिलाना है कि जेनेरिक प्रकार का है।

4

ओह, मैं :) बात के लिए

+0

हालांकि मैं "यह पूरी तरह से चट्टानों" के लिए टी था! –

+0

मैंने सोचा कि यह 4 के लिए टी 4 था। –

+0

+1 और मैंने सोचा कि यह * के लिए था। – kenny

7

सोचा टी होता यह डेल्फी इस का उपयोग करता है बस मैं की तरह एक आशुलिपि पारंपरिक .NET में इंटरफेस के लिए प्रयोग किया जाता है, और अन्य वातावरण में सी कभी कभी कक्षाओं के लिए प्रयोग किया जाता है (, IIRC)।

आम तौर पर "टी" इस माध्यम में "इस संदर्भ में एकल प्रकार पैरामीटर" और यदि आपके पास एकाधिक प्रकार के पैरामीटर हैं, तो उन्हें टी उपसर्ग मिलता है, उदा। Dictionary<TKey, TValue>। यह केवल यह स्पष्ट करता है जब आप कोड पढ़ रहे हैं कि यह एक विशिष्ट ठोस प्रकार के बजाय एक प्रकार पैरामीटर है।

0

प्रकार

इसके अलावा, ई तत्व के लिए प्रयोग किया जाता है भी बहुत आम है कि के लिए टी। आप सही जी भी काम करता है।

2

यहां कुछ परंपरा भी हो सकती है क्योंकि सी ++ टेम्पलेट्स अधिकांश समय टी का उपयोग करते हैं, और जेनेरिक सामान्य प्रोग्रामिंग के लिए उपयोग किए जाने पर सी ++ के टेम्पलेट्स में फ़ंक्शन में समान होते हैं।

1

अपने सामान्य प्रकार कुछ खास का प्रतिनिधित्व करता है, तो आप इसे और अधिक सटीक बना सकते हैं .. आमतौर पर टी के साथ यह लगाकर: IRepository<TEntity>, SomeCollection<TItem, TComparer> ..

0

मैंने सोचा था कि टेम्पलेट के लिए T था, क्योंकि यह पहली सी ++ में दिखाई देता है।

संबंधित मुद्दे