可能是私有静态方法和属性等。
答案 0 :(得分:7)
访问修饰符有助于指导程序流程。它们就像交通信号 - 你不必遵守它们,在某些情况下,授权玩家可能会选择忽略它们,但你通常要尊重它们,因为它们使一切运行得更顺畅。
答案 1 :(得分:2)
私有构造函数通常与设计模式(例如Factory Method Pattern,Singleton Pattern)一起使用,以防止对象被错误地实例化。
如果您不需要访问任何实例变量,那么私有静态方法通常会更快调用(编译器不必检查对象是否为非null)。
答案 2 :(得分:2)
反射被认为是一种比平常更强大的方式来访问你的类 - 建议不对非受控代码拒绝非公开访问 - 请参阅ReflectionPermission。
没有ReflectionPermission,代码可以 使用反射只访问 公共成员的对象。代码用 ReflectionPermission和 适当的ReflectionPermissionFlag flags可以访问受保护的和 对象的私人成员。
小心
因为ReflectionPermission 可以提供对非公共类型的访问 和会员,我们建议你这样做 不授予ReflectionPermission 互联网代码,除了 ReflectionPermissionFlag.RestrictedMemberAccess 旗。 RestrictedMemberAccess允许 访问非公共成员,与 限制授予集的 非公职人员必须等于, 或者是该授权集的子集 访问非公共的代码 成员。
换句话说,如果您允许,人们只访问您的类内部 - 与首先设置访问修饰符相同,对于具有程序集引用的直接客户端。任何成员只有在您看到它时才可见。
答案 3 :(得分:0)
这种行为在Silverlight运行时中是不同的,其中基本上反射只能执行允许编译器(C#或VB)的操作。 因此,在Silverlight中,即使使用Activator.CreateInstance,也无法使用私有构造函数进行实例化。