C# string.length > 0 被视为 bool 值

标签 c#

我是 C# 新手,但不是编程新手。当我在下面的代码中比较两个字符串的长度时,出现错误:

Operator '&' cannot be applied to operands of type 'bool' and 'int'

显然 string1.Length > 0 在此上下文中被视为 bool 值。

我应该如何进行比较?

if (string1.Length > 0 & string2.Length = 0)
{
    //Do Something
}

最佳答案

错误的原因是因为你写的是=,而你的意思是==。在 C# 中

string1.Length > 0 & string2.Length = 0

表示

(string1.Length > 0) & (string2.Length = 0)

左边的类型是bool,右边的类型是int,不能用&合并,因此错误。当然,即使您设法克服了这一点,Length 也不能成为赋值的目标。

使用 == 来测试相等性。 = 是赋值。

也可以考虑使用 && 而不是 &x & y 的含义是“评估两者,如果两者都是true,则结果为true,否则为false ”。 x && y 的意思是“计算左边;如果它是 false 那么结果是 false 所以不要计算右边. 如果左侧为 true,则按照 & 的方式进行。”

关于C# string.length > 0 被视为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929687/

相关文章:

c# WebAPI Owin jwt RefreshToken invalid_grant 收藏

c# - 创建仅由局部变量引用的 BackgroundWorker 对象是否定义明确?

c# - selenium 上的 click() 函数在 C# 中不起作用

c# - 在应用程序配置文件中找不到名为 'MyEntities' 的连接字符串

c# - 如何识别基于单个左连接的 sql 命令的左连接过多

c# - MVVM 从 VM 访问 Richtextbox 流文档

c# - 如何将依赖项注入(inject) Caliburn.Micro 中的 View 模型?

c# - 打印机不可用,除非共享

c# - 当禁用 Expect100Continue header 时,HttpWebRequest 引入了显着的延迟

c# - 如何封装存储过程调用