在C#中,@符號不僅可以加在字符串常量之前,使字符串不作轉義之用,還可以加在變量名之前,使變量名與關鍵字不沖突,這種用法稱為“逐字標識符”。請看下面的代碼:
class @class { public static void @static(bool @bool) { if (@bool) System.Console.WriteLine("true"); else System.Console.WriteLine("false"); }}
這里使用到@的地方有三處,@class,@static和@bool,如果不加@的話,他們都是關鍵字,編譯就會報錯。加了@之后,他們和普通的變量名沒有區別了,可以正常使用。當然@也可以加在非關鍵字之前,比如:
static void Test(string @str) { Console.WriteLine(str);}
這樣@就一點效果也沒有,@str等價于str。
當然,使用關鍵字作為變量名是非常不推薦的,除非特殊情況,比如和其它語言交互,一般不鼓勵使用。
新聞熱點
疑難解答