【问题标题】:Is implicitly using null argument as a flag good code style隐式使用 null 参数作为标志良好的代码样式
【发布时间】:2015-09-03 18:26:24
【问题描述】:

以下哪种编码风格更好,为什么? 1)

public string GetValue(string setting, string error)
{
    var val = GetSettingFromSomewhere(setting);
    if (val==null && string.IsNullOrEmpty(error)) throw Exception(error);
    return val;
}

或者 2)

public string GetValue(string setting, bool isRequired, string error)
{
    var val = GetSettingFromSomewhere(setting);
    if (val==null && isRequired) throw Exception(error);
    return val;
}

【问题讨论】:

  • 不要创建不必要的实体。传递 null 在语义上有意义吗?如果没有矛盾,就没有理由传递另一个变量。此外,这个书面问题也引发了固执己见的答案,这是不可以的。
  • 一种可能性:将error 重命名为errorIfMissing 以明确该参数具有指示该参数是否必需的双重目的。

标签: c# coding-style


【解决方案1】:

IsNullOrEmpty 函数是 Light 并且它返回一个布尔值,所以我猜对于这种情况,特别是它并不重要。重要的是您认为您的函数对于可能使用该函数的人来说更具可读性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-12-22
    • 2019-12-03
    • 2016-01-17
    相关资源
    最近更新 更多