私はC#のジェネリックスについて学んでいますが、ジェネリック配列を作成して文字列を追加しようとしています。私は簡単にそれにint
の値を追加することができますが、私はそれをstrings
と動作させる方法を理解できません。私は文字列を使用しようとしているときに私はNullReferenceException
を得る。一般的な文字列にデータを追加する配列C#
私はmyArray
というクラスを持って、それは次のようになります。
class MyArray<T> : IComparable<T>, IEnumerable<T>, IEnumerator<T>
{
T[] data = new T[10];
int current = -1;
public T[] Data
{
get { return data; }
}
public void Add(T value)
{
for (int i = 0; i < data.Length; i++)
{
if (data[i].Equals(default(T)))
{
data[i] = value;
return;
}
}
T[] tmp = new T[data.Length + 10];
data.CopyTo(tmp, 0);
Add(value);
}
私はこのようなデータを追加します。
class Program
{
static void Main(string[] args)
{
MyArray<string> StringArray = new MyArray<string>();
StringArray.Add("ONE");
StringArray.Add("TWO");
}
}
理由をデフォルトに比較します( T)?あなたが持っている人の数を追跡してみませんか?または...単に 'リスト'を使用してください... –
誰もがとても速いです:)私は誰もが示唆したように、コードとそのあなたのforループについてデバッグしました。新しいT [10]ではTの配列がありますが、配列[0]はnullです。まだ何も追加していないからです。 – adt