Avatar ·

Что означает символ @ перед строкой в 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). ليس له علاقة بسلاسل النصوص الحرفية - إنها مجرد مصادفة أنهما يستخدمان نفس الرمز.