Попытка сделать Feature
общий, а затем компилятор вдруг сказал
Оператор '?' не может применяться к операнду типа "T"
Вот код
public abstract class Feature<T>
{
public T Value
{
get { return GetValue?.Invoke(); } // here is error
set { SetValue?.Invoke(value); }
}
public Func<T> GetValue { get; set; }
public Action<T> SetValue { get; set; }
}
Вместо этого можно использовать этот код
get
{
if (GetValue != null)
return GetValue();
return default(T);
}
Но мне интересно, как исправить этот приятный однострочный С# 6.0.