प्रत्यक्ष प्रकार रूपांतरण (Direct casting) बनाम C# में 'as' ऑपरेटर: कब क्या उपयोग करें?
नमस्ते सहकर्मियों! मैं एक शुरुआती C# डेवलपर हूँ और एक ऐसी स्थिति का सामना किया जो मेरे लिए समझ से बाहर है। अक्सर कोड में मैं किसी ऑब्जेक्ट को एक विशिष्ट प्रकार में बदलने के दो तरीके देखता हूँ: कोष्ठक में प्रत्यक्ष रूपांतरण और 'as' ऑपरेटर। उदाहरण के लिए:\n\n
object obj = "Hello, world!";\nstring str1 = (string)obj; // प्रत्यक्ष रूपांतरण\nstring str2 = obj as string; // 'as' ऑपरेटर\n\n\nदोनों विकल्प समान रूप से काम करते प्रतीत होते हैं, लेकिन मुझे लगता है कि इनके बीच महत्वपूर्ण अंतर हैं। मेरा प्रश्न है: इन दृष्टिकोणों में क्या अंतर है? प्रत्यक्ष रूपांतरण का उपयोग कब सुरक्षित है, और 'as' ऑपरेटर का कब? मैंने सुना है कि 'as' कोई अपवाद (exception) नहीं फेंकता, लेकिन अगर रूपांतरण संभव न हो तो क्या होता है? और मान प्रकारों (value types) जैसे int या double के साथ क्या करें? क्या उनके लिए 'as' का उपयोग किया जा सकता है? मैं आपके उत्तरों के लिए आभारी रहूँगा।