Menu
CoddyTech

短路求值

本课属于 Coddy C# 学习旅程的“逻辑与流程”单元。第 36 课,共 66 课。

短路求值是 C# 中的一种优化技术,对于逻辑与(&&)和或(||)运算符,只有在必要时才会计算第二个操作数。

对于逻辑与(&&),如果第一个操作数是 false,无论第二个操作数是什么,结果始终是 false:

bool result = false && SomeMethod();

在这个示例中,不会调用 SomeMethod(),因为第一个操作数已经是 false。

对于逻辑或(||),如果第一个操作数是 true,无论第二个操作数是什么,结果始终是 true:

bool result = true || SomeMethod();

这里不会调用 SomeMethod(),因为第一个操作数已经是 true。

这种行为可以用来防止错误,例如在访问对象的属性之前检查对象是否为 null:

// 安全:如果 student 为 null,右侧就不会求值。
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}
challenge icon

挑战

简单

创建一个名为 ProcessUserInput 的方法,它接受两个参数:

  • 一个字符串(input)
  • 一个整数(minLength)

该方法应:

  1. 检查输入是否不为 null
  2. 检查输入长度是否至少为 minLength
  3. 只有两个条件都为 true 时,才打印 "Valid input: ",后面跟上输入内容
  4. 如果任一条件不成立,则打印 "Invalid input"

使用短路求值,防止可能出现的 NullReferenceException。

亲手试试

using System;

class ProcessUserInput
{
    public static void processUserInput(string input, int minLength)
    {
        // 在这里编写你的代码
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: C# 在线编译器