Böyle bir şey yapmak istiyorum:
myYear = record.GetValueOrNull<int?>("myYear"),
Null olabilecek türe genel parametre olarak dikkat edin.
Yana GetValueOrNull
iş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 struct
kı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?
IDataRecord
denDbDataRecord
..