如何在c ++/cli中使用Nullable类型?

dev*_*ium 36 c++-cli

我有以下代码,我认为它可以工作:

property Nullable<double> Angle {
    Nullable<double> get() {
        return nullptr;
        }
}
Run Code Online (Sandbox Code Playgroud)

它没有.我该怎么做?c ++/CLI甚至支持可空类型吗?

dev*_*ium 56

好了,经过很多麻烦后找到了它:

要返回null,就这样做

return Nullable<double>();
Run Code Online (Sandbox Code Playgroud)

返回非null:

return Nullable<double>(12321);
Run Code Online (Sandbox Code Playgroud)

它声明的返回值是很重要的Nullable<double>,而不是Nullable<double>^,因为如果你这样做,用其他语言如C#和vb.net的时候,你会看到类型ValueType来代替double?.

  • 如果有人想知道,`Nullable <double> ^`包含一个盒装的`double`实例的句柄,或者一个`nullptr`的值,不是`Nullable <double>`的实例.C#等不支持盒装值类型签名,因此只能看到`ValueType`(虽然在元数据中,原始类型被保留).可以为空的类型不能用它们的实际值加框,只能用它们的内部值或文字null. (2认同)