基本的に 3 つのプロパティのペアである 6 つのプロパティを持つクラスがあり、各ペアには 1 つのことに関するデータが含まれていました。これらのプロパティはすべて公開されていましたが、設定は保護されていました。以下のコードに示します。
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; }
}
プロパティの各ペアは基本的に 1 つの項目として扱われるため、次のような構造体を作成することにしました。
struct Item
{
Data1Type Data1;
Data2Type Data2;
}
そこで、プロパティの各ペアを 1 つの構造体に置き換えましItem
た。
私が今直面している問題は、3 組のプロパティで、以前と同じ保護レベルを持つ方法が見つからないことです。MyClass
外部のすべてが構造体内のプロパティを取得できるようにしたいのですが、構造体内のプロパティを変更できるのは、構造体から派生したクラスItem
だけです。MyClass
Item
どうすればそのようなことができますか?それは可能ですか?