我有一个内部结构的类,其中包含特定于该类的数据。
但是我希望其他类能够将数据作为只读设置读取。
所以我试过了:
public class MyClass{
private Data _data;
public Data Data
{
get { return _data; } //expose the internal data as read only
}
internal struct Data
{
public int SomeData;
}
}
这给了我错误:
Inconsistent accessibility: property type
Data struct在MyClass
之外没有多大意义,因为它只与该类有关。其他一切都只是读它。
这样做的正确方法是什么?
答案 0 :(得分:2)
使您的结构不可变并将其提供给外部。像这样:
public class MyClass
{
private Data _data;
public Data DataToExpose
{
get { return _data; } //expose the internal data as read only
}
public struct Data
{
public Data(int someData)
{
this.SomeData = someData;
}
public int SomeData { get; }
}
}
现在人们可以从外面使用Data
,但它只是一个只读。引用和字段都是只读的。不管怎样,最好使结构不变。