我有一个这样的课程
internal class Report
{
public Company TargetCompany { get; private set; }
.... // other stuff
}
我不希望任何人能够做到这一点
Report r = GetReport();
Company c = r.TargetCompany;
但总是使用
r.TargetCompany
当他们想要访问公司变量时。
这可能吗?这甚至有意义吗?
答案 0 :(得分:4)
不,这是不可能的。
不,它也没有意义。也许如果你解释一下你的推理,我们会更好理解。
答案 1 :(得分:4)
不,那是不可能的。您可以做的最接近的事情是提供包装器以仅允许访问TargetCompany中的成员(不是公司引用本身),或者返回内部TargetCompany成员的副本,防止内部的成员被引用(没有真正的值)。
答案 2 :(得分:3)
您可以在报表中公开代理接口,该接口在公司中调用等效接口,并将公司设为私有,以便您完全控制(封装甚至)对Company对象的访问。