3 回答
TA贡献1830条经验 获得超3个赞
没有“朋友”的直接等效项-可用的最接近(并且不是很接近)的是InternalsVisibleTo。我只用过此属性进行测试-非常方便!
示例:放置在AssemblyInfo.cs
[assembly: InternalsVisibleTo("OtherAssembly")]
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
}
}
TA贡献1793条经验 获得超6个赞
采取非常常见的模式。类工厂制作小部件。Factory类需要对内部进行处理,因为它是Factory。两者都在同一个文件中实现,并且根据设计,需求和性质,它们是紧密耦合的类-实际上,Widget实际上只是工厂的一种输出类型。
在C ++中,将Factory设为Widget类的朋友。
在C#中,我们能做什么?我想到的唯一体面的解决方案是发明一个接口IWidget,该接口仅公开公共方法,并具有Factory返回的IWidget接口。
这涉及大量的乏味-再次在界面中暴露所有自然的公共属性。
- 3 回答
- 0 关注
- 326 浏览
添加回答
举报