c# null

c# - ¿Cómo podría evitar== comprobación nula?



null (3)

Aquí está mi código que se usa ampliamente en el proyecto, y me pregunto si puedo refactorizarlo de alguna manera para poder evitar == null comprobaciones == null todo el tiempo.

ActiveCompany = admin.Company == null ? false : admin.Company.Active

Gracias chicos

Aclamaciones


El operador de fusión nula encadenado con condicional nulo es útil para este tipo de cosas:

ActiveCompany = admin.Company?.Active ?? false


Puede usar el C # 6: Operador condicional nulo

ActiveCompany = admin.Company?.Active == true;

La comparación con true al final "convierte" el bool? bool También puede usar el operador de fusión nula para manejar el valor nulo como lo muestra Keith.


Si te encuentras haciendo esto muchísimo, podrías escribir un método de extensión para simplificar el código.

Por ejemplo, suponga que tiene estas clases:

public sealed class Company { public bool Active { get; set; } } public sealed class MyClass { public Company Company; }

Entonces podrías escribir un método de extensión como este:

public static class MyClassExt { public static bool IsActiveCompany(this MyClass myClass) { return myClass.Company?.Active ?? false; } }

Lo que significaría que puede escribir código como:

var test = new MyClass(); // ... bool activeCompany = test.IsActiveCompany();

Esto no hace que el código sea mucho más corto, pero algunos podrían pensar que lo hace más legible.