DOBON.NET DOBON.NETプログラミング掲示板過去ログ

クラスに関して

  • 題名: クラスに関して
  • 著者: シャープ
  • 日時: 2014/12/11 9:01:32
  • ID: 32762
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[C#]
分類:[.NET]

データの管理に下記のようなクラスを使用してます。
private class clsTest
{
int int0;
List<string> =new List<string>();
}

private clsTest[] insTest=new Test[10];
for(i=0;i<10;;i++)
{
insTest[i] = new clsTest();
}

インスタンスされたinsTest[]への追加(例:insTest[10]を追加。)
、削除(例:insTest[2]を削除。)の方法を教えてください。

よろしくお願いします。

  • 題名: Re[1]: クラスに関して
  • 著者: 魔界の仮面弁士
  • 日時: 2014/12/11 12:04:52
  • ID: 32764
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No32762に返信(シャープさんの記事)
> データの管理に下記のようなクラスを使用してます。
提示いただいたコードを見てみたのですが、
コードの意図(どのような結果を期待しているのか)が
読み取れませんでした。もう少し説明していただけますか?


> List<string> =new List<string>();
変数名はどうされましたか? 明らかに文法エラーですよね。


> private clsTest[] insTest=new Test[10];
この場合、「clsTest 型の一次元配列」な変数 insTest を用意し、
そこに「Test 型の一次元配列」を 10 要素代入しようとしていますよね。

そもそも Test 型はどこで定義されているのでしょうか?
それとも、Test というのは clsTest の書き間違いでしょうか。

書き間違いで無いとすれば、代入式の左辺と右辺でデータ型が異なっているように
見えるのですが、その場合、class clsTest に Test 型を継承させるとか、
あるいは演算子をオーバーロードするといった、追加の処置が必要となります。


> for(i=0;i<10;;i++)
これも文法エラーになりますよね。
実際に記述しているコードを見せてもらえませんか?


> インスタンスされたinsTest[]への追加(例:insTest[10]を追加。)
最初の代入時に、 new Test[10] ではなく new Test[11] にしておく必要があります。

事前に要素の数が分からない場合は、配列を使うのではなく、
List<> 型にしておき、Add メソッドで追加する方法を使うのが便利です。
削除も容易になりますしね。Remove(項目) メソッド/ RemoveAt(位置) メソッドで。

DOBON.NET | プログラミング道 | プログラミング掲示板