Rir*_*979 12 c# oop class-design friend-class
给定包含原始数据集的类A和包含该数据的重新组织版本(GUI就绪)的类B,我想使A中的原始数据在B中可见.
显然,A类中的原始数据包含在私有成员中.我想通过使用类似于C++的朋友类方法的东西,在B中看到这些数据.
我怎么处理这个?
谢谢.
Ada*_*son 10
严格地说,您无法定义可以向其公开数据的特定类(或类列表).但是,您可以使用internal访问修饰符而不是private,这使成员可用于同一程序集中的任何类.
话虽这么说,你应该强烈考虑通过属性而不是字段来暴露这些成员(这就是我猜你正计划暴露的东西).这样做将允许类确切地定义如何将信息暴露给其他类,以及当另一个类更改数据时应该发生什么(如果有的话).
可能这可能对你有帮助..
public class A
{
public A() { }
public string AccessData(object accessor)
{
if (accessor is B)
return "private_data";
else
throw new UnauthorizedAccessException();
}
}
public class B
{
public B() { }
private void AccessDataFromA()
{
Console.WriteLine(new A().AccessData(this));
}
}
Run Code Online (Sandbox Code Playgroud)