عدم الاتساق غير المتوقع في سجلات C#‎: مشكلة مع عامل التشغيل `with`

2025-07-22
عدم الاتساق غير المتوقع في سجلات C#‎: مشكلة مع عامل التشغيل `with`

اكتشف الكاتب عدم اتساق غير متوقع عند استخدام سجلات C#. عند تحديث السجلات التي تحتوي على بيانات مشتقة باستخدام عامل التشغيل `with`، لا يتم إعادة حساب البيانات المشتقة، مما يؤدي إلى عدم اتساق. هذا ينبع من عدم قيام عامل التشغيل `with` باستدعاء مُنشئ، ولكنه يستخدم مُنشئ نسخة لإنشاء نسخة، ثم تعديل الخصائص. تم اقتراح العديد من الحلول، بما في ذلك تجنب استخدام `with` في السجلات المعقدة، وكتابة محلل Roslyn لاكتشاف المشكلة، واستخدام `Lazy` لحساب الخصائص المؤجلة، وطلب تغيير في اللغة. تُبرز هذه المشاركة فخًا محتملًا في سجلات C#، محذرة المطورين من استخدام عامل التشغيل `with`، خاصةً مع البيانات المشتقة.