Что означает символ @ перед строкой в C#?
ما هو الرمز @ قبل السلسلة النصية في C#؟
الرمز @ قبل السلسلة النصية ينشئ سلسلة نصية حرفية (verbatim string literal). هذه صيغة خاصة تقوم بما يلي:
- تتجاهل رموز الهروب - يتم تفسير كل شيء حرفياً كما هو مكتوب
- تحافظ على فواصل الأسطر - يمكن كتابة سلسلة نصية عبر عدة أسطر
في حالتك:
string path = @"C:\Users\Admin\Documents\file.txt";
بدون الرمز @، ستحاول C# تفسير \U كرمز هروب (وهذا هو سبب الخطأ "unrecognized escape sequence"). مع الرمز @، يتم تفسير الشرطة المائلة للخلف حرفياً كحرف عادي.
string text = @"Hello,
world!";
هنا، يحافظ الرمز @ على فاصل الأسطر الحقيقي في الكود. بدون الرمز @، ستعامل C# هذا كسلسلة نصية عادية متعددة الأسطر وسيتم تجاهل فاصل الأسطر (أو ستظهر كمسافة).
استخدام @ مع أسماء المتغيرات
عند استخدامه قبل أسماء المتغيرات، مثل string @class = "test"; - هذا مختلف. يتيح لك استخدام الكلمات المحجوزة (مثل class) كأسماء متغيرات. هذا هو معرف حرفي (verbatim identifier). ليس له علاقة بسلاسل النصوص الحرفية - إنها مجرد مصادفة أنهما يستخدمان نفس الرمز.