【问题标题】:overloading function IN ASP.NET C#ASP.NET C#中的重载函数
【发布时间】:2016-03-16 02:49:22
【问题描述】:

我有一个包含 7 个参数的函数名称“Fill”。当我用 7 个参数调用“填充”时没问题,但是当我只调用 5 或 6 个参数时它会出错(方法“填充”没有重载需要 ..arguments)。我需要多次调用这个函数。

private void Fill(string val1,string val2,string val3, string val4, string val5, string val6,string val7)
{ 
      //code 
} 
protected void Add1_Click(object sender, EventArgs e) 
{ 
      --------- 
      Fill("val1","val2","val3","val4","val5","val6","val7") 
} 
protected void Add2_Click(object sender, EventArgs e) 
{ 
      --------- 
      Fill("val1","val2","val3","val4","val5","val6") 
} 

【问题讨论】:

  • 请提供一些代码!
  • private void Fill(string val1,string val2,string val3, string val4, string val5, string val6,string val7){ //code } protected void Add1_Click(object sender, EventArgs e) { - -------- Fill("val1","val2","val3","val4","val5","val6","val7") } protected void Add2_Click(object sender, EventArgs e) { --------- 填充("val1","val2","val3","val4","val5","val6") }
  • 要么添加一些默认值,要么也使其他函数也具有更少的参数......
  • 我建议先阅读一下方法的重载!
  • 感谢您的推荐。

标签: asp.net function overloading


【解决方案1】:

一种选择是将参数数组而不是单个参数传递给函数。例如:

private void Fill(params string[] values) 
{
    // Code
}

然后您可以使用所需的任意数量的参数调用它:

Fill("val1");
Fill("val1", "val2", "val3");
Fill("val1","val2","val3","val4","val5","val6","val7");

【讨论】:

    【解决方案2】:

    您可以通过创建另一个具有相同名称但参数不同的方法来重载该方法。示例

    public int Add(int a, int b, int c)
    
    public int Add(int a, int b)
    
    public int Add(int a, int b, int c, int d)
    

    或者,您可以使用默认值:

    public int Add(int a, int b=9, int c=10)

    【讨论】:

    • 我必须创建另一个同名的函数吗?无论如何我只能使用一个功能?
    • 是的,您可能希望使用最后一个示例,其中所有参数(或参数列表末尾的任意数量)都将默认为零长度字符串 - " "。
    猜你喜欢
    • 2011-02-10
    • 2011-12-31
    • 2022-12-22
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多