短路求值
本课属于 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!");
}挑战
简单创建一个名为 ProcessUserInput 的方法,它接受两个参数:
- 一个字符串(
input) - 一个整数(
minLength)
该方法应:
- 检查输入是否不为 null
- 检查输入长度是否至少为
minLength - 只有两个条件都为 true 时,才打印 "Valid input: ",后面跟上输入内容
- 如果任一条件不成立,则打印 "Invalid input"
使用短路求值,防止可能出现的 NullReferenceException。
亲手试试
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// 在这里编写你的代码
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C# 在线编译器