C#, Operatore ‘??’ non può essere applicato per gli operandi di tipo ‘decimale’ e ‘decimale’

public decimal v1 {
  get {
    return this._v1; 
  }
  set {
    this._v1 = value ?? 0M;  //also I tried, default(decimal)
  }
}

Messaggio di errore dire :

Operatore ‘??’ non può essere applicato per gli operandi di tipo ‘decimale’ e ‘decimale’

Perché non funziona, e come devo fare funziona?

  • Questi sono i tipi di valore e non può essere null
  • Aha! Vedo 🙂 grazie!

 

4 Replies
  1. 14

    Il decimal tipo non può essere nullo, in modo che il null-coalesce operatore non ha nessun senso qui. Basta impostare _v1 per value.

    • Che cosa succede se si dispone di un nullable decimale? Esempio pubblico decimale? TotalAmount
    • Se il decimale è nullable quindi il coalesce lavoro,
  2. 5

    Questi sono i tipi di valore e non può essere null è possibile utilizzare il Nullable<decimal>

    private decimal? _v1;
    public decimal? V1
    {
        get
        {
            return this._v1;
        }
        set
        {
            this._v1 = value ?? 0M;
        }
    
    }
  3. 1

    Che è il Null Coalescenza Operatore. Dal decimale non può essere null, non ha alcun uso dei decimali.

    È possibile utilizzare un decimal? che può essere impostato a null se avete bisogno di questa funzionalità:

    public decimal? v1 
    {
        get 
        {
            return this._v1; 
        }
        set 
        {
            this._v1 = value ?? 0M;
        }
    }

Lascia un commento