将简单函数包装在包装器中是一种好习惯吗?

Edw*_*rdo 1 c#

我正在进行代码审查,我注意到开发人员已经这样做了:

UserSession.LocationId = CheckInteger(elementValue);
Run Code Online (Sandbox Code Playgroud)

用这个包装器

    private int CheckInteger(string elementValue)
    {
        int outNumber;
        int.TryParse(elementValue, out outNumber);
        return outNumber;
    }
Run Code Online (Sandbox Code Playgroud)

我看不出这给党带来了很大的影响.我应该推回去,还是只是让睡觉的狗躺着?我认为没有任何特定的公司政策可以涵盖这一点.

Pan*_*vos 9

他们是睡觉的狗还是狼?此代码有效地丢弃非整数值,并为失败的情况返回0.

这可能适用也可能不合适,但名称肯定会产生误导 - 根本不会进行检查.简单地丢弃错误.它几乎等同于隐藏异常.

可以在不检测无效值1和0是在意想不到的地方设置伤害你.

这样的方法至少应该被重命名,GetIntegerOrDefault因此明确它会在出错时返回默认值.

您还应确保0是LocationId的有效值或至少是预期的默认值.否则,您可能会遇到一些非常难以诊断的错误.

我在证券交易所申请中遇到了一些错误,这些错误发送的投资组合业绩比率为-100%,因为有人提出了10个等级,因为无效的汇率值会导致0回报,5年之后没有人记得.