gpt4 book ai didi

c# - 可空类型 "int?"(包括问号)的默认值是多少?

转载 作者:IT王子 更新时间:2023-10-29 03:38:12 47 4
gpt4 key购买 nike

在 C# 中,int 类型的类实例变量的默认值是多少?

例如,在下面的代码中,如果 MyNullableInt 从未被显式赋值,它会有什么值?

class MyClass
{
public int? MyNullableInt;
}

(似乎答案几乎肯定是 null0,但究竟是哪一个?)

最佳答案

int? 的默认值-- 对于任何使用“type?”的可空类型声明——是null .

为什么会这样:

  • int?Nullable<T> 类型的语法糖(其中 T 是 int ),一个结构。 ( reference )
  • Nullable<T>类型有一个 bool HasValue成员(member),当false , 使得 Nullable<T>实例“表现得像”一个 null值(value)。特别是 Nullable<T>.Equals method被覆盖返回 trueNullable<T>HasValue == false与实际 null 进行比较值(value)。
  • 来自 C# Language Specification 11.3.4 ,结构实例的初始默认值是该结构的所有值类型字段设置为其默认值,并且该结构的所有引用类型字段设置为 null .
  • 默认值 bool C# 中的变量是 false (reference)。因此,HasValue默认属性 Nullable<T>实例是 false ;这反过来又使Nullable<T>实例本身就像null .

关于c# - 可空类型 "int?"(包括问号)的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153832/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com