이 (더미) 코드를 사용하는 일반적인 방법이 있습니다 (예, 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.
}
이것은 나에게 빌드 오류를 준다
"값 유형일 수 있으므로 널을 유형 매개 변수 'T'로 변환 할 수 없습니다. 대신 'default (T)'를 사용하는 것이 좋습니다."
이 오류를 피할 수 있습니까?
null
여부에 관계없이의T
이다Object
또는int
나char
.