gpt4 book ai didi

c# - 仅当值不为空时才应用 RuleFor

转载 作者:行者123 更新时间:2023-12-03 22:56:04 25 4
gpt4 key购买 nike

根据我之前的问题,我的 Transaction 类中有一个名为 sourcenullable char

    //source isnt required but when present must be 1 character 'I' or 'M'            
RuleFor(transaction => transaction.source.ToString())
.Matches("^[IM]?$")
.When(t => t.source.Value != null);

由于 MatchesWhenchar 不可用,我正在使用 .ToString()方法但是,如果在生成新的 Transaction 对象时,源属性为 null,应用程序将因无法转换为 null 而失败源到一个字符串

如果源不是null,谁能建议ONLY运行源验证的方法?我假设我编写的 When 表达式会执行此操作,如果 source 为 null,则验证过程的这一部分将被跳过,但是它会尝试处理 ToString() 部分验证不管,因此导致错误。

最佳答案

MatchesWhen 可用于 char 数据类型。

我会建议这样的事情......

public class Transaction
{
public char? source { get; set; }
}


public class CustomerValidator : AbstractValidator<Transaction>
{
public CustomerValidator()
{
RuleFor(t => t.source)
.Must(IsValidSource);
}


private bool IsValidSource(char? source)
{
if (source == 'I' || source == 'M' || source == null)
return true;
return false;
}
}

关于c# - 仅当值不为空时才应用 RuleFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com