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