当前位置:  开发笔记 > 编程语言 > 正文

使非可空值类型可为空

如何解决《使非可空值类型可为空》经验,为你挑选了3个好方法。

我有一个简单的结构,使用有限.结构是在调用数据库中的数据的方法中创建的.如果没有从数据库返回的数据我希望能够返回null,但是Visual Studio抱怨,无法将null转换为PackageName.StructName,因为它是一个不可为空的值类型.

我该如何让它可以为空?



1> Andrew Hare..:

您想要查看Nullable值类型.



2> mqp..:
public struct Something
{
    //...
}

public static Something GetSomethingSomehow()
{
    Something? data = MaybeGetSomethingFrom(theDatabase);
    bool questionMarkMeansNullable = (data == null);
    return data ?? Something.DefaultValue;
}



3> John Rasch..:

Nullable结构的定义是:

struct Nullable
{
    public bool HasValue;
    public T Value;
}

它是以这种方式创建的:

Nullable nullableStruct = new Nullable(params);

只需键入以下内容即可快速完成此操作:

PackageName.StructName? nullableStruct  = new PackageName.StructName(params);

请参阅:MSDN

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有