2010-11-26 20 views
8

StringComparer.OrdinalIgnoreCase संपत्ति पर MSDN प्रलेखीकरण के अनुसार:क्या एक अज्ञात प्रकार किसी अन्य प्रकार से प्राप्त हो सकता है?

OrdinalIgnoreCase संपत्ति वास्तव में StringComparer वर्ग से ली गई एक अनाम वर्ग का एक उदाहरण देता है।

क्या यह एक विशेषता है जिसे मैं विरासत के साथ अज्ञात प्रकार से अपरिचित हूं? या "अज्ञात वर्ग" द्वारा लेखक का अर्थ केवल "से प्राप्त आंतरिक वर्ग, क्लाइंट कोड के लिए दृश्यमान नहीं है"?

+0

के संभावित डुप्लिकेट [एक सी # गुमनाम वर्ग एक इंटरफ़ेस को लागू कर सकते हैं?] (Http://stackoverflow.com/questions/191013/can-ac-sharp-anonymous-class-implement-an-interface) – nawfal

उत्तर

7

आप StringComparer के लिए स्रोत कोड को देखो, तो आप देख सकते हैं कि OrginalIgnoreCase OrdinalComparer, जो StringComparer से ली गई है का एक उदाहरण देता है।

इस बारे में 'अज्ञात' कुछ भी नहीं है जो मैं देख सकता हूं, यह सिर्फ आंतरिक है ताकि आप इसे ढांचे के बाहर से नहीं देख सकें।

+0

ऐसा करने के लिए धन्यवाद जो मैं वास्तविक स्रोत को देखने के लिए बहुत आलसी था;) –

4

कंपाइलर अज्ञात प्रकार बना सकते हैं जो किसी अन्य प्रकार से प्राप्त होते हैं - आप नहीं कर सकते। यह बहुत बुरा है, वास्तव में यह एक अच्छी सुविधा होगी जो फ्लाई पर एक अनाम प्रकार बनाने के लिए होगी जो या तो किसी अन्य वर्ग से प्राप्त होती है या एक इंटरफ़ेस लागू करती है।

+4

हाँ, बनाने एक अज्ञात प्रकार जो एक इंटरफ़ेस लागू करता है, थोड़े साफ हो जाएगा। – BFree

9

यह शब्द के सामान्य सी # अर्थ में अज्ञात प्रकार नहीं है।

यह सिर्फ एक प्रकार है जो आंतरिक है, इसलिए आप इसका नाम नहीं जानते: आप अपने कोड के भीतर सटीक प्रकार का उल्लेख नहीं कर सकते हैं।

+0

धन्यवाद; यह मूल रूप से मैं क्या सोच रहा था। मैंने यह +1 दिया लेकिन विल के जवाब को स्वीकार कर लिया क्योंकि वह वास्तव में स्रोत कोड (प्रतिबिंब में, मैं मान रहा हूं) को देखने की परेशानी में गया था। –

+0

स्रोत कोड एमएस से डाउनलोड करने योग्य है (हालांकि उनके संदर्भ स्रोत प्रोजेक्ट एक शर्मनाक shambles है) - मैंने इसे विंडोज द्वारा भी अनुक्रमित किया है, इसलिए इस तरह की चीजें देखने के लिए बहुत जल्दी है। http://referencesource.microsoft.com/netframework.aspx –

3

बेनामी प्रकार हमें गुमनाम CLR और संकलक नहीं है। कंपाइलर एक मजेदार नामकरण का उपयोग करता है जिसमें नाम में <> शामिल है और केवल संकलक ही ऐसा कर सकता है! और शायद चक नोरिस ...

+4

चक नॉरिस अज्ञात प्रकार का नाम जानता है। –

+3

चक नॉरिस एक अज्ञात प्रकार पर एकाधिक विरासत शूट कर सकते हैं ... – Aliostad

+1

ठीक है, लेकिन मुझे यकीन नहीं था कि * यह * दस्तावेज "अज्ञात" (यहां तक ​​कि कंपाइलर-जेनरेट किया गया प्रकार), उदाहरण के लिए, सी # की अनाम प्रकार की विशेषता है)। विल के उत्तर से बाहर निकलता है, यह सिर्फ एक अलग अर्थ है। –

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