2016-03-16 108 views
-4

我有一個包含7個參數的函數名稱「Fill」。當我使用7個參數調用「Fill」時,它是可以的,但是當我只調用5或6個參數時,它會出錯(對於方法「Fill」來說,沒有重載需要..參數)。我需要多次調用這個函數。ASP.NET C#中的重載函數#

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") 
} 
+0

一些代碼,請! – Aristos

+0

私人空隙填充(串VAL1,串val2的,串VAL3,串VAL4,串val5,串VAL6,串val7){// 代碼 } 保護無效Add1_Click(對象發件人,EventArgs的) { - -------- 填充( 「VAL1」, 「val2的」, 「VAL3」, 「VAL4」, 「val5」, 「VAL6」, 「val7」) } 保護無效Add2_Click(對象EventArgs e) { --------- 填充(「val1」,「val2」,「val3」,「val4」,「val5」,「val6」) } –

+0

要麼添加一些默認值,也可以是m使用更少的參數,以及其他功能... – Aristos

回答

1

一個選項是一個參數數組傳遞到函數而不是單個參數。例如:

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

您可以再與任意數量的參數調用它,你需要:

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

您可以通過創建具有相同名稱的另一個方法重載的方法,但是不同的參數。實施例

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) 

或者,也可以使用默認值:

公衆詮釋添加(INT A,INT B = 9,INT C = 10)

+0

我是否必須創建具有相同名稱的另一個功能?無論如何,我只能使用一個功能? –

+0

是的,您可能想要使用最後一個示例,其中您的所有參數(或參數列表末尾的多個參數)都是默認的零長度字符串 - 「」。 –