我正在测试以下语句中是否存在用户记录:
if (fromUser.AllFriends.Where(af => af.FriendUserID == toUserID).SingleOrDefault() == ???
Run Code Online (Sandbox Code Playgroud)
鉴于文件:
返回序列的单个特定元素,如果未找到该元素,则返回默认值.
粗体文字指的是什么?我在if语句中测试的是什么?
一个严肃的问题,对大多数人来说可能听起来简单而荒谬.
谢谢.
Jul*_*lia 41
摘自ECMA圣经,334节:
变量的默认值取决于变量的类型,并确定如下:
null
.[注意:初始化为默认值通常通过让内存管理器或垃圾收集器在分配使用之前将内存初始化为所有位为零来完成.因此,使用all-bitszero来表示空引用是很方便的.结束说明]
可空类型的默认值是HasValue
属性所属的实例false
.引用可空类型的默认值的Value属性会导致类型异常
System.InvalidOperationException
.默认值也称为可空类型的空值.存在从null类型(第11.2.7节)到任何可空类型的隐式转换,并且此转换生成该类型的空值.
如第12.2节所述,几种变量在创建时会自动初始化为默认值.对于类类型和其他引用类型的变量,此缺省值为null.但是,由于结构体是不能为null的值类型,因此结构的默认值是通过将所有值类型字段设置为其默认值并将所有引用类型字段设置为null而生成的值.
示例:参考上面声明的Point结构,示例
Run Code Online (Sandbox Code Playgroud)Point[] a = new Point[100];
将数组中的每个Point初始化为通过将x和y字段设置为零而生成的值.
struct的默认值对应于struct的默认构造函数返回的值(第11.1.1节).与类不同,不允许结构体声明无参数实例构造函数.相反,每个结构都隐式具有无参数实例构造函数,该构造函数始终返回将所有值类型字段设置为其默认值并将所有引用类型字段设置为null的值.
所有值类型都隐式声明一个名为default constructor的公共无参数实例构造函数.默认构造函数返回零初始化实例,称为值类型的默认值:
0
.'\x0000'
.0.0f
.0.0d
.0m
.false
.0
.null
.HasValue
返回值false
.阿门
您可以直接从microsoft网站下载圣书(4.0版).