Wednesday 15 February 2012

c# - How to check programmatically if a type is a struct or a class? -


यदि एक प्रकार एक स्ट्रेट या वर्ग है, तो प्रोग्राम को कैसे जांचें?

< Div class = "post-text" itemprop = "text">

का प्रयोग करें:

यह एक मूल्य इंगित करता है कि टाइप एक मान प्रकार है।

< पी> या तो इस तरह का प्रयोग करें:

  typeof (Foo) .इसवल्यूए टाइप  

या इस तरह निष्पादन समय पर:

 < कोड> फू इंस्टेंस। गेटटाइप ()। आईएसवैल्यू टाइप  

इसके विपरीत, एक संपत्ति भी है (जिसे आइररिफर टाइप मेरी राय में, लेकिन कोई बात नहीं कहा जाना चाहिए था) जो आपके परीक्षण के लिए परीक्षण के आधार पर आपके उपयोग के लिए अधिक उपयुक्त हो या हो सकता है।

कोड हमेशा बूलियन निगमन के बिना बेहतर पढ़ता है, इसलिए जो भी आपके कोड की पठनीयता में मदद करता है, उसका उपयोग करें।


जैसा कि स्टीफन नीचे की ओर इंगित करता है, ठीक से उसकी पहचान करने के लिए स्ट्रैक्टस आपको enum की बात करते समय झूठी सकारात्मकता से बचने के लिए सावधान रहना चाहिए। एक enum एक मान का प्रकार है, इसलिए IsValueType संपत्ति true के लिए enums और structs वापस आ जाएगी

अतः यदि आप वास्तव में structs की तलाश में हैं और न सिर्फ सामान्य मानों के लिए आपको ऐसा करना होगा:

  प्रकार fooType = fooInstance .GetType (); बूलियन isstruct = fooType.IsValueType और amp; amp; ! FooType.IsEnum;  

No comments:

Post a Comment