kdub 发表于 2016-1-4 04:40:51

你会喜欢C#6:字符串插值


**** Hidden Message *****

JohnK 发表于 2016-1-4 11:09:02

这个例子非常混乱。我想,我想说的是,背景中显然有太多的事情正在发生,这可能会让那些没有接触过低级语言的人感到非常困惑,对于那些接触过的人来说,几乎很难保持跟踪。我想第一个让我印象深刻的部分是数组构造中的类型转换——也就是将INT转换为DOUBLE(我知道,允许隐式类型转换确实使类型转换更容易,我自己也做过很多次,我肯定)。第二,首先是double的使用(是的,我知道double是“默认的”,但是我已经被浮点数学困扰过几次了,每当我看到它时,我都会有点紧张,当我不得不使用它时,我讨厌它)。最后,我不喜欢C#允许你不明确地表示一个double是一个double(
double double value = 0.2;

double double value = 0.2d相同;
);我认为强制这种显式符号应该是默认的,而不是相反。-即

double this is notreallyadoublevar = 50/100;
是的,这个例子产生了“漂亮的代码”,但我想我只是用紧张的眼神看着它。

kdub 发表于 2016-1-12 09:03:39


嗨,John,C#6中的
String Interpolation
更改处理字符串格式和连接的功能。
如果您将此代码与c#6之前所需的代码进行比较,差异很大。

kdub 发表于 2016-1-12 18:36:06

>它是双打。
这至少是好的,但它仍然没有正确的答案。
简短的回答是,我完全支持语法糖,但我也希望保持良好的平衡。我认为程序员的明确含义会被提醒,“这个数字实际上是双精度/小数”。...但我明白你的观点。没有太多的动力来做我的方式。
嗯,那也很好。琴弦是屁股上的疼痛。

JohnK 发表于 2016-1-12 18:42:00

是的,这是正确的。编译器完全按照我们的要求做了,在右边:用50除以100。两个数字都是整数,所以结果是向下舍入的整数。在左边,将整数结果强制转换为双精度值,以适应声明的存储类型。要获得“真实”的结果,我们必须执行如下操作:    double thisisreadoublevar = 50/(double)100;。
控制台,WriteLine(thisisreadoublevar);。

kdub 发表于 2016-1-12 18:50:58

你必须使用显式强制转换?!这太愚蠢了。当我明天可以访问编译器时,我将使用它。...显然50d /100d工作,对吗?
抱歉,在我的手机上输入这个。

JohnK 发表于 2016-1-12 19:03:49


是的,50/100d
和50/100.0
和50.0/100
//-----
https://msdn.microsoft.com/en-us/library/3b1ff23f.aspx

kdub 发表于 2016-1-12 19:09:06

他们说浮动和加倍;十进制呢?
十进制变量 = 50 / 100;
对不起,最后一个问题。

JohnK 发表于 2016-1-12 19:20:16


很高兴帮助约翰
问候,
页: [1]
查看完整版本: 你会喜欢C#6:字符串插值