根据命令路由契约审查这个生成的 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"
};
}
}
生成代码仅作示例,不代表任何特定模型