首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类访问修饰符-内部

类访问修饰符-内部
EN

Stack Overflow用户
提问于 2017-01-26 22:02:12
回答 3查看 161关注 0票数 0

我已经创建了一个名为ClientCapsule的类,它包含关于客户机的数据,这个类包含我在同一个作用域中创建的名为ClientInformation的另一个类。

我不想允许在ClientInformation之外创建ClientCapsule类,但是我希望允许ClientInformation实例作为ClientCapsule的成员,并允许在创建ClientCapsule实例时访问ClientInformation成员。

下面是我试图做的事情的一个例子:

代码语言:javascript
复制
namespace AdminServer
{
    public enum ClientOperation
    {
        Subscribe,
        GetTables
    }

    [Serializable]
    internal class ClientInformation
    {

    }

    [Serializable]
    public class ClientCapsule
    {


        public readonly IPHostEntry clientMetaData;

        public readonly ClientOperation clientRequestedOperation;

        public readonly ClientInformation clientInfo;
    }
}

所以我无法在这个范围外完成:ClientInformation object = new ClientInformation()

但我可以做到:ClientCapsule object = new ClientCapsule(),object.ClientInformation.members;

但我发现了一个错误:

不一致的可访问性字段类型ClientInformation比字段ClientCapsule.clientInfo更难访问。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-26 22:03:59

听起来,您需要ClientInformation作为一个公共类--只需给它一个内部构造函数,防止从其他地方实例化。

票数 3
EN

Stack Overflow用户

发布于 2017-01-26 22:05:27

因为在您的公共类中有:public readonly ClientInformation clientInfo;,所以ClientInformation必须是公共的。除了其他人提到的有内部构造函数之外,您还可以使用接口。

票数 0
EN

Stack Overflow用户

发布于 2017-01-26 22:06:48

您的clientinfo可访问性是public,但是clientinfoClientInformation类型变量,而ClientInformation可访问性不是public

因此,ClientInformation比字段ClientCapsule.clientInfo更难访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41883770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档