我有一个有 6 个属性的类,它们基本上是 3 对属性,每对包含关于一件事的数据。所有这些属性都是公开的,但设置它们是受保护的。它显示在下面的代码中:
public class MyClass
{
public Data1Type Item1Data1 { get; protected set; }
public Data2Type Item1Data2 { get; protected set; }
public Data1Type Item2Data1 { get; protected set; }
public Data2Type Item2Data2 { get; protected set; }
public Data1Type Item3Data1 { get; protected set; }
public Data2Type Item3Data2 { get; protected set; }
}
因为每一对属性基本上都被视为一个项目,所以我决定制作一个如下所示的结构:
struct Item
{
Data1Type Data1;
Data2Type Data2;
}
Item
所以我用一个结构替换了每一对属性。
我现在面临的问题是,我无法找到一种方法来获得与以前相同的保护级别,并具有 3 对属性。我希望外部MyClass
的所有内容都能够获取Item
结构内部的属性,但只有MyClass
从它派生的类才能更改Item
结构内部的属性。
我怎么能做这样的事情?甚至可能吗?