簡體   English   中英

為什么我不能在接口中聲明公共方法?

[英]Why can't I declare a public method in an interface?

為什么編譯器不像我那樣在類接口中聲明一個公共方法(這導致了我在這里得到的錯誤.NET Class Interface, Inheritance and Library: error does not implement interface member )。

是因為語法還是因為一些更基本的東西?

好的,它是隱含的,但為什么讓它明確會受到傷害?

接口是一個契約,在任何可以訪問接口的地方,您都應該能夠訪問其中的所有方法。 換句話說,接口中聲明的所有方法都應該是公共的,因此明確說明它是沒有意義的。

接口方法是隱式公開的,因此將它們聲明為公開是多余的。

由於 C# 8 事情有點不同。 現在允許使用public修飾符。 我建議閱讀這篇文章

看一下這個

以為是常量,我想這就是語言設計者在想為什么不允許在接口中使用 Public 的原因。

您不能在接口中使用任何訪問修飾符(例如私有、部分)。 這是因為標記方法的可訪問性是實現類的責任。 它保持接口的單一目的,即定義類的簽名,而不是定義其訪問限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM