2024-03-15 15:15:00
Dr. Holger Schwichtenberg est le directeur technique du réseau d’experts www.IT-Visions.de qui, avec 53 experts renommés, soutient de nombreuses moyennes et grandes entreprises par le biais de conseils et de formations ainsi que de développement de logiciels. Grâce à ses participations à de nombreuses conférences nationales et internationales ainsi qu’à plus de 90 ouvrages spécialisés et plus de 1 500 articles spécialisés, Holger Schwichtenberg est l’un des experts les plus connus en Allemagne dans le domaine des technologies .NET et Web.
Dans .NET 6.0, Microsoft avait la méthode guard ArgumentNullException.ThrowIfNull(Wert)
introduit pour vérifier si un paramètre de méthode a été transmis comme valeur nulle. Suivi dans .NET 7.0 ArgumentException.ThrowIfNullOrEmpty(Wert)
pour les chaînes de caractères.
Publicité
Dans .NET 8.0, il existe désormais des protections supplémentaires pour les paramètres de méthode qui vérifient également les plages de valeurs pour les nombres :
ArgumentOutOfRangeException.ThrowIfZero()
ArgumentOutOfRangeException.ThrowIfNegative()
ArgumentOutOfRangeException.ThrowIfNegativeOrZero()
ArgumentOutOfRangeException.ThrowIfGreaterThan()
Cela fonctionne avec tous les types de numéros, y compris vos propres types de numéros basés sur INumberBase
et IComparable
.
namespace NET8_Console;
public class FCL_Exceptions
{
public string Calc(decimal? betrag, decimal prozent, string einheit)
{
#region neue Wächtermethoden vor .NET 8.0
// seit .NET 6.0:
ArgumentNullException.ThrowIfNull(betrag);
// seit .NET 7.0:
ArgumentException.ThrowIfNullOrEmpty(einheit);
#endregion
#region neue Wächtermethoden in .NET 8.0
ArgumentOutOfRangeException.ThrowIfZero(betrag.Value);
ArgumentOutOfRangeException.ThrowIfNegativeOrZero(betrag.Value);
ArgumentOutOfRangeException.ThrowIfNegative(prozent);
ArgumentOutOfRangeException.ThrowIfGreaterThan(prozent, 100);
#endregion
var ergebnis = betrag * prozent / 100;
return $"{prozent}% von {betrag} {einheit} sind {ergebnis} {einheit}";
}
public void Run()
{
// 50% von 42 Euro sind 21 Euro:
Console.WriteLine(Calc(42, 50, "Euro"));
}
}
(moi)
#Nouveau #dans #.NET #Nouvelles #méthodes #garde #pour #les #paramètres
1710633266