ما الفرق بين 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`؟
اشرح لي من فضلك بأمثلة بسيطة. شكرًا مقدمًا!
<<>>
الفرق الرئيسي: وقت الحساب ونطاق التطبيق
الفرق