Böyle bir şey yapmak istiyorum:
myYear = record.GetValueOrNull<int?>("myYear"),
Null olabilecek türe genel parametre olarak dikkat edin.
Yana GetValueOrNullişlev boş geri dönebilirler benim ilk girişimi şuydu:
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : class
{
object columnValue = reader[columnName];
if (!(columnValue is DBNull))
{
return (T)columnValue;
}
return null;
}
Ama şimdi aldığım hata:
'İnt?' Türü jenerik tip veya yöntemde 'T' parametresi olarak kullanılabilmesi için bir referans tipi olmalıdır
Sağ! Nullable<int>bir struct! Sınıf kısıtlamasını bir structkısıtlamaya değiştirmeyi denedim (ve bir yan etki olarak artık geri dönemeyeceğim null):
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : struct
Şimdi ödev:
myYear = record.GetValueOrNull<int?>("myYear");
Aşağıdaki hatayı verir:
'İnt?' Türü genel tür veya yöntemde 'T' parametresi olarak kullanılabilmesi için boş değerli olmayan bir değer türü olmalıdır
Null olabilecek bir türü genel bir parametre olarak belirtmek mümkün müdür?
IDataRecorddenDbDataRecord..