9225


値型のプロパティの参照だけを配列にしたものがほしいと思っています。

以下の様な感じでプロパティ内の値を書き換えたいのですが、なにか良い案が有りましたらご教授下さい。  
インデクサはできれば使いたくありません。

[code]

    var a = new A();
    // ↓ 本来はNum1, Num2, Num3を書き換えたい
    for(var i=0; i < 3; i++){
        a.NumArray[i] = i;
    }
    // ↓ 本来はStr1, Str2, Str3を書き換えたい
    for(var i=0; i < 3; i++){
        a.StrArray [i] = i.ToString();
    }
    
    class A {
        public A(){
            // これでは値が入ってしまう
            NumArray = new []{Num1, Num2, Num3};
            StrArray = new []{Str1, Str2, Str3};
        }        
    
        public int[] NumArray;
        public String[] StrArray;
    
        public int Num1 { get; set; }
        public int Num2 { get; set; }
        public int Num3 { get; set; }
    
        public String Str1 { get; set; }
        public String Str2 { get; set; }
        public String Str3 { get; set; }
    }
    
[/code]


CC BY-SA 3.0
2015-04-16T06:29:00.000
9223
2015-04-16T06:44:52.837
9331
question
c#
値型の参照の配列が作りたい


配列が値の実体を持ち、プロパティ側から配列要素にアクセスすると希望通りのコードが書けます。

[code]

    class A {
        public A(){
            NumArray = new int[3];
            StrArray = new String[3];
        }
    
        public int[] NumArray;
        public String[] StrArray;
    
        public int Num1 { get { return NumArray[0]; } set { NumArray[0] = value; } }
        public int Num2 { get { return NumArray[1]; } set { NumArray[1] = value; } }
        public int Num3 { get { return NumArray[2]; } set { NumArray[2] = value; } }
    
        public String Str1 { get { return StrArray[0]; } set { StrArray[0] = value; } }
        public String Str2 { get { return StrArray[1]; } set { StrArray[1] = value; } }
        public String Str3 { get { return StrArray[2]; } set { StrArray[2] = value; } }
    }
    
[/code]


CC BY-SA 3.0
2015-04-16T06:44:52.837
9225
2015-04-16T06:44:52.837
8870
9223
answer