Nullable-Typen und Problem mit dem frühen StoppenC#

Ein Treffpunkt für C#-Programmierer
Guest
 Nullable-Typen und Problem mit dem frühen Stoppen

Post by Guest »

In C#, wenn NULL-fähige Objekte wie Decimal?, Int? usw. vorhanden sind. Während NULL-Prüfungen durchgeführt werden, aber mit vorzeitigem Stoppen.
Der Compiler verfolgt nicht die NULL-Zulässigkeit eines solchen Objekts (in diesem Fall prevMaxSpeed) über den Rahmen der if-Anweisung hinaus. Gibt es eine bessere Möglichkeit, dies zu tun?
Dies ist nur ein kleiner vereinfachter Ausschnitt eines komplexeren Codes, weshalb ich nicht bereit bin, verschachtelte if-Anweisungen zu verwenden, um das Problem zu beheben Probleme mit der Lesbarkeit.
Ich weiß, dass ich es einfach umsetzen kann, aber ich habe das Gefühl, dass das überflüssig ist.

Code: Select all

foreach (var something in somethings)
{
var prevMaxSpeed = something.FirstOrDefault(x => x != null)?.speed;

// early stopping
if (!prevMaxSpeed.HasValue && !prevMaxSpeed.IsDefaultValue())
{
HandleMaxSpeedNoValue();
continue;
}

sp.SP_Characteristics.StaticSpeedProfile.First().StaticSpeedProfileStart = new SSP_ComplexType()
{
SSP_Speed = prevMaxSpeed, // "Cannot implicitly convert type 'decimal?' to 'decimal'. An explicit conversion exists (are you missing a cast?)"
SSP_SpeedSpecified = true,
};
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post