Avatar ·

ما الفرق بين const و readonly في C#؟

مرحبًا بالجميع! أنا مبتدئ في C# وأخلط دائمًا بين الكلمتين المفتاحيتين `const` و `readonly`. يبدو أن كلاهما يجعل القيمة غير قابلة للتغيير، لكني أشعر أن الأمر ليس كذلك تمامًا. لدي هذا الكود: ```csharp public class MyClass { public const int MaxAttempts = 5; public readonly string ConnectionString = "localhost"; public void Test() { // MaxAttempts = 10; // خطأ - const لا يمكن تغييره // ConnectionString = "new"; // خطأ - readonly لا يمكن تغييره } } ``` كلا الحقلين لا يمكن تغييرهما بعد التهيئة. لكن ما الفرق إذن؟ سمعت أن `const` يعمل في مرحلة الترجمة (compile-time)، بينما `readonly` يعمل في مرحلة التنفيذ (runtime). ماذا يعني هذا عمليًا؟ متى يجب أن أستخدم `const` ومتى `readonly`؟ ولماذا يمكنني تهيئة `readonly` في المُنشئ (constructor) بينما لا يمكنني ذلك مع `const`؟ اشرح لي من فضلك بأمثلة بسيطة. شكرًا مقدمًا! <<>>

الفرق الرئيسي: وقت الحساب ونطاق التطبيق

الفرق