Итак, у меня есть этот метод:
internal K GetValue<T, K>(T source, string col) where T : IBaseObject
{
string table = GetObjectTableName(source.GetType());
DataTable dt = _mbx.Tables[table];
DataRow[] rows = dt.Select("ID = " + source.ID);
if (rows.Length == 0) return K;
return (K) rows[0][col];
}
Я хочу иметь возможность возвращать null или какое-то пустое значение, если строки не найдены. Какой правильный синтаксис для этого?





Вы можете вернуть значение по умолчанию (K), а это означает, что вы вернете null, если K является ссылочным типом, или 0 для int, '\ 0' для char и так далее ...
Затем вы можете легко проверить, было ли это возвращено:
if (object.Equals(resultValue, default(K)))
{
//...
}
Вы могли бы return default(K).
Вы должны использовать общее ограничение класса для параметра типа K (потому что классы, в отличие от структур, допускают значение NULL)
internal K GetValue<T, K>(T source, string col)
where K : class
where T : IBaseObject
{
// ...
return null;
}