決定方法是否構(gòu)成重載有以下幾個條件:
◆ 在同一個類中;
◆ 方法名相同;
◆ 參數(shù)列表不同。
在設(shè)計重載方法的時候應(yīng)該注意一下事項
1 避免隨意更改重載中的參數(shù)名稱。如果某個重載的一個參數(shù)與另一個重載的一個參數(shù)表示相同的輸入,則這兩個參數(shù)應(yīng)具有同樣的名稱。
例如,不要執(zhí)行下面的操作:
復(fù)制代碼 代碼如下:
public void Write(string message, FileStream stream){}
public void Write(string line, FileStream file,bool closeStream){}
這些重載的正確定義如下所示
復(fù)制代碼 代碼如下:
public void Write(string message, FileStream stream){}
public void Write(string message, FileStream stream,bool closeStream){}
保持重載成員參數(shù)的順序一致性。在所有重載中,同名參數(shù)的位置應(yīng)該相同。
例如,不要執(zhí)行下面的操作:
復(fù)制代碼 代碼如下:
public void Write(string message, FileStream stream){}
public void Write(FileStream stream, string message, bool closeStream){}
這些重載的正確定義如下所示:
復(fù)制代碼 代碼如下:
public void Write(string message, FileStream stream){}
public void Write(string message, FileStream stream,bool closeStream){}
以上兩種寫法結(jié)構(gòu)清晰,增強代碼的可讀性,更加適合規(guī)范。
此準(zhǔn)則有兩項約束:
如果重載采用變量參數(shù)列表,則該列表必須是最后一個參數(shù)。
如果重載采用 out 參數(shù),按照約定,這類參數(shù)應(yīng)作為最后的參數(shù)
如果需要具有擴展性,將最長的重載作為虛重載。較短的重載只應(yīng)逐步調(diào)用較長的重載。
與override重寫的區(qū)別
Override是指父類和子類之間方法的繼承關(guān)系,這些方法有著相同的名稱和參數(shù)類型。