-1

基本的に、私は独自の配列クラスを実装しようとしていますが、不明な数のプライベート インスタンス変数を生成するパブリック メソッドを作成する方法があるかどうか疑問に思っていましたか? 何かのようなもの:

public class myArray {
    public myArray(int length) {
        for(int i = 0; i < length; i++) {
            int component+i;
        }
    }
    int component(int indexOfComponent) {
        return component+indexOfComponent; 
    }
}

その for ループ内のコード行が意味をなさないことはわかっています。しかし、私が話していることを説明しようと思っただけです。コンストラクターのパラメーターとして 3 を指定して myArray クラスからオブジェクトを作成すると、次のようになります。

public class myArray {
    private int component1;
    private int component2;
    private int component3;

    public myArray(int length) {
        for(int i = 0; i < length; i++) {
            int component+i;
        }
    int component(int indexOfComponent) {
            return component+indexOfComponent; 
        }
    }
}

そして、これらの変数は for ループ内にのみ存在することはわかっていますが、それが私がやろうとしていることを例示できる最良の方法です。独自の配列クラスを実装しようとしている場合でも、これは進むべき道ですか? また; これについては、別の質問に値すると思うことがもう 1 つありますが、それは for ループを使用して動的に変数に名前を付けるという問題全体です。

4

1 に答える 1

1

基本的に、独自の配列クラスを実装しようとしています

そうしないことを強くお勧めします。

不明な数のプライベート インスタンス変数を生成するパブリック メソッドを作成することが道であるかどうか疑問に思っていました

いいえ。変数はコンパイル時に知る必要があります。

「進むべき道」は、配列または別の既存のコレクション型を使用することです。

基本的に、C# で配列を直接実装することはできません。配列と文字列は、インスタンスのサイズがオブジェクトごとに異なる唯一のオブジェクトです。それ以外の場合、レイアウトはすべてのオブジェクトで同じです。

Reflection.Emit(コメントで述べたように、または同様のものを使用してインスタンスごとに新しいタイプを動的に作成できますが、実際にはそれを行いたくありません。)

于 2013-03-07T05:10:08.460 に答える