visual variable propiedad not net bool c# .net-3.5 non-nullable

c# - variable - Haciendo un tipo de valor no anulable anulable



propiedad nullable c# (7)

La definición para una Nullable<T> es:

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

Se crea de esta manera:

Nullable<PackageName.StructName> nullableStruct = new Nullable<PackageName.StructName>(params);

Puedes atajar este lío simplemente escribiendo:

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

Ver: MSDN

Tengo una estructura simple que tiene un uso limitado. La estructura se crea en un método que llama a los datos de la base de datos. Si no se devuelven datos de la base de datos, deseo poder devolver un valor nulo, pero Visual Studio se queja, no se puede convertir el valor nulo a PackageName.StructName porque es un tipo de valor no anulable.

¿Cómo puedo hacerlo anulable?


Podrías hacer algo anulable por ejemplo como este:

// Create the nullable object. int? value = new int?(); // Check for if the object is null. if(value == null) { // Your code goes here. }


Puedes usar el predeterminado como alternativa

public struct VelocityRange { private double myLowerVelocityLimit; private double myUpperVelocityLimit; }

VelocityRange velocityRange = predeterminado (VelocityRange);


Utilice los accesos directos incorporados para la Nullable<T> , simplemente agregando ? a la declaración:

int? x = null; if (x == null) { ... }

Lo mismo para cualquier otro tipo, estructura, etc.

MyStruct? myNullableStruct = new MyStruct(params);


Nullable<T> es una clase contenedora que crea una versión que Nullable<T> del tipo T. ¿También puedes usar la sintaxis T? (por ejemplo, int?) para representar la versión anulable de tipo T.



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