استخدام آخر للمعامل @

الناقل : elmasry | الكاتب الأصلى : تركي العسيري | المصدر : www.al-asiri.com

قد يعلم الجميع ان ابرز استخدام للمعامل @ في لغة C#‎ مع الثوابت الحرفية String Constants، فلو مللت من الاعتماد على حرف الهروب Escape character (الذي يرمز بـ \):


C#:
Console.WriteLine("C:\\Windows\\Temp\\File.TMP");

يمكنك بدء الثابت الحرفي بالمعامل @ حيث يفهم الثابت الحرفي كما هو مكتوب تماما:

C#:
Console.WriteLine(@"C:\Windows\Temp\File.TMP");

وبخصوص علامة التنصيص المزدوجة "، فاكتبها مرتين حتى تفهم المترجم على انها ليست نهاية الثابت الحرفي:

C#:
Console.WriteLine("Showing the qutation \" mark");
Console.WriteLine(@"Showing the qutation "" mark");


من ناحية أخرى، هناك استخدام اخر للمعامل @ غرضه التفريق بين المعرفات Identifiers والكلمات المحجوزة keywords والخاصة بلغة C#‎، فنحن مبرمجي Visual Basic لا نهتم كثيرا بمبرمجي C#‎، وقد يأتي احد مبرمجي VB بتطوير مكتبة DLL فيها فئة تحتوي على عضو لكلمة محجوزة خاصة بقبيلة C#‎:

Basic:
Public Class VBClass
      Public internal As Integer
      ...
      ...
End Class

عندما تنوي (يا مبرمج C#‎) استخدام هذه المكتبة من داخل مشروعك، فعليك استخدام المعامل @ دائما عند اي معرف Identifer يتعارض اسمه مع اسم اي كلمة محجوزة في لغتك:

C#:
ClassLibrary.VBClass obj = new ClassLibrary.VBClass();

Console.WriteLine(obj.@internal);


او حتى في حدود لغتك الضيقة، فتستطيع كتابة شيئا مثل:

C#:
int @int = 10;
Console.WriteLine (@int);


الله يعينا عليكم يا مبرمجي C#‎، ما قلنا لكم الـ VB احسن!


-- تركي