Avatar ·

C# में टाइप चेकिंग: typeof, GetType() या is? कब क्या उपयोग करें?

सभी को नमस्कार! मैं एक शुरुआती C# डेवलपर हूँ और C# में टाइप चेकिंग को समझ नहीं पा रहा हूँ। तीन तरीके हैं: `typeof` ऑपरेटर, `GetType()` मेथड और `is` ऑपरेटर। लेकिन कब क्या उपयोग करें? यहाँ एक उदाहरण है जो मुझे भ्रमित करता है: ```csharp object obj = "Hello, world!"; // तरीका 1 if (obj.GetType() == typeof(string)) Console.WriteLine("यह एक स्ट्रिंग है (GetType)"); // तरीका 2 if (obj is string) Console.WriteLine("यह एक स्ट्रिंग है (is)"); // तरीका 3 Type t = typeof(string); if (obj.GetType() == t) Console.WriteLine("यह एक स्ट्रिंग है (typeof)"); ``` तीनों विकल्प काम करते हैं, लेकिन मुझे लगता है कि ये एक-दूसरे के बदले उपयोग नहीं किए जा सकते। उदाहरण के लिए, मैंने सुना है कि `typeof` केवल कंपाइल टाइम पर टाइप के साथ काम करता है, जबकि `GetType()` रन टाइम पर। और `is` कुछ जादुई है—यह जाँच भी करता है और टाइप कास्ट भी करता है। कृपया बताएं: 1. `typeof`, `GetType()` और `is` के बीच मूलभूत अंतर क्या है? 2. कब क्या उपयोग करें ताकि कोड सही हो?