決定方法是否構(gòu)成重載有以下幾個(gè)條件:
◆ 在同一個(gè)類中;
◆ 方法名相同;
◆ 參數(shù)列表不同。
在設(shè)計(jì)重載方法的時(shí)候應(yīng)該注意一下事項(xiàng)
1 避免隨意更改重載中的參數(shù)名稱。如果某個(gè)重載的一個(gè)參數(shù)與另一個(gè)重載的一個(gè)參數(shù)表示相同的輸入,則這兩個(gè)參數(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)清晰,增強(qiáng)代碼的可讀性,更加適合規(guī)范。
此準(zhǔn)則有兩項(xiàng)約束:
如果重載采用變量參數(shù)列表,則該列表必須是最后一個(gè)參數(shù)。
如果重載采用 out 參數(shù),按照約定,這類參數(shù)應(yīng)作為最后的參數(shù)
如果需要具有擴(kuò)展性,將最長的重載作為虛重載。較短的重載只應(yīng)逐步調(diào)用較長的重載。
與override重寫的區(qū)別
Override是指父類和子類之間方法的繼承關(guān)系,這些方法有著相同的名稱和參數(shù)類型。
您可能感興趣的文章:- 在運(yùn)行時(shí)編輯代碼的 .NET 熱重載的操作方法