类型“<null>”的值不能用作默认参数,因为没有到类型 'T' 的标准转换
A value of type '<null>' cannot be used as a default parameter because there are no standard conversions to type 'T'
我收到错误:
A value of type '' cannot be used as a default parameter because there are no standard conversions to type 'T'
在尝试编写这段代码时
protected T GetValue<T>(Expression<Func<T>> property, T defaultValueIfNull = null);
有没有人知道如何制作空值类型。有办法吗?
T
在这种情况下也可能是值类型,例如 int
,不能是 null
。您应该指定类型约束,将 T
限制为 类:
...T defaultValueIfNull = null) where T : class
另一种方法是使用 ...T defaultValueIfNull = default(T))
- 您不需要约束,但默认情况下值类型将变为 0
,而不是 null
.
类型没有限制T
,所以可以是值类型。
您可以将方法定义重写为
protected T GetValue<T>(Expression<Func<T>> property, T defaultValueIfNull = default(T));
这意味着引用类型为 null
,值类型为默认值。
我收到错误:
A value of type '' cannot be used as a default parameter because there are no standard conversions to type 'T'
在尝试编写这段代码时
protected T GetValue<T>(Expression<Func<T>> property, T defaultValueIfNull = null);
有没有人知道如何制作空值类型。有办法吗?
T
在这种情况下也可能是值类型,例如 int
,不能是 null
。您应该指定类型约束,将 T
限制为 类:
...T defaultValueIfNull = null) where T : class
另一种方法是使用 ...T defaultValueIfNull = default(T))
- 您不需要约束,但默认情况下值类型将变为 0
,而不是 null
.
类型没有限制T
,所以可以是值类型。
您可以将方法定义重写为
protected T GetValue<T>(Expression<Func<T>> property, T defaultValueIfNull = default(T));
这意味着引用类型为 null
,值类型为默认值。