我正在编写适用于一系列数字数据的算法,有时,该系列中的一个值需要为空。但是,由于此应用程序对性能至关重要,因此我避免使用可空类型。我已经对算法进行了性能测试,专门比较了使用可空类型和不可空类型的性能,在最好的情况下,可空类型会慢 2 倍,但通常要差得多。
最常用的数据类型是 double,目前选择的 null 替代方案是 double.NaN。但是我知道这不是 NaN 值的确切预期用途,所以我不确定这是否有任何我无法预见的问题以及最佳实践是什么。
我有兴趣找出以下数据类型的最佳空替代方案:double/float、decimal、DateTime、int/long(尽管其他数据类型非常受欢迎)
编辑:我想我需要澄清我对性能的要求。通过这些算法一次处理大量数字数据需要几个小时。因此,尽管例如 10ms 或 20ms 之间的差异通常是微不足道的,但在这种情况下,它确实会对所用时间产生重大影响。