我是 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)