我有一个简单的结构,使用有限.结构是在调用数据库中的数据的方法中创建的.如果没有从数据库返回的数据我希望能够返回null,但是Visual Studio抱怨,无法将null转换为PackageName.StructName,因为它是一个不可为空的值类型.
我该如何让它可以为空?
您想要查看Nullable
值类型.
public struct Something { //... } public static Something GetSomethingSomehow() { Something? data = MaybeGetSomethingFrom(theDatabase); bool questionMarkMeansNullable = (data == null); return data ?? Something.DefaultValue; }
Nullable
结构的定义是:
struct Nullable{ public bool HasValue; public T Value; }
它是以这种方式创建的:
NullablenullableStruct = new Nullable (params);
只需键入以下内容即可快速完成此操作:
PackageName.StructName? nullableStruct = new PackageName.StructName(params);
请参阅:MSDN