3

验证用户输入的正确方法是什么(如果有的话......)

这个(首先抛出异常):

private void DisposeWorkFlowItem(WorkFlowItem item)
{
    if (item == null)
    {
        throw new ArgumentException("work flow item must have value");
    }
    //TO DO: add a call to delete the task from worker service.
    _workFlowItems.Remove(item);
    _workFlowItemsStore.Delete(item);
}

或者这个(首先做动作):

private void DisposeWorkFlowItem(WorkFlowItem item)
{
    if (item != null)
    {
        //TO DO: add a call to delete the task from worker service.
        _workFlowItems.Remove(item);
        _workFlowItemsStore.Delete(item);
    }
    else
    {
        throw new ArgumentException("work flow item must have value");
    }
}

有什么指导方针吗?

4

3 回答 3

6

没有真正的指导方针或规则,但通常首选第一个,因为您可以删除else, 删除一级缩进。

private void DisposeWorkFlowItem(WorkFlowItem item)
{
    if (item == null)
    {
        throw new ArgumentException("work flow item must have value");
    }

    //TO DO: add a call to delete the task from worker service.
    _workFlowItems.Remove(item);
    _workFlowItemsStore.Delete(item);
}

更少的缩进使代码更容易理解,尤其是在具有多个此类检查的场景中。

哦,当你检查一个参数时,null通常会抛出一个ArgumentNullException参数名称作为第一个参数:

throw new ArgumentNullException("item");
于 2013-07-29T11:22:39.143 回答
2

就像评论员说的那样,我会这样做:

private void DisposeWorkFlowItem(WorkFlowItem item)
{
    if (item == null)
    {
        throw new ArgumentException("work flow item must have value");
    }

        //TO DO: add a call to delete the task from worker service.
        _workFlowItems.Remove(item);
        _workFlowItemsStore.Delete(item);

}

首先进行验证通常是我的偏好。您需要检查正确性或状态或参数。

于 2013-07-29T11:23:42.390 回答
1

这对我来说完全一样,据我所知,这没有任何指导方针。

为了可读性,我建议将概念放在首位。

例如

if (...) throw new Exception();

do your thing
于 2013-07-29T11:22:50.540 回答