これが可能かどうか、誰かが私にアドバイスしてもらえますか。XNA フレームワークの GameState に関する Microsoft のコード サンプルを見ています。クラスの 1 つで、「Public ReadOnly」配列データ メンバーを使用します。オブジェクト指向を促進する慣行ではありませんが、それは何も悪いことではありません。
クラスは後でコンストラクター内でインスタンス化しますが、これまでのところ非常に優れており、MSDN にも記載されています。
問題: クラスは後でクラス メソッド内の配列を反復処理し、配列内のデータを変更します。私はMSDNを見て、それをグーグルで検索しましたが、どこを見ても、エラーが発生するというフラットアウトと表示されています。読み取り専用配列の特別な例外はありますか?
お知らせ下さい。
public class InputState
{
public readonly KeyboardState[] CurrentKeyboardStates;
public readonly KeyboardState[] LastKeyboardStates;
public InputState()
{
CurrentKeyboardStates = new KeyboardState[max];
LastKeyboardStates = new KeyboardState[max];
}
//Does not make sense code...
public void Update()
{
for (int i=0; i < max; ++i)
{
//this should throw errors...
CurrentKeyboardStates[i] = LastKeyboardStates[i];
LastKeyboardStates[i] = Keyboard.GetState();
//more code....
}
}
}