علامت @

علامت @ به شما اجازه می‌دهد که کاراکترهای کنترلی را رد کرده و رشته‌ای خواناتر و طبیعی‌تر ایجاد کنید. وقتی از کاراکترهای کنترلی در یک رشته استفاده می‌شود ممکن است برای تایپ مثلاً یک بک اسلش ( \ ) به جای استفاده از دو علامت \\ از یک \ استفاده کرده و دچار اشتباه شوید. این کار باعث به وجود آمدن خطای کامپایلری شده و چون کامپایلر فکر می‌کند که شما می‌خواهید یک کاراکتر کنترلی را تایپ کنید و کاراکتر بعد از علامت \ را پردازش می‌کند و چون کاراکتر کنترلی وجود ندارد خطا به وجود می‌آید.
به مثال زیر توجه کنید :

System.Console.WriteLine("I want to have a cat\dog as a birthday present."); //Error

با وجودیکه بهتر است در مثال بالا از اسلش ( / ) در cat/dog استفاده شود ولی عمداً از بک اسلش ( \ ) برای اثبات گفته بالا استفاده کرده‌ایم. کامپایلر خطا ایجاد می‌کند و به شما می‌گوید که کاراکتر کنترلی \d قابل تشخیص نیست چون همچین کاراکتر کنترلی وجود ندارد. زمانی وضعیت بدتر خواهد شد که کاراکتر بعد از بک اسلش کاراکتری باشد که هم جز یک کلمه باشد و هم جز کاراکترهای کنترلی. به مثال زیر توجه کنید :

System.Console.WriteLine("Answer with yes\no:");
Answer with yes
o

استفاده از علامت @ برای نادیده گرفتن کاراکترهای کنترلی

استفاده از علامت @ زمانی مناسب است که شما نمی‌خواهید از علامت بک اسلش برای نشان دادن یک کارکتر کنترلی استفاده کنید. استفاده از این علامت بسیار ساده است و کافی است که قبل از رشته مورد نظر آن را قرار دهید.

System.Console.WriteLine(@"I want to have a cat\dog as a birthday present.");
I want to have a cat\dog as a birthday present.

از علامت @ معمولاً زمانی استفاده می‌شود که شما بخواهید مسیر یک دایرکتوری را به عنوان رشته داشته باشید. چون دایرکتوری‌ها دارای تعداد زیادی بک اسلش هستند و طبیعتاً استفاده از علامت @ به جای دابل بک اسلش (\\) بهتر است.

System.Console.WriteLine(@"C:\Some Directory\SomeFile.txt");
C:\Some Directory\SomeFile.txt

اگر بخواهید یک دابل کوتیشن چاپ کنید به سادگی می‌توانید از دو دابل کوتیشن استفاده کنید.

System.Console.WriteLine(@"Printing ""double quotations""...");
Printing "double quotations"...

از به کار بردن علامت @ و کاراکترهای کنترلی به طور همزمان خودداری کنید چون باعث چاپ کاارکتر کنترلی در خروجی می‌شود.

استفاده از علامت @ برای نگهداری از قالب بندی رشته‌ها

یکی دیگر از موارد استفاده از علامت @ چاپ رشته‌های چند خطی بدون استفاده از کاراکتر کنترلی \n است. به عنوان مثال برای چاپ پیغام زیر :

C# is a great programming language and
it allows you to create different
kinds of applications.

یکی از راه‌های چاپ جمله بالا به صورت زیر است :

Console.WriteLine("C# is a great programming language and\n" +
                  "it allows you to create different\n" + 
                  "kinds of applications.");

به نحوه استفاده از \n در آخر هر جمله توجه کنید. این کاراکتر همانطور که قبلاً مشاهده کردید خط جدید ایجاد می‌کند و در مثال بالا باعث می‌شود که جمله به چند خط تقسیم شود. از علامت + هم برای ترکیب رشته‌ها استفاده می‌شود. راه دیگر برای نمایش مثال بالا در چندین خط استفاده از علامت @ است

Console.WriteLine(@"C# is a great programming language and
it allows you to create different
kinds of applications.");

در این حالت کافیست که در هر جا که می‌خواهید رشته در خط بعد نمایش داده شود دکمه Enter را فشار دهید