以下のステートメントが参照型に対して異なる結果を返すかどうか知りたいですか?デフォルト(T)対Activator.CreateInstance(T)
それらが同一である場合には目的が出力にTのデフォルト値だった場合、あなたは常に、この例では、デフォルト(T)を使用することができます?:
if (typeof(T).IsValueType || typeof(T) == typeof(String))
{
return default(T);
}
else
{
return Activator.CreateInstance<T>();
}
Best way to test if a generic type is a string? (c#)
TA!
いいえ、リファレンスタイプのデフォルト(T)はnullを返します。CreateInstance()はタイプTのオブジェクトを作成するため、行う。 –
'default(文字列)'もnullではありませんか? – BoltClock
混乱を解消していただきありがとうございます!コードサンプルは混乱の一部で、私はそれの下にリンクされたstackoverflowポストでそれを見た.. – Cel