私はこの(ダミー)コードを持つジェネリックメソッドを持っています(はい、IListに述語があることを認識していますが、私のコードはIListを使用していませんが、他のいくつかのコレクションを使用しています。とにかくこれは質問には関係ありません...)
static T FindThing<T>(IList collection, int id) where T : IThing, new()
{
foreach T thing in collecion
{
if (thing.Id == id)
return thing;
}
return null; // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead.
}
これは私にビルドエラーを与えます
「値型の可能性があるため、nullを型パラメーター 'T'に変換できません。代わりに 'default(T)'の使用を検討してください。」
このエラーを回避できますか?
null
かどうかにかかわらずのT
であるObject
かint
、またはchar
。