在C#中,null可以用作值或操作数吗

  • 本文关键字:操作数 null c# null
  • 更新时间 :
  • 英文 :


以下C#代码:

int? a = null;
Console.WriteLine(a ?? 3);

可以打印出CCD_ 1。但如果改为:

Console.WriteLine(null ?? 3);

然后它就无法运行,发出

error CS0019: Operator '??' cannot be applied to operands of type '<null>' and 'int' 

是否可以将null用作C#中的值或操作数?

这将适用于

Console.WriteLine((int?)null ?? 3);

由于null没有类型,您需要将其强制转换为引用类型或可为null的类型

这取决于类型是否由上下文给定。例如,你可以做:

(int?)null ?? 3

null ?? (int?)3

如果你想装箱而不是包装到Nullable<>,那就是:

(object)null ?? 3

null ?? (object)3

或者你可以使用int实现的另一个基类或接口,比如:

(IFormattable)null ?? 3

null ?? (IFormattable)3

null本身没有类型,但它可以隐式转换为允许null值的一组类型。

对于引用类型,可以从上下文推断该类型:

null ?? "three"  /* OK */

相关内容

  • 没有找到相关文章

最新更新