简体   繁体   English

方法没有重载,需要0参数?

[英]No overload for method, takes 0 arguments?

I have: 我有:

 public static int[] ArrayWorkings()

I can call it happily with MyClass.ArrayWorkings() from anywhere. 我可以从任何地方使用MyClass.ArrayWorkings()快乐地调用它。 But I want to build in some extra functionality by requiring a parameter such as: 但我希望通过需要一个参数来构建一些额外的功能,例如:

 public static int[] ArrayWorkings(int variable)

I get the error No overload for method ArrayWorkings, takes 0 arguments. 我得到错误没有重载的方法ArrayWorkings,需要0参数。 Why is this? 为什么是这样?

You changed the function to require one parameter... so now all of your old function calls, which passed no parameters, are invalid. 您将函数更改为需要一个参数...所以现在所有未传递参数的旧函数调用都是无效的。

Is this parameter absolutely necessary, or is it a default value? 这个参数绝对必要,还是默认值? if it is a default then use a default parameter or an overload: 如果它是默认值,则使用默认参数或重载:

//`variable` will be 0 if called with no parameters
public static int[] ArrayWorkings(int variable=0)  

// pre-C# 4.0
public static int[] ArrayWorkings()
{
    ArrayWorkings(0);
}

public static int[] ArrayWorkings(int variable)
{
    // do stuff
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM