0

データ構造体の構造体をクラスに変換/アップグレードする必要があり、質問があります。構造体のようにクラスを静的に開始できますか?もしそうなら、それを行う方法のガイダンスをいただければ幸いです。以下は私の構造体の定義です:

typedef struct t
{
   struct t *next;
   int otherfield;
} T

T r1[]={{0,1},{0,2}};
T s1[]={{r1,3},{0,4}};

私の変換されたクラスは次のようになります

class T
{
  class T next;
  int otherfield;
}
List<T> r1;
List<T> s1;

r1、s1を静的に開始するにはどうすればよいですか。これらの構造体が何百もあり、それらはすべて静的に初期化されているため、コンストラクターによる標準の初期化は機能しない可能性があります。

ありがとう、

4

1 に答える 1

0

次のことだけできませんか?

class T
{
    public T next;
    public int otherfield;
    public T( T next, int otherfield )
    {
        this.next = next;
        this.otherfield = otherfield
    }
}

T[] r1 = new T[]{ new T( null, 1 ), new T( null, 2 ) };
T[] s1 = new T[]{ new T( r1[0], 3 ), new T( null, 4 ) };

編集:リストでそれを行いたい場合は、次のようにすることができます:

List< T > r1 = new List< T >( new T[]{ new T( null, 1 ), new T( null, 2 ) } );
List< T > s1 = new List< T >( new T[]{ new T( r1[0], 3 ), new T( null, 4 ) } );
于 2012-09-09T16:44:33.317 に答える