可能重复:
Should you declare methods using overloads or optional parameters in C# 4.0?
你有一种越来越多的参数方法。问题是大多数这些参数都是可选的,因为它们只会在某些情况下影响方法,并且大多数实例都不需要调用该方法。
现在问题是我应该使用
可选参数
public object MyMethod(string param1, string param2, string optionalParam = null)
重载方法
public object MyMethod(string param1, string param2, null)
public object MyMethod(string param1, string param2, string optionalParam)
属性
欢迎提出建议
答案 0 :(得分:1)
我建议绝对是开发的方法,因为它们的TypeSafe不像参数{objects},并且随着参数数量的增加,你应该控制参数数组长度和所有那些混乱。永远不喜欢这种方法,所以我绝对是超载。 问候。
答案 1 :(得分:0)
我喜欢使用重载方法而不是可选参数,因为:
现在,关于属性的使用......我通常倾向于使用以下内容:
IMHO。
答案 2 :(得分:0)
你有多少参数?如果我开始获得很多参数,并且它们是相关的,我通常将它们包装到一个类中并将其用作该方法的单个参数。它节省了过载和复杂签名的负担。我敢肯定会有人不同意这种方法,但我发现它通常会提高代码的可读性。
答案 3 :(得分:0)
您还可以创建一个包含参数属性的类
class Params
{
public string param1 { get; set; }
public string param2 { get; set; }
}
public void MyMethod(Params param) { ....}
但是,我觉得你可能会重新考虑你的申请......(但我不知道申请的要求)
答案 4 :(得分:0)
在这种情况下,您应该使用可选参数。
如果函数的参数和/或参数类型或返回类型不同,则应使用重载。