Avatar ·

C# में Static readonly बनाम const: कब क्या उपयोग करें?

सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ, और मुझे एक सवाल परेशान कर रहा है: `static readonly` और `const` में क्या अंतर है? मैं समझता हूँ कि दोनों का उपयोग अपरिवर्तनीय मान घोषित करने के लिए किया जाता है, लेकिन कब क्या उपयोग करना है — यह मुझे समझ नहीं आता। यहाँ एक उदाहरण है: मैं गणितीय सूत्रों के साथ काम करने के लिए एक class लिख रहा हूँ। मुझे Pi का मान और परिणाम प्रदर्शित करने के लिए दशमलव के बाद अंकों की संख्या घोषित करनी है। मैंने ऐसा किया: ```csharp public class MathHelper { public const double Pi = 3.14159; public static readonly int Precision = 3; } ``` लेकिन फिर एक अन्य डेवलपर ने कहा कि `Pi` के लिए `const` ठीक है, लेकिन `Precision` के लिए `static readonly` अजीब है। क्यों? आखिर दोनों मान बदलते नहीं हैं। और मैंने यह भी देखा कि यदि मैं किसी दूसरे project में `const` का उपयोग करता हूँ, तो इस assembly में मान बदलने के बाद, दूसरा project अपडेट नहीं देखता जब तक कि वह recompile न हो। जबकि `static readonly` के साथ ऐसा नहीं होता। कृपया बताएँ, मूलभूत अंतर क्या है? कब `const` का उपयोग करना चाहिए, और कब `static readonly` का?