Menu
CoddyTech

空值检查模式

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

空值检查是编写健壮 C# 代码的重要部分。你可以使用多种模式安全地检查空值。

让我们来看看一些常见的空值检查模式:

首先,来看基本的 null 检查:

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

另一种常见模式是 null 条件运算符(?.),它可以安全地访问可能为 null 的对象成员:

string name = null;
int? length = name?.Length;  // length 将为 null

当表达式为 null 时,空合并运算符(??)会提供一个默认值:

string name = null;
string displayName = name ?? "Unknown";  // displayName 的值会是 "Unknown"

你还可以将这些模式串联起来,以处理更复杂的情况:

string name = null;
int length = (name ?? "").Length;  // length 将为 0

string.IsNullOrWhiteSpace() 方法可以方便地一次检查字符串是否为 null、空字符串或仅包含空白字符:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

当你需要将 null、空字符串和仅含空白字符的字符串视为相同情况时,这尤其有用。例如:

string name1 = null;
string name2 = "";
string name3 = "   ";

// 这三个都会输出消息
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

请注意,string.IsNullOrWhiteSpace() 与普通的 null 检查不同。它还会检测空字符串,以及只包含空格、制表符或其他空白字符的字符串。

challenge icon

挑战

简单

创建一个名为 processUserName 的方法,该方法接收一个字符串参数 userName。该方法应:

  1. 如果 userName 为 null,则返回 "No user provided"
  2. 如果 userName 为空或仅包含空白字符,则返回 "Invalid username"
  3. 否则,返回 "Welcome, [userName]!",其中 [userName] 是实际的用户名

记得使用恰当的 null 检查模式。

亲手试试

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // 在这里编写你的代码
    }
}
quiz icon自我测试

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

逻辑与流程中的所有课

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