有什么区别
Method(int arg0 = 0) vs Method([Optional] int arg0 = 0);
Run Code Online (Sandbox Code Playgroud)
每当我试图调用这个方法时,编译器就会说出它的模糊情况.我知道为什么它是模棱两可的情况,我的兴趣是那两个如果他们促进相同的事情=可选参数之间的差异.然而,他们以不同的方式这样做,在视觉上清单 - 不知道引擎盖下.
有人向我指出,第一种方式实际上是DEFAULT使用,这意味着你将初始化默认值,而第二种方式是可选的,它用于你不定义任何默认值的情况 - 虽然它有意义,但它们都可以很容易分配值而不是.它们的真正区别和用途是什么?
在使用传递参数进行实例化时使用构造函数之间的区别是什么
Customer Costomer1 = new Customer(100, Mark, 5000);
Run Code Online (Sandbox Code Playgroud)
并做同样但没有传递给构造函数但只是实例化成员?
Customer Costomer1 = new Customer() { ID = 100, Name = "Mark", Salary = 5000, };
Run Code Online (Sandbox Code Playgroud)
哪一种更好,哪种情况好?
如果我说构造函数是在实例化对象时需要做更多的工作而成员初始化仅用于字段和属性的签名值,那么我是否正确?
如果我正确理解这一点,为什么你会使用构造函数的成员使用第二个案例?
有一件小事让我在c#中拼图:)
这是我的变量和结果:
decimal a1 = 0.2M;
decimal a2 = 1.0M;
a1 - a2 = -0.8
float b1 = 0.2F;
float b2 = 1.0F;
b1 - b2 = -0.8
double c1 = 0.2;
double c2 = 1.0;
c1 - c2 = -0.8
double x1 = 0.2F;
double x2 = 1.0F;
x1 - x2 = -0.799999997019768
Run Code Online (Sandbox Code Playgroud)
十进制 - 结果与我预期的一样,因为它知道它们以基数10表示法工作.
浮动 - 让我感到惊讶,知道它在基础2表示法上工作,它实际上显示结果好像它作为基础10表示法而没有失去精确度.
Double c - 与Float相同.
Double x - 显示我希望Float发生的结果.
问题是Float,Double'c'和'x'群体正在发生什么?为什么Double'x'组失去了它的精度,而Float组实际上以10的基数表示,这样可以说出"预期"的计算结果?想知道为什么将Double …