【问题标题】:No overload for method, takes 0 arguments?方法没有重载,需要 0 个参数?
【发布时间】:2012-06-27 00:10:31
【问题描述】:

我有:

 public static int[] ArrayWorkings()

我可以在任何地方用 MyClass.ArrayWorkings() 愉快地调用它。但我想通过需要一个参数来构建一些额外的功能,例如:

 public static int[] ArrayWorkings(int variable)

我收到错误 ArrayWorkings 方法没有重载,需要 0 个参数。这是为什么呢?

【问题讨论】:

  • "...通过需要一个参数..."
  • 您已向该方法添加了一个参数,现在您需要为其提供一个值。编译器告诉您该参数是必需的,就像您希望的那样,除非我误解了
  • 我认为错误来自方法行而不是它被调用的地方,从来没有检查过愚蠢的浪费你的时间对不起。
  • 没问题:) 有时只需要另一双眼睛。
  • 不能说我同意关闭的理由或反对票。仅仅因为问题看起来微不足道并不会使问题无效。

标签: c#


【解决方案1】:

您将函数更改为需要一个参数...所以现在所有不传递参数的旧函数调用都无效。

这个参数是绝对必要的,还是默认值?如果是默认值,则使用默认参数或重载:

//`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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多