Mur*_*san 2 .net c# nullable decimal c#-4.0
我今天在 C# 中遇到了一个带有可为空小数的奇怪行为。
从某个值中减去空值给出空值。
例子:
2300.00 - null = null :(
using System;
public class Program
{
public static void Main()
{
decimal? a=2300.00m;
decimal? b=null;
var result=a-b;
Console.WriteLine("Result is {0}",result);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到的是 null 而不是 2300?
这种行为符合null
“未知值”的含义:当你从 2300 中减去一个未知值时,你会得到一个未知值。
如果您希望null
nullable 中的 s 被视为零,请使用 null 合并运算符:
var result=(a ?? 0) - (b ?? 0);
Run Code Online (Sandbox Code Playgroud)