c# - 在 C# 中实现好友(在 C++ 中可用)功能

标签 c# .net c++ serialization

好吧,让我们结束关于友元是否打破封装的争论,实际上尝试优雅地提出一个连贯的设计。这是一个双重功能:

1) 关于如何实现的一般问题:

  public class A 
   {
      friend class B;
   }


2)为什么我需要这个功能?我的一些类实现了 ISerializable 接口(interface)。但是,我想在 Derived 类中保护 ISerializable 方法,这样我就不会将它们暴露给客户端(以及在文档中)。但是,内部类应该能够访问它们。在 C# 中解决此问题的一般方法是什么?

注意:我使用的是当前 C++ 标准中定义的友元。

谢谢

最佳答案

C# 有internal 关键字,因此同一程序集中的其他类型可以看到标记为内部的类型。此外,您可以添加 attributes到程序集以允许程序集外部的类型查看该程序集的内部成员。

关于c# - 在 C# 中实现好友(在 C++ 中可用)功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612753/

相关文章:

c# - 我如何通过 NHibernate 关联 2 个类?

c# - List.Insert 有任何性能损失吗?

c# - 性能测试的精确时间测量

c++ - GetAsyncKeyState(VK_RETURN) 错误地评估为真

c# - 将一些 C++ 数组代码转换为 C#

c++ - 从 reinterpret_cast 获取原始 char* 值

c# - 玩家偏好保存值很慢吗?

c# - Aweber C# Api 未授权 - AccessToken key 无效

c# - 规范中是否实现了自动属性?

c++ - 使用 Clang 和 WebAssembly 导入外部符号