我是 C# 新手,但不是编程新手。当我在下面的代码中比较两个字符串的长度时,我得到了错误:
运算符“&”不能应用于“bool”和“int”类型的操作数
显然string1.Length > 0
在这种情况下被视为布尔值。
我应该如何进行这种比较?
if (string1.Length > 0 & string2.Length = 0)
{
//Do Something
}
我是 C# 新手,但不是编程新手。当我在下面的代码中比较两个字符串的长度时,我得到了错误:
运算符“&”不能应用于“bool”和“int”类型的操作数
显然string1.Length > 0
在这种情况下被视为布尔值。
我应该如何进行这种比较?
if (string1.Length > 0 & string2.Length = 0)
{
//Do Something
}
错误的原因是因为你=
在你的意思是写的==
。在 C# 中
string1.Length > 0 & string2.Length = 0
方法
(string1.Length > 0) & (string2.Length = 0)
左侧bool
的类型是 和右侧的类型是int
,不能一起&
-ed ,因此错误。当然,即使你设法克服了这一点,Length
也不能成为任务的目标。
用于==
测试是否相等。=
是赋值。
也考虑使用&&
代替&
. 的意思x & y
是“评估两者,结果是true
如果两者都是true
,false
否则”。的含义x && y
是“评估左侧;如果是,false
则结果是false
,所以不评估右侧。如果左侧是,true
则照此&
执行。”
当应用于整数时,&
C# 中的运算符是按位的AND
,而不是逻辑的AND
。也是=
一个赋值,而不是一个相等比较运算符。string1.Length > 0
表达式确实是布尔类型的表达式,而赋值是整数(因为是0
整数)。
你需要的是
if (string1.Length > 0 && string2.Length == 0)
这将解决您的问题。
if(string1.Length > 0 && string2.Length == 0)