トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
C#
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ Generic


    Int型の固定サイズ配列のクラス。
    string など別の型をいれる場合は利用できないので
    似たような別クラスを用意することになる。
    public class IntFixedArray {

      public IntFixedArray( int num ) {
        _num = num;
        _data = new int[_num];
      }

      public void Set( int i, int value ) {  _data[i] = value;  }
      public int Get( int i ) {  return _data[i];  }

      int[] _data;
      int _num;
    }
object にすればすべての型を受け取ることができるが boxing(ボックス化) が発生して、データを取り出す時にどの型であるかチェックが必要。
    public class FixedArray {

      public FixedArray( int num ) {
        _num = num;
        _data = new object[_num];
      }

      public void Set( int i, object value ) {  _data[i] = value;  }
      public object Get( int i ) {  return _data[i];  }

      object[] _data;
      int _num;
    }
型をパラメータ化する。 これで, int, string, など型ごとにコンパイラがクラスを生成するので コードのひとつで済む。
    public class FixedArray< T> {

      public FixedArray( int num ) {
        _num = num;
        _data = new T[_num];
      }

      public void Set( int i, T value ) {
        _data[i] = value;
      }
      public T Get( int i ) {
        return _data[i];
      }

      T[] _data;
      int _num;
    }
    FixedArray< int> a = new FixedArray< int>(10);

    a.Set( 0, 1 );
    // コンパイル時に型チェックもしてもらえる。
    a.Set( 0, "foo" );


    FixedArray a = new FixedArray(10);
    a.Set( 0, "foo" );
    // ここで 値型から参照型への変換( boxing )が入る。
    a.Set( 0, 1 );

















NINJAIDX 10