c# - '<null>' 类型的值不能用作默认参数,因为没有到 'T' 类型的标准转换

标签 c# generics type-conversion nullable

我收到错误:

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没有限制,所以可以是值类型。
您可以将方法定义重写为

protected T GetValue<T>(Expression<Func<T>> property, T defaultValueIfNull = default(T));


这意味着引用类型为 null,值类型为默认值。

关于c# - '<null>' 类型的值不能用作默认参数,因为没有到 'T' 类型的标准转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732200/

相关文章:

c++ - 调用函数时从 'char' 到 'char*' 的无效转换 (c++)

java - 将java中字符串文本框的值转换为整数,以便该值可以用于乘法

时间:2019-03-17 标签:c#asp.netWebAPIOwinJsonToken

c# - HtmlAgilityPack Attributes.Remove on Image 只删除一个,当有两个时

c# - 信箱不可用。服务器响应为 : 5. 7.1 中继凭据无效

generics - Kotlin:难以理解泛型

java - 使用泛型和继承来谓词 java 8

java - 使用 JAXB 映射通用的嵌套 XML 数据结构

c# - 按比例调整 pictureBox 的大小以调整 Form 的大小

c - 为什么在 C 中 float 转换为 int 时会四舍五入?