De https://source.dot.net/#System.Private.CoreLib/Hashtable.cs,475 :
public virtual bool ContainsKey(object key!!)
Cela ressemble à deux opérateurs de renonciation à la nullité. Existe-t-il un document à ce sujet ?
De https://source.dot.net/#System.Private.CoreLib/Hashtable.cs,475 :
public virtual bool ContainsKey(object key!!)
Cela ressemble à deux opérateurs de renonciation à la nullité. Existe-t-il un document à ce sujet ?
Il s'agit d'une syntaxe de vérification des paramètres nuls introduite dans C# 11.
La proposition est ici et le PR fait un premier déploiement vers le runtime. est ici .
La syntaxe :
public void Foo(string bar!!)
{
}
Est à peu près équivalent à :
public void Foo(string bar)
{
if (bar is null)
{
throw new ArgumentNullException(nameof(bar));
}
}
... bien que l'implémentation réelle utilise une aide de type throw, Voir sur SharpLab .
!!
Le double point d'exclamation !!
est un fonction de vérification des paramètres nuls qui remplace le contrôle nul suivant (plus ancien) :
void Bar(object arg)
{
if (arg is null)
{
throw new ArgumentNullException(nameof(arg));
}
Console.WriteLine("Hi");
// use arg...
}
Avec ce nouveau mode de contrôle des nullités, le même code est beaucoup plus court :
void Bar(object arg!!)
{
Console.WriteLine("Hi");
// use arg...
}
Ces deux méthodes (ainsi que la suivante) lancent un ArgumentNullException
si le paramètre est null
En gros, en utilisant ce code, vous vous assurez que object arg
n'est pas null
ArgumentNullException.ThrowIfNull(parameter)
editar: cette méthode statique est introduite dans C# 10 (.NET 6) et dépend de la version 6 de .NET
Avec les dernières instructions PR, cette méthode est utilisée dans les endroits où les !!
n'est pas possible :
ArgumentNullException.ThrowIfNull est utilisé dans les cas suivants
!!
n'est pas possible, mais l'appel de la méthode est
Exemple de code :
void Greeting(string name)
{
ArgumentNullException.ThrowIfNull(name);
Console.WriteLine($"Hi {name}");
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.