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
相关产品推荐
相关产品推荐

