【问题标题】:how to make that only certain class can access a class如何使只有特定的类可以访问一个类
【发布时间】:2014-02-08 19:59:33
【问题描述】:

我想要做的是禁止 SomeRandom 类访问 Protected 类

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
    }
}

我必须改变什么才能让它发挥作用?

最好是静态的,因为我只需要并且想要它 1。

【问题讨论】:

    标签: c# unity3d permissions


    【解决方案1】:

    使它成为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 设为 internal 以便该程序集中的所有类都可以访问它类,并且对于此程序集之外的其他类是不可见的。

    【讨论】:

    • 谢谢,我该如何让它 2 特定类可以访问它,但不能访问其他随机类?
    • 请查看您上述评论的答案更新。
    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 2018-05-20
    • 2010-12-28
    • 2014-10-06
    • 2016-08-09
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    相关资源
    最近更新 更多