【发布时间】:2020-02-26 21:29:16
【问题描述】:
我目前有一个验证类,其中包含一个验证字符串不为空的方法(并记录信息,但这不是这里关心的问题)
protected void ValidateStringNotEmpty(string propertyName, string value)
{
if (string.IsNullOrWhiteSpace(value))
{
ValidationErrors.Add($"Property [{propertyName}] must be filled");
}
}
使用
调用ValidateStringNotEmpty(nameof(Name), Name);
是否有一种简单(且经过优化)的方法来避免传递第一个参数 nameof(property) 的需要?
我看到了使用堆栈跟踪来跟踪回调的解决方案,但这似乎不是一个很好的解决方案...
编辑:我真正想做的是看看是否存在这样做(消除传递参数名称的需要)。我知道务实的解决方案是我已经使用的解决方案,这不是问题。
【问题讨论】:
-
这能回答你的问题吗? ArgumentNullException - how to simplify?
-
这是他们要问的问题吗?
-
您可以将表达式树与 lambda 表达式一起使用,但它们很脆弱,而且一点也不“容易”。
-
@OrelEraki 我想接受的答案可能有效,但似乎有点矫枉过正(我只是想只需要传递 1 个参数,这个解决方案似乎很重!)