C#语法问题,nullable

double? n=null;

可空类型。

double? n=new double();

第一个和第二个代码有什么区别

第一个没有分配空间,第二个分配了内存空间

可空类型是表示这个变量可以设置为null

double? n=new double();
等价于
double? n=0;
double类型是值类型,.net类库给它分配了小写的类型,用来快速定义,但是其实实例化的过程是一样的,只是个语法糖。
至于第一种,无非就是把初始值设定成null而已,是null还是0还是1,在我看来没什么区别,主要还是看你的逻辑里对于未赋值的判断是怎么写的。
如果你的数据都是正数,那你完全可以把n赋值成-1表示还没有赋值过。