Warum wird diese Eigenschaft nicht als Nullable behandelt?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum wird diese Eigenschaft nicht als Nullable behandelt?

Post by Anonymous »

Gegeben sei die folgende Klasse

Code: Select all

    public class Component
{
public TValue? MaxValue { get; set; }
public TValue? MinValue { get; set; }
public TValue Value { get; set; } = default!;

public override string ToString() =>
$"MinValue = {MinValue}, MaxValue = {MaxValue}, Value = {Value}";
}
Warum sind beim Erstellen einer Instanz von Component die Eigenschaften MinValue und MaxValue int statt Nullable?

Code: Select all

        static void Main(string[] args)
{
var instance = new Component();
instance.Value = 42;
Console.WriteLine(instance.ToString());
}
Ich könnte dafür sorgen, dass es sich so verhält, wie ich es möchte, indem ich where TValue: struct hinzufüge, aber ich schreibe eine Blazor-Komponente, die mit jedem numerischen Typ (einschließlich Nullables) funktionieren muss, daher kann ich diese Einschränkung nicht hinzufügen.
Ich würde gerne die Logik wissen, die dahinter steckt, warum TValue? für ein int nicht als kompiliert werden sollte Nullable.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post