【C#/Unity】C#脚本中 =>符号是什么意思?

目录

  • 快速入门
  • lambda运算符使用场景
      • 过滤集合
      • 转换集合
      • 排序集合
      • 定义委托或事件处理程序
      • 异步编程
  • 其他常见运算符使用场景
      • 赋值运算符(=)
      • 算术运算符(+,-,*,/,%)
      • 比较运算符(==,!=,<,>,<=,>=)
      • 逻辑运算符(&&,||,!)
      • 条件运算符(?:)
      • null条件运算符(?.)

快速入门

C#中,=>符号是"lambda运算符",用于定义lambda表达式。

Lambda表达式是一种简洁的匿名函数表示方式,它可以包含表达式和语句,并且可以用于创建委托或表达式树类型。

  • 假设有一个整数列表,想要找到其中的偶数。我们可以使用lambda表达式来完成这个任务:
// 使用lambda表达式找到偶数
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// evenNumbers现在包含2, 4, 6, 8, 10
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
  • 其中,n => n % 2 == 0就是一个lambda表达式。n是输入参数(在这个例子中是列表中的每个元素),n % 2 == 0是函数体,它检查数字是否是偶数。

  • 我们也可以使用lambda表达式来定义更复杂的函数,例如:

Func<int, int, int> add = (a, b) => a + b;
// sum = 7
int sum = add(3, 4);  
  • 其中,(a, b) => a + b是一个lambda表达式,返回两个输入参数ab的和。

总的来说,=>符号在C#中用于定义简洁且强大的函数,它们可以用于各种场景,包括处理集合、定义简单的函数或者作为其他函数的参数。


lambda运算符使用场景

在C#中,lambda表达式主要就是使用=>来运算符完成的。常见使用场景如下:

过滤集合

  • 使用lambda表达式过滤集合中的元素。例如,查找一个整数列表中的所有偶数:

    List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
    

转换集合

  • 使用lambda表达式来转换集合中的元素。例如,将一个整数列表中的所有元素都乘以2:

    List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
    List<int> doubled = numbers.Select(n => n * 2).ToList();
    

排序集合

  • 使用lambda表达式来对集合进行排序。例如,按照长度对一个字符串列表进行排序:

    List<string> words = new List<string> { "apple", "banana", "cherry" };
    List<string> sorted = words.OrderBy(w => w.Length).ToList();
    

定义委托或事件处理程序

  • 使用lambda表达式来定义委托或事件处理程序。例如,定义一个委托来计算两个整数的和:

    Func<int, int, int> add = (a, b) => a + b;
    int sum = add(3, 4);  // sum现在是7
    

异步编程

  • 使用lambda表达式来定义异步任务。例如,定义一个异步任务来模拟一个耗时的操作:

    Task.Run(() => {
        // 模拟一个耗时的操作
        Thread.Sleep(1000);
        Console.WriteLine("Operation completed");
    });
    

其他常见运算符使用场景

以下是一些常见的C#运算符及其用途:

赋值运算符(=)

  • 用于将值赋给变量。

    int a = 5;
    

算术运算符(+,-,*,/,%)

  • 用于执行基本的数学运算。

    int sum = 3 + 2;  // sum = 5
    int difference = 3 - 2;  // difference = 1
    int product = 3 * 2;  // product = 6
    int quotient = 3 / 2;  // quotient = 1
    int remainder = 3 % 2;  // remainder = 1
    

比较运算符(==,!=,<,>,<=,>=)

  • 用于比较两个值。

    bool isEqual = (3 == 2);  // isEqual = false
    bool isNotEqual = (3 != 2);  // isNotEqual = true
    bool isLessThan = (3 < 2);  // isLessThan = false
    bool isGreaterThan = (3 > 2);  // isGreaterThan= = true
    bool isLessThanOrEqual = (3 <= 2);  // isLessThanOrEqual = false
    bool isGreaterThanOrEqual = (3 >= 2);  // isGreaterThanOrEqual = true
    

逻辑运算符(&&,||,!)

  • 用于执行逻辑运算。

    bool bothAreTrue = (true && true);  // bothAreTrue = true
    bool eitherIsTrue = (true || false);  // eitherIsTrue = true
    bool isNotTrue = !true;  // isNotTrue = false
    

条件运算符(?:)

  • 用于执行条件运算。

    int a = 5;
    int b = 3;
    int max = (a > b) ? a : b;  // max = 5
    

null条件运算符(?.)

  • 用于在引用或类型为null的情况下避免抛出异常。

    string name = null;
    int? length = name?.Length;  // length = null,而不是抛出异常
    
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值