簡體   English   中英

Java2C#translation:C#中接口的公共方法

[英]Java2C# translation: public methods in Interfaces in C#

另一個翻譯問題,這可能更具理論性,但我對設計選擇感到好奇。 SFNQ:

為什么C#不允許控制訪問Java等接口中的方法? 例如,在C#界面中:

   public void Visit(Axiom axiom);

謝謝。

在C#和.Net中,默認情況下,接口上的所有方法都是公共的。 沒有辦法限制他們的訪問權限。

考慮替代方案,在接口上擁有受保護的成員意味着什么? 您如何建立訪問規則以允許或禁止接口的調用者訪問特定方法? (我的意思是在C#意義上保護,而不是java)。

更好的是,私人意味着什么?

在C#和Java中,接口上的所有方法都是公共的。

在Java中,允許使用public關鍵字,可能會節省解析規則。 在C#中,public關鍵字被認為是冗余的,並且完全從接口聲明中刪除。

在C#中,接口的所有成員都必須是公共的,因此它不允許您向成員聲明添加任何可見性修飾符。 因此,public關鍵字是多余的而不需要(事實上,如果包含它,則會出現編譯器錯誤)。

接口是一個合同,聲明您將提供接口定義中指定的所有功能。 如果您被允許在界面中擁有私人成員,則您不會暴露該功能(因此您將違反合同)。

暫無
暫無

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

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