与类型转换混淆!

已加入
2017年1月16日
留言内容
75
地点
英国
编程经验
1-3
因此,我一直在关注这本书,没关系,然后显示了一些转换的示例,我感到困惑。

C#:
ushort destinationVar;char sourceVar = 'a';
destinationVar = sourceVar;
WriteLine($"sourceVar val: {sourceVar}");
WriteLine($"destinationVar val: {destinationVar}");

因此,我们正在相互之间转换一些值,然后将值打印到控制台,但它表示这是输出:

C#:
sourceVar val: a
destinationVar val: 97

我不太明白。我们从哪里得到97的?如果我们要转换sourceVar的值,我们不会失去它的价值吗?他仍然如何设法打印其初始值?


如果我能得到解释,那就太好了。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我们从哪里得到97的?
97是字符“ a”的Unicode点值以及ASCII码。计算机中的所有福彩12选5走势图均以字节存储,然后由计算机及其软件根据福彩12选5走势图类型解释这些字节。当您存储字符福彩12选5走势图时,它会以字节的形式存储,这些字节代表这些字符的ASCII或Unicode值。在这种情况下,数字97实际上存储在支持'sourceVar'变量的内存中,但是,由于您的变量的类型为'char',因此它将被解释为字符而不是数字。但是,一旦将该值存储在'destinationVar'变量中,它将被解释为数字,因为该变量的类型为'ushort',这是一种数字类型。
如果我们要转换sourceVar的值,我们不会失去它的价值吗?他仍然如何设法打印其初始值?
这两个变量的值存储在两个不同的存储位置中。来自变量的赋值对该变量的影响为零。执行分配后,“ sourceVar”仍包含其内容。另一方面,“ destinationVar”包含当时“ sourceVar”中内容的副本。
 
最佳 底部