投稿者 tecc  (社会人) 投稿日時 2010/3/16 18:50:10
C# インデクサと配列について
.NET暦は入門者~初心者レベルです。宜しく御願いします。

まず、テキストボックスを継承したクラス。カスタムテキストボックスクラスを
作成しました。

このクラスにネクストコントロールを実装したく思っていますがどうにもインデクサの
部分の理解が足りないので教えて下さい。

dobon.net/vb/dotnet/beginner/defaultproperty.html
//デリゲート
KeyPress +=new KeyPressEventHandler(CustmTextBox_NextControl_KeyPress);

#region Enterキーや矢印によるコントロールの移動

        [Category("コントロールの移動用キー"),
        Description("keycodeを[]で囲い入力して下さい。),
        DefaultValue("")]
        private Keys [] nextcontrolkeys;
        public static int KeysCapacity; //テスト用static
//インデクサ
        public Keys this[int index]
        {
            get { return nextcontrolkeys[index]; }
            set
            { 
                nextcontrolkeys[index] = value; 
            }
        }
        private void  CustmTextBox_NextControl_KeyPress(object sender, KeyPressEventArgs e)
        {
          throw new NotImplementedException();
        }
#endregion


まず最初に、nextcontrolkeysをどこでインスタンスを生成すれば良いのでしょうか?
URLを参考にした場合は、クラスのコンストラクタで行っていますが・・。
実際にはこのような機能を実装する場合にはコンストラクタで配列の添え字でNewは行わないのでわ?
と思った為にこのような疑問が生じました。

それとも汎用性を無くし事前に添え字の最大値を決めておくのが最適なのでしょうか?