了解 C# 對介面實作中靜態方法的限制
由於幾個關鍵原因,C# 禁止在介面實作中包含靜態方法。
語意不一致:介面定義物件行為。 獨立於特定實例運行的靜態方法與此基本原則相矛盾。 介面描述單一物件的功能,而不是共享功能。
契約完整性:介面充當類別的契約。 排除靜態方法可確保此契約一致地應用於實作類別的所有實例,而不是一般的靜態抽象。
範例:Animal
和 Person
提供的範例示範了 Animal
和 Person
如何以不同的方式實作 ScreenName
方法:
Animal
: 靜態 ScreenName
方法將表示所有動物物件的通用名稱。 Person
: 實例方法將允許每個 person 物件使用唯一的名稱。 替代方法可以在不損害介面契約的情況下達到預期的結果。例如:
Animal
具有常數屬性: 在 Animal
類別中定義常數屬性,並從 ScreenName()
傳回其值,保留靜態命名,同時遵守介面規則。 總結:
C# 對介面實作中靜態方法的限制維護了介面作為各個物件的契約的語意完整性。這確保了所有實作類別的行為一致。
以上是為什麼 C# 介面不能有靜態方法實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!