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;
}
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;
}
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 );