は、私は以下の型を持っていると言う:ジェネリック型を含む配列を宣言するにはどうすればよいですか?
public class Field<T>
{
public string Name { get; set; }
public T Value { get; set; }
}
どのように私は、このようなフィールドの配列が含まれています変数を宣言することができますか?
var customFields = new Field[]
{
new Field<string> { Name = "nickname", Value = "Bob" },
new Field<int> { Name = "age", Value = 42 },
new Field<DateTime> { Name = "customer_since", Value = new DateTime(2000, 12, 1) }
};
が、私は、次のコンパイル時例外を取得:私は、次の試したジェネリック型「フィールド」を使用して
を必要とする1型引数
私もvar customFields = new Field<object>[]
を試みたが、
暗黙のうちに、 'Field'タイプを 'F'に変換できません。マティアスは、それがためにそのように行うことはできません言ったようにield」
暗黙的にタイプ変換できません 『フィールド』 『にフィールドをフィールド『
各ジェネリックタイプは、*異なるタイプ*です。したがって、異なるタイプのインスタンスの配列を作成しようとしています。これは不可能です。これは 'string'と' int'値を格納する配列を作成しようとするようなものです。ただし、[共分散](https://msdn.microsoft.com/en-us/library/dd799517(v = vs.110).aspx)を参照してください。 –