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