gpt4 book ai didi

c# - C# 中的可空值类型是 Int32 吗?真的是一个 Int32 -?

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:03 25 4
gpt4 key购买 nike

那么如果我想传递一个可为 null 的值类型,例如 Int32?到一个方法中,我必须告诉方法参数它是一个可以为 null 的。

public void foo(Int32? arg){...}

如果我将常规 Int32 传递给 arg,它就可以工作。但是如果我把它改成

public void foo(Int32 arg){...}

并传入一个可为 null 的值,它吓坏了。

所以我的问题是?更改 Int32 的类型?

有 Int32 吗?对象还是?只需在 Int32 中设置一个标志并使其可为空?

基本上我是在问幕后发生了什么。

最佳答案

Int32?Nullable<Int32> 的缩写形式,所以这是两种不同的类型。一个Int32可以隐式转换为 Nullable<Int32> ,反之则不然。

http://msdn.microsoft.com/de-de/library/b3h38hb0(v=vs.100).aspx你可以看到两个运算符:

Explicit(Nullable<T> to T): Returns the value of a specified Nullable<T> value.
Implicit(T to Nullable<T>): Creates a new Nullable<T> object initialized to a specified value.

关于c# - C# 中的可空值类型是 Int32 吗?真的是一个 Int32 -?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949044/

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