gpt4 book ai didi

c# - 验证公共(public)方法参数

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:30 24 4
gpt4 key购买 nike

当这些方法重载/调用其他公共(public)方法时,我不确定如何正确处理公共(public)方法中的参数验证。

例如:

class Example
{
public bool Has(string key)
{
if (key == null)
throw new ArgumentNullException(nameof(key));

return false;
}

public object Get(string key)
{
// Should I check if key is null here?
if (!Has(key))
throw new ArgumentException("No key exists", nameof(key));

return null;
}
}

这显然是一个简单的例子,但是处理这个问题的首选方法是什么,特别是考虑到可能最终调用几个公开可见的方法的多个参数?

我应该在每个单独的方法上抛出异常/验证参数(这会导致大量重复/多次检查相同的条件)还是可以将检查委托(delegate)给其他方法(在这个例子中让'Has'方法检查 key 是否有效,不要在“获取”方法中这样做)。

最佳答案

您不需要对每个方法都抛出异常。在您的“Has”方法上抛出的异常将传播到堆栈中的“Get”方法,因此如果您在一个点处理验证就没问题。但是,我建议您检查抛出异常是否是满足您需求的最佳方法,或者您是否可以用其他方式处理它。

关于c# - 验证公共(public)方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34646176/

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