.net - C# TypeConverters and IsValid -
मैं System.ComponentModel.TypeConverter का उपयोग करने के लिए विभिन्न प्रकारों में System.Strings का एक समूह डालने का प्रयास कर रहा हूं। ये स्ट्रिंग TypeConverter के लिए एक वैध प्रारूप में हो या हो सकता है, इसलिए मैं टाइप रूपांतरण का प्रयास करने से पहले उनकी वैधता की जांच करने के लिए एक रास्ता खोजना चाहता हूं (सिस्टम को पकड़ने पर निर्भर होने से बचने के लिए। FormatException स्ट्रिंग इंगित करने के लिए सही स्वरूप में नहीं है)।
बढ़िया, यही कारण है कि TypeConverters के पास एक IsValid () विधि है, है ना? वैसे मैं एक ऐसी समस्या में भाग रहा हूं जहां IsValid () सच वापस आएगा, लेकिन जब मैं कन्वर्टफ़ॉर्मस्ट्रिंग () को कॉल करता हूं, तो यह एक अपवाद फेंकता है इस समस्या को पुन: उत्पन्न करने के लिए यहां कुछ कोड दिया गया है:
System.ComponentModel.DateTimeConverter दिनांककन्वयन = नया सिस्टम.कंपनेन्टमॉडेल.डेटाइम कनोंवर (); स्ट्रिंग TheNumberZero = "0"; If (DateConversion.IsValid (TheNumberZero)) Console.WriteLine (DateConversion। ConvertFromString (TheNumberZero)। ToString ()); Else Console.WriteLine ("अमान्य।");
जब मैं इसे चलाता हूं, तो रेखा
कंसोल.प्रकाशन (तिथि कनवर्ज़न। कन्वर्टफ़ोमस्ट्रिंग (TheNumberZero)। टॉस्ट्रिंग ());
संदेश के साथ एक सिस्टम। फोरमेटएक्सेशन फेंकता है
0 दिनांकटाइम के लिए मान्य मान नहीं है।
एक प्रकार के रूपांतरण का प्रयास करने से पहले रूपांतरण इनपुट की जांच न करने पर IsValid () विधि का क्या उद्देश्य है? क्या कोई तरीका है कि मैं स्ट्रिंग की वैधता को प्रारूप रूपरेखा को पकड़ने की कमी की जांच कर सकता हूं?
दस्तावेज़ीकरण आपका मित्र:
IsValid विधि का उपयोग यह निर्धारित करने के बजाय बजाय निर्दिष्ट मूल्य में मान को परिवर्तित करने के बजाय प्रकार के मान को मान्य करने के लिए किया जाता है। उदाहरण के लिए, IsValid का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कोई मान दिया गया है कि गणन प्रकार के लिए मान्य है या नहीं। एक उदाहरण के लिए, एनोमकोन्रेटर देखें।
Comments
Post a Comment