我创建了一个名为ClientCapsule
的类,其中包含有关客户端的数据,
这个类包含我在同一范围内创建的另一个类ClientInformation
。
我不想允许在ClientInformation
之外创建ClientCapsule
类,但我想允许ClientInformation
实例作为ClientCapsule
的成员并允许访问创建ClientInformation
实例时ClientCapsule
个成员。
这是我正在尝试做的一个例子:
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
答案 0 :(得分:3)
听起来你需要ClientInformation
成为公共类 - 只需给它一个内部构造函数,防止来自其他地方的实例化。
答案 1 :(得分:0)
由于您的公共类中有public readonly ClientInformation clientInfo;
,因此ClientInformation必须是公开的。除了其他人提到的内部构造函数之外,您还可以使用接口。
答案 2 :(得分:0)
您的clientinfo
辅助功能为public
,但clientinfo
为ClientInformation
类型变量且ClientInformation
辅助功能不是public
。
因此,ClientInformation比字段更难访问 ClientCapsule.clientInfo