c#中的@至少有以下几种作用

本文介绍了C#编程语言中@符号的三种主要用途:1. 忽略字符串中的转义字符;2. 允许字符串跨越多行书写;3. 使C#关键字可以用作标识符。这些技巧有助于提升代码的可读性和灵活性。

c#中的@至少有以下几种作用

1.忽略转义字符
例如
string fileName = "D://文本文件//text.txt";
使用@后
string fileName = @"D:/文本文件/text.txt";

2.让字符串跨行
例如
string strSQL = "SELECT * FROM HumanResources.Employee AS e"
    + " INNER JOIN Person.Contact AS c"
    + " ON e.ContactID = c.ContactID"
    + " ORDER BY c.LastName";
使用@后
string strSQL = @"SELECT * FROM HumanResources.Employee AS e
    INNER JOIN Person.Contact AS c
    ON e.ContactID = c.ContactID
    ORDER BY c.LastName";

3.在标识符中的用法
C#是不允许关键字作为标识符(类名、变量名、方法名、表空间名等)使用的,但如果加上@之后就可以了
例如
public static void @static(int @int)
        {
            if (@int > 0)
            {
                System.Console.WriteLine("Positive Integer");
            }
            else if (@int == 0)
            {
                System.Console.WriteLine("Zero");
            }
            else
            {
                System.Console.WriteLine("Negative Integer");
            }
        }


这是有次看帖时看到,原址忘了。希望对你有用!

C#中,不同类型的委托有着各自的特点和使用场景,以下是常见的几种委托类型及其介绍: - **自定义委托**:需要用户自行定义委托的签名,指定返回类型和参数列表。示例代码如下: ```csharp // 定义一个委托,接受两个整数参数,返回一个整数 delegate int MathOperation(int a, int b); class Program { static int Add(int a, int b) { return a + b; } static void Main() { // 实例化委托 MathOperation operation = Add; int result = operation(3, 5); Console.WriteLine(result); // 输出 8 } } ``` - **`Action`委托**:用于无返回值的方法。`Action`可以有0到16个参数,通过不同的泛型参数来表示参数的类型。示例代码如下: ```csharp // 定义一个无参数的 Action 委托 Action printMessage = () => Console.WriteLine("Hello, World!"); printMessage(); // 输出 Hello, World! // 定义一个带参数的 Action 委托 Action<string> printName = (name) => Console.WriteLine("Name: " + name); printName("John"); // 输出 Name: John ``` - **`Func`委托**:用于有返回值的方法。`Func`至少有一个泛型参数,最后一个泛型参数表示返回类型,前面的泛型参数表示方法的参数类型,最多可以有16个输入参数。示例代码如下: ```csharp // 定义一个接受两个整数参数,返回一个整数的 Func 委托 Func<int, int, int> multiply = (a, b) => a * b; int product = multiply(4, 6); Console.WriteLine(product); // 输出 24 ``` - **`Predicate`委托**:用于定义返回布尔值的方法,它接受一个参数。通常用于集合的筛选操作。示例代码如下: ```csharp List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 }; Predicate<int> isEven = (num) => num % 2 == 0; List<int> evenNumbers = numbers.FindAll(isEven); foreach (int num in evenNumbers) { Console.WriteLine(num); // 输出 2, 4, 6 } ``` - **多播委托**:可以引用多个方法,当调用多播委托时,会依次调用其所引用的所有方法。多播委托可以使用`+`运算符来组合多个方法,使用`-`运算符来移除某个方法。示例代码如下: ```csharp delegate void MultiCastDelegate(); class Program { static void Method1() { Console.WriteLine("Method 1"); } static void Method2() { Console.WriteLine("Method 2"); } static void Main() { MultiCastDelegate multiCast = Method1; multiCast += Method2; multiCast(); // 输出: // Method 1 // Method 2 multiCast -= Method1; multiCast(); // 输出: // Method 2 } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值