“可选”参数,何时过载以及何时使用可空类型?

时间:2010-01-09 20:35:17

标签: c#

由于使一个类型为nullable本质上使变量“可选”,我想知道何时在方法参数中使用可空类型是合适的,以便在使用重载时使它们成为可选的?

3 个答案:

答案 0 :(得分:5)

我不会 - 你最终会得到很多null, null, null。在C#4.0中,您有可选参数和命名参数;再等几个月考虑使用它们。在此之前,重载或传递代表args的对象:

SearchOptions options = new SearchOptions {
     Key = 123, Name = "abc"
     // but 27 other properties we **haven't** set
}
Search(options);

答案 1 :(得分:3)

您仍然必须明确包含null作为参数,因此它不是真正可选的。这很烦人,重载是迄今为止最好的方法。

答案 2 :(得分:1)

我创建了一些与数据库交互的方法,在这种方法中,使用可空类型更容易。如果您有一个传递参数的存储过程,例如,如果您有两个重载版本的插入方法,则代码看起来几乎相同。使用可空类型可以避免重载过载。

编辑:如果您更喜欢使用重载并且仍然不想重复代码,那么您还可以使用内部函数执行工作并将重载用于公共方法。