You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中C# if-else语句报错:&&运算符无法用于bool与string类型

问题分析与解决方案

嘿,这个错误的根源其实很容易发现——你把相等判断运算符和赋值运算符搞混啦!

你写的代码里:

else if((result1 != null) && (result2 = null))

这里的result2 = null是赋值操作,它会把null赋值给result2,然后返回这个赋值的结果也就是null(属于string类型)。而&&左边的result1 != null返回的是bool类型的结果,C#里当然不允许把bool和string用&&运算符连接,这就是你看到报错的原因。

修正后的代码

只需要把赋值的=改成判断相等的==就可以解决这个问题:

else if((result1 != null) && (result2 == null))

匹配你需求的完整示例

按照你说的“判断变量是否非null,若目标变量为null则将值存入该变量”,完整的逻辑可以写成这样:

// 假设这是你的两个变量
string result1 = "需要存入的内容";
string result2 = null;

// 其他判断逻辑...
else if((result1 != null) && (result2 == null))
{
    // 当result1非空,且result2为空时,把result1的值存入result2
    result2 = result1;
}

以后写判断的时候要注意哦:=是用来给变量赋值的,==才是用来判断两个值是否相等的,这是很常见的新手小失误,下次留意就好啦!

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:20:18