我意识到这可能是一个相当简单的问题.不过,这给了我麻烦.
我想创建一个方法,用户只需要提供许多参数之一.我认为这样做的方法是使用默认参数.但是,在过去,当我写这些时,我总是遇到以下问题:
如果我有一个方法:
public void methodName (int a = 1, int b = 2, int c = 3) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果没有为a和b提供默认值,那么想要仅使用参数c的方法的人如何使用该方法?
我的意思是,如果用户调用这样的方法:
methodName(8)
Run Code Online (Sandbox Code Playgroud)
编译器会理解a = 8.看起来用户被迫提供参数,即使它们是默认值,如下所示:
methodName(1, 2, 8)
Run Code Online (Sandbox Code Playgroud)
现在,显然对于这个简单的例子我可以创建一个这样的方法:
public void methodName(List<int>) {
}
Run Code Online (Sandbox Code Playgroud)
然后用户只能提供列表中的第三个值.
如果我有很多类型的参数,我该怎么办?
提前致谢.
你正在寻找一个命名参数1.为了坚持你的例子,开发人员会打电话:
methodName(c: 8);
Run Code Online (Sandbox Code Playgroud)
1:命名和可选参数
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |