如果语句不能隐式将类型转换为bool?

时间:2019-08-09 17:11:00

标签: c# entity-framework

我正在测试是否通过if语句在C#中将变量设置为bool。由于某种原因,它显示“无法将类型隐式转换为bool”。

if (s4 = null) {
    System.Console.WriteLine("Student Not Found");
} else {
    System.Console.WriteLine($"{s4.FirstName} {s4.LastName} {s4.Major?.Description}");
    var db = new AppEfDbContext();
}

3 个答案:

答案 0 :(得分:2)

您缺少==是分配,而比较是==

if (s4 == null) {
                System.Console.WriteLine("Student Not Found");
            } else {
                System.Console.WriteLine($"{s4.FirstName} {s4.LastName} {s4.Major?.Description}");
                var db = new AppEfDbContext();
            }

答案 1 :(得分:2)

布尔表达式必须用==完成,因此代码必须如下所示:

if (s4 == null) {
                System.Console.WriteLine("Student Not Found");
            } else {
                System.Console.WriteLine($"{s4.FirstName} {s4.LastName} {s4.Major?.Description}");
                var db = new AppEfDbContext();
            }

答案 2 :(得分:0)

在有条件的情况下使用==代替=

= : Assignment Operator

  

赋值运算符=将其右侧操作数的值赋给变量

== : Equality operator

  

相等运算符检查其操作数是否相等。

if (s4 == null) { 
      //^ this was missing
    System.Console.WriteLine("Student Not Found");
} else {
    System.Console.WriteLine($"{s4.FirstName} {s4.LastName} {s4.Major?.Description}");
    var db = new AppEfDbContext();
}