Ich war nur neugierig, was eine Best Practices-Lösung würde meine aktuelle Situation gegeben werden. Ich habe eine Datenbank, die Farben in ARGB Integer-Form speichert, aber ich erlaube es Nullwerte zu geben, da manchmal die Farbe nicht angegeben werden muss. Mit dem Entity Framework habe ich eine generierte Klasse mit einer ColorArgb-Eigenschaft für den Zugriff auf die Spalte, die erwartungsgemäß int zurückgibt. Ich habe auch eine andere Eigenschaft, Color, hinzugefügt, die ein System.Drawing.Color -Objekt zurückgibt. Die Color-Eigenschaft ist eigentlich nur ein Übergang, damit ich mit der generierten Klasse auf natürlichere Weise interagieren kann. Die Einstellung ist so einfach wie:Best Practices für die Rückgabe einer Color.FromArgb, wenn ein int gegeben wird, das null sein kann C#
ColorArgb = value.ToArgb();
Allerdings ist das Erhalten ein wenig interessanter. Hier ist, was ich bisher:
return ColorArgb == null ? Color.Empty : Color.FromArgb(ColorArgb ?? 0);
Wie Sie sehen können, möchte ich die Idee behaupten, dass eine Farbe für diese Klasse nicht notwendig ist, so kehre ich Color.Empty, wenn der zugrunde liegende ARGB-Wert null ist, aber Die rechte Seite des Nullkoaleszenzoperators wird niemals erreicht. Ich habe garantiert, dass der Wert nicht null ist, aber ich weiß nicht, wie ich den Compiler in einer Best Practices-Form explizit sage. Kein ernstes Problem, aber ich würde gerne lernen. Daher wird jede Hilfe sehr geschätzt.
Edit: ColorArgb ist vom Typ System.Nullable<int>
Ist 'ColorArgb' vom Typ' int? '? – ZoolWay