c# 中的 @ 符号取消特殊字符的转义含义,使字符串可跨多行、enum 成员可自定义底层值,还可指示方法或属性是异步的。
c# 中的 @ 符号
c# 中的 @ 符号是一个修饰符,用来取消转义序列的特殊含义。
作用
- 当 @ 符号放在字符串前面时,可以取消字符串中特殊字符(如 \n、\t 等)的转义含义。这使得字符串可以跨多行而不必使用转义序列。
- 当 @ 符号放在 Enum 成员前面时,可以指定它的底层值。这允许 Enum 成员具有自定义值,而不受整数限制。
- 当 @ 符号放在方法或属性前面时,可以指示该方法或属性是异步的。
字符串
以下是带 @ 符号和不带 @ 符号的字符串示例:
// 不带 @ 符号
string s = "Hello\nWorld!";
// 带 @ 符号
string s = @"Hello
World!";
在第一个示例中,\n 会生成一个换行符。但在第二个示例中,由于 @ 符号的存在,\n 会按原样输出。
Enum
以下是带 @ 符号和不带 @ 符号的 Enum 示例:
// 不带 @ 符号
enum Weekdays { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
// 带 @ 符号
enum Weekdays { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 }
在第一个示例中,Weekdays 的底层值是从 0 开始的整数。但在第二个示例中,@ 符号允许为 Enum 成员指定自定义值。
异步方法和属性
以下是带 @ 符号和不带 @ 符号的异步方法和属性示例:
// 不带 @ 符号
Task<int> GetNumber() { ... }
// 带 @ 符号
Task<int> GetNumberAsync() { ... }</int></int>
在第一个示例中,GetNumber 是一个同步方法。而在第二个示例中,@ 符号指示 GetNumberAsync 是一个异步方法。
以上就是c#中@什么意思的详细内容,更多请关注编程网其它相关文章!