私は私のクラスに構造があるとします。クラスのみクラス外で読み込まれ、変数とフルアクセス
class MyClass
{
public struct MyStruct_t
{
public int someValue1;
public int someValue2;
}
public MyStruct_t MyStruct;
public InitStructure()
{
MyStruct.someValue1 = 1;
MyStruct.someValue2 = 1;
}
}
私はこの構造は唯一の唯一の外部から読み込まれ、クラス内読み取り/書き込みされます欲しいです。このように:
MyClass cls = new MyClass();
cls.InitStructure();
int value = cls.MyStruct.someValue1;
cls.MyStruct.someValue2 = value; // here must be an error
私はそれがC++でfriend
キーワードのようなものでなければなりませんね。どうやってやるの?
実際には: 'cls.MyStruct.someValue2 = value; //ここにはエラーがあります.'エラーが発生するはずです。 [this](http://stackoverflow.com/questions/1747654/cannot-modify-the-return-value-error-c-sharp)をご覧ください –
ありがとう、@MongZhu。私は構造が価値によって戻ってくるのであって、参照によってではないことには驚きました。片側から私の問題を解決します。別のサイズから、メンバーにアクセスする必要があるたびに構造体をコピーするのはあまり良いことではありません。私はまだC++の観点から考えているからです。:) – folibis
間違いなく、まずC++の考え方から抜け出すことです。 C++では、 'struct'と' class'はデフォルトのアクセシビリティを除いて実質的に同じです(私が知っている限り)。 C#でプログラミングしようとするなら、それぞれの状況でどちらを使うのかを決定する前に、まずここで 'struct'と' class'が意味するものとそれらの違いを理解してください。 –