审查生成的命令路由器

来自 模式匹配
C# 14 / .NET 10 高级 8分钟 找出 4处问题

根据命令路由契约审查这个生成的 switch。

拒绝 null 命令;退款金额必须为正;管理命令只能使用受信任的方法参数授权;普通命令必须带非空用户 ID;未知输入必须明确拒绝。

csharp
using System;

public sealed record Command(
    string Name,
    string? UserId,
    decimal Amount,
    bool IsAdmin);

public static class CommandRouter
{
    public static string Route(Command command, bool isAuthorizedAdmin)
    {
        ArgumentNullException.ThrowIfNull(command);

        return command switch
        {
            { Name: "refund", Amount: >= 0m } => "refund",
            { Name: "admin", IsAdmin: true } => "admin",
            { UserId: not null } => "user",
            _ => "ignored"
        };
    }
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误