Aller au contenu

Opérateur de suppression de null

Contexte : L’opérateur de suppression de null (!) supprime les avertissements nullable lorsque vous êtes certain qu’une expression n’est pas nulle.

#nullable enable
string? maybeNull = GetString();
int length = maybeNull!.Length; // pas d’avertissement, mais risqué
  • Lorsque vous savez qu’une valeur n’est pas nulle malgré l’analyse du compilateur
  • Pour les tests unitaires où vous assignez intentionnellement null
  • Interopérabilité avec des frameworks qui utilisent des types non nullables mais peuvent retourner null

Injection de dépendances : Lorsque vous enregistrez un service comme non nullable mais que le conteneur DI le garantit, vous pouvez utiliser ! après la résolution.

var service = services.GetRequiredService<IMyService>()!;

Exemple : Dans ASP.NET Core, GetRequiredService lève une exception si non trouvé, donc utiliser ! est sûr.