Unity中如何只让特定类访问某类

我想要实现的是禁止SomeRandom类访问被保护的类。

public class CertainClass {
    public void CerFunc(){
        ProtectedClass.ProtectedFunction();
    }
}
public class ProtectedClass {
    public static void ProtectedFunction(){
        Debug.Log("Protected");
    }
}
public class SomeRandomClass {
    public void RandFunc(){
        ProtectedClass.ProtectedFunction(); // innaccessible due to protection level
    }
}

为了实现这一点我应该怎么做呢?PS:最好是静态。

原问题:how to make that only certain class can access a class

阅读 4k
1 个回答

回答:
Rohit Vats
把CertainClass作为私有嵌套类:

public class CertainClass
{
    private class ProtectedClass
    {
        public static void ProtectedFunction()
        {
            Debug.Log("Protected");
        }
    }
    public void CerFunc()
    {
        ProtectedClass.ProtectedFunction();
    }
}

补充:
如果还想有另一个CertainClass2 被保护的 ProtectedClass 成员。就把 CertainClass2也作为 CertainClass的公共嵌套类。
或者
我建议移动ProtectedClass和想要到另一个程序集里访问它的其他类,把ProtectedClass作为内部的,这样那个程序集中的所有类就可以访问这个类,在程序集之外,它对其他类来说是不可见的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进