Nullableタイプの問題処理

1454 ワード

public class Calc

    {

        public long? Number { get; set; }

        public long Number1 { get; set; }

        public long Number2 { get; set; }

    }

var calc = new Calc();

calc.Number1 = 100;

calc.Number2 = 120;

var result = calc.Number + calc.Number1+calc.Number2;

Resharperもプロンプトコードに問題はありませんが、このコードで得られた結果はnullが間違っています.
結論:空のオブジェクトに任意の数値を加えると空のオブジェクトになります.
正しい方法:
var result = calc.Number.Hasvalue? calc.Number.value:0+ calc.Number1+calc.Number2;
結果は220