【发布时间】:2017-03-02 14:34:54
【问题描述】:
我今天在 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);
}
}
为什么我得到的是 null 而不是 2300?
【问题讨论】:
-
如果一个值可以为空,你不应该做一个空检查吗?
-
2300 - ihavenoidea == ihavenoidea,唯一明智的行为。
-
这类似于一个术语为
Double.NaN时的双精度计算 -
不知道为什么这个问题被否决了,即使它确实有一个相当明显的答案......
-
@MatthewWatson 我猜是因为它是重复的,两秒钟的搜索就会得到答案......
标签: c# .net c#-4.0 decimal nullable