Unity C#属性=>

今天看到一个比较有意思的语法糖,打开到Unity的Object的基类,发现下面几行代码:

image.png

第一反应是:这是什么玩意?

百度搜搜,发现这玩意居然不是Lambda表达式,而是属性,C#6.0的语法糖,这篇讲的比较详细:https://stackoverflow.com/questions/31764532/what-is-the-assignment-in-c-sharp-in-a-property-signature

实际上这两句话是等价的:

public bool Active1 => 1 + 1 > 2;
    public bool Active2
    {
        get { return 1 + 1 > 2; }
    }

那下面这两句的区别,就很好理解了,一个是只能get的属性,一个是值:

public bool Active1 => 1 + 1 > 2;
    public bool Active3 = 1 + 1 > 2;

当然了,这种花里胡哨的用法还有很多,但总体上加大了新人的阅读难度。比如下面这种:

public bool Active => IsActive();
    bool IsActive()
    {
        return 1 + 1 > 2;
    }
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Unity 中,您可以使用以下方式编写该条件语句: ``` if (Skill.ID == id) { // 执行某些操作 } ``` 其中,`Skill` 是一个对象,具有 `ID` 属性,`id` 是要比较的值。如果 `Skill` 的 `ID` 属性等于 `id`,则条件为真,执行相应的操作。 ### 回答2: 要正确书写"unity Skill => Skill.ID == id"这种条件语句,可能需要注意以下几点: 1.确保使用正确的编程语言语法:这个条件语句看起来类似于C#Unity中的Lambda表达式。如果你在Unity中使用C#进行编程,那么它的书写方式应该是这样的: Skill skill = ...; // 假设你有一个表示技能的对象实例 int id = ...; // 假设你有一个id变量,用来判断是否匹配 bool isMatched = skill.ID == id; // 使用"=="来判断技能对象的ID是否与给定的id相匹配 如果要使用Lambda表达式来进行筛选,可以这样写: List<Skill> skills = ...; // 假设你有一个技能对象列表 int id = ...; // 假设你有一个id变量,用来判断是否匹配 List<Skill> matchedSkills = skills.Where(skill => skill.ID == id).ToList(); // 使用Lambda表达式筛选出ID与给定id相匹配的技能对象,并转换成列表返回 2.理解"Skill"对象和该对象的属性:根据提供的条件语句可以看出,Skill是一个类或结构体,并且该类或结构体中有一个名为ID的属性,用来表示技能的唯一标识符。在进行条件判断时,需要确保Skill类或结构体中真的有一个名为ID的属性。 3.理解"=="运算符的使用:条件语句中的"=="运算符用来判断两个值是否相等。在此情况下,它用来判断技能对象的ID是否与给定的id值相等。 总结起来,要正确书写"unity Skill => Skill.ID == id"这种条件语句,需要使用正确的编程语言语法,确保Skill类或结构体中有一个名为ID的属性,并且理解"=="运算符的使用。 ### 回答3: 在Unity中,可以使用以下方式书写条件语句"unity Skill => Skill.ID == id": 首先,假设你要判断的是一个Skill类的对象,其中Skill类有一个属性ID,而id是你给定的一个变量。 如果你要使用条件判断语句,可以这样写: if(Skill.ID == id) { // 如果条件满足,执行这里的代码 } else { // 如果条件不满足,执行这里的代码 } 以上代码表示,如果Skill对象的ID属性等于给定的id变量,就会执行if代码块中的内容;如果不相等,则执行else代码块中的内容。 另外,如果你要判断的是多个Skill对象,可以使用循环遍历的方式来实现。这里给出一个示例代码,假设skills是一个Skill类的列表: foreach(Skill skill in skills) { if(skill.ID == id) { // 如果条件满足,执行这里的代码 } else { // 如果条件不满足,执行这里的代码 } } 以上代码表示,会依次遍历skills列表中的每个Skill对象,如果其中某个对象的ID属性等于给定的id变量,就会执行if代码块中的内容;否则执行else代码块中的内容。 希望以上回答对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值