.NET 8.0'daki yenilikler [14]: Parametreler için yeni koruma yöntemleri

Womanne

Member




Dr. Holger Schwichtenberg, 53 tanınmış uzmanıyla çok sayıda orta ve büyük ölçekli şirketi danışmanlık, eğitim ve yazılım geliştirme yoluyla destekleyen www.IT-Visions.de uzman ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası konferansa katılımı, 90'dan fazla uzmanlık kitabı ve 1.500'den fazla uzmanlık makalesi sayesinde Holger Schwichtenberg, .NET ve web teknolojileri konusunda Almanya'nın en tanınmış uzmanlarından biridir.







.NET 6.0'da Microsoft'un koruma yöntemi vardı ArgumentNullException.ThrowIfNull(Wert) Bir yöntem parametresinin boş değer olarak geçirilip geçirilmediğini kontrol etmek için tanıtıldı. .NET 7.0'da takip edildi ArgumentException.ThrowIfNullOrEmpty(Wert) karakter dizileri için.

Duyuru



.NET 8.0'da artık sayılara ilişkin değer aralıklarını da kontrol eden yöntem parametreleri için ek korumalar bulunmaktadır:

  • ArgumentOutOfRangeException.ThrowIfZero()
  • ArgumentOutOfRangeException.ThrowIfNegative()
  • ArgumentOutOfRangeException.ThrowIfNegativeOrZero()
  • ArgumentOutOfRangeException.ThrowIfGreaterThan()
Kendi temel sayı türleriniz de dahil olmak üzere her tür sayıyla çalışır INumberBase<T> VE IComparable<T>.


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"));
}

}




(kendim)



Haberin Sonu
 
Üst