Как я могу решить эту ошибку?ограничивает значение T значением int?
static public class Blah
{
public static T val<T>(this bool b, T v) { return b == true? v:0; }
}
ошибка
Type of conditional expression cannot be determined because there is no implicit conversion between 'T' and 'int
Разве вы не говорите, что нет способа это сделать, а затем перечислите 2 способа сделать это? :) –
В C# нет способа сказать «T должно быть числового типа». Мои два подхода (которые я бы использовал оба вместе на самом деле) - лучшая группа, которую вы получите :) Хотя, действительно, я бы, вероятно, принял совершенно другой подход к этой проблеме. –
@Jeff, он говорит, что нет способа остановить T до int, что верно. Первый пример показывает, как он может, по крайней мере, ограничиваться типом значения. Второй показывает, как должно быть построено значение возвращаемого значения по умолчанию, которое будет работать для int, double, DateTime, object, Foo и т. Д. –