跳到主要内容

2.2 基础语法与控制流

基础语法决定你能否准确表达业务规则。学习 C# 时不要只记语法形式,要把每个语法点和真实输入、输出、边界条件联系起来。

学习目标

  • 能声明变量、常量和方法。
  • 能使用条件分支表达业务规则。
  • 能使用循环处理集合数据。
  • 能把重复逻辑提取为方法。

应用场景

  • 校验创建任务请求是否合法。
  • 根据优先级计算任务排序权重。
  • 遍历任务列表并生成统计信息。
  • 把复杂条件拆成可读的方法。

核心概念

概念说明
变量存储运行时变化的数据
常量存储不应改变的固定值
条件根据不同输入执行不同逻辑
循环对一组数据重复执行逻辑
方法给一段可复用逻辑命名

案例:校验任务标题

public static ValidationResult ValidateTitle(string? title)
{
const int maxLength = 120;

if (string.IsNullOrWhiteSpace(title))
{
return ValidationResult.Fail("标题不能为空");
}

if (title.Length > maxLength)
{
return ValidationResult.Fail($"标题不能超过 {maxLength} 个字符");
}

return ValidationResult.Success();
}

public sealed record ValidationResult(bool IsValid, string? Message)
{
public static ValidationResult Success() => new(true, null);
public static ValidationResult Fail(string message) => new(false, message);
}

示例:遍历和统计

public static int CountOverdueTodos(IEnumerable<TodoItem> todos, DateOnly today)
{
var count = 0;

foreach (var todo in todos)
{
if (!todo.IsCompleted && todo.DueDate < today)
{
count++;
}
}

return count;
}

public sealed record TodoItem(string Title, bool IsCompleted, DateOnly DueDate);

重点难点

  • 条件判断要先处理非法输入,再处理正常路径。
  • 方法名应表达业务含义,而不是实现细节。
  • 循环中修改集合要谨慎,可能导致枚举异常或跳过元素。
  • var 不是动态类型,变量类型仍由编译器确定。

常见误区

误区推荐做法
把所有逻辑写在 Main 或路由中提取方法并命名业务意图
条件嵌套过深优先使用早返回减少缩进
忽略空字符串和边界长度先定义输入规则,再写判断

练习

  • 写一个方法判断任务是否逾期。
  • 写一个方法按优先级返回排序权重。
  • 把一个三层嵌套 if 改成早返回写法。

延伸阅读

  • C# 语言基础。
  • 方法参数和返回值。
  • 代码可读性和命名规范。