代码之家  ›  专栏  ›  技术社区  ›  Raghav

在公共API中使用可为空的类型

  •  6
  • Raghav  · 技术社区  · 17 年前

    我有一个类似dal的方法:

    public bool GetSomeValue(int? a, int?b, int c)
    {
       //check a Stored Proc in DB and return true or false based on values of a, b and c
    }
    

    在这个方法中,我传递两个可以为空的类型,因为这些值可以为空(并在db stored proc中将其检查为空)。我不想使用幻数,所以可以传递这样的空值类型吗(从性能和体系结构灵活性的角度来看)?

    3 回复  |  直到 17 年前
        1
  •  2
  •   bernhardrusch    17 年前

    我认为这是完全有效的-我更喜欢可以为空的类型而不是魔力值。

        2
  •  1
  •   Fredrik Mörk    17 年前

    因为可以为空的类型是基类库的一部分,并且与任何特定的语言都不相关,所以我发现它是完全有效的。在公共API中,我唯一不想看到的就是特定于语言的构造。

        3
  •  0
  •   maxwellb    17 年前

    我认为,如果您可以使用collections或collections.generic对象,那么使用 Nullable<T> .

    .NET语言是强类型的,所以我认为应该使用类型化的API方法。这种类型正好是 ( Nullable<int>, Nullable<int>, int ) .

    我也同意。