亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

朋友的C#等效項是什么?

朋友的C#等效項是什么?

C#
瀟瀟雨雨 2019-10-28 10:42:44
我希望Tester類可以訪問某個類的私有成員變量,而不要將它們暴露給其他類。在C ++中,我只是將Tester類聲明為朋友,如何在C#中做到這一點?有人可以給我一個例子嗎?
查看完整描述

3 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

沒有“朋友”的直接等效項-可用的最接近(并且不是很接近)的是InternalsVisibleTo。我只用過此屬性進行測試-非常方便!


示例:放置在AssemblyInfo.cs


[assembly: InternalsVisibleTo("OtherAssembly")]


查看完整回答
反對 回復 2019-10-28
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

壁櫥的等效項是創建一個嵌套類,該類將能夠訪問外部類的私有成員。像這樣:


class Outer

{

    class Inner

    {

       // This class can access Outer's private members

    }

}

或者,如果您希望將Inner類放在另一個文件中:


Outer.cs

partial class Outer

{

}



Inner.cs

partial class Outer

{

    class Inner

    {

       // This class can access Outer's private members

    }

}


查看完整回答
反對 回復 2019-10-28
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

采取非常常見的模式。類工廠制作小部件。Factory類需要對內部進行處理,因為它是Factory。兩者都在同一個文件中實現,并且根據設計,需求和性質,它們是緊密耦合的類-實際上,Widget實際上只是工廠的一種輸出類型。

在C ++中,將Factory設為Widget類的朋友。

在C#中,我們能做什么?我想到的唯一體面的解決方案是發明一個接口IWidget,該接口僅公開公共方法,并具有Factory返回的IWidget接口。

這涉及大量的乏味-再次在界面中暴露所有自然的公共屬性。


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 350 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號