由于使一个类型为nullable本质上使变量“可选”,我想知道何时在方法参数中使用可空类型是合适的,以便在使用重载时使它们成为可选的?
答案 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)
我创建了一些与数据库交互的方法,在这种方法中,使用可空类型更容易。如果您有一个传递参数的存储过程,例如,如果您有两个重载版本的插入方法,则代码看起来几乎相同。使用可空类型可以避免重载过载。
编辑:如果您更喜欢使用重载并且仍然不想重复代码,那么您还可以使用内部函数执行工作并将重载用于公共方法。