1

我不知道发生了什么,但我1使用 get 方法将数字作为参数发送,当我调试时,我得到 0x00000001 作为结果

在此处输入图像描述

这里一切正常。他们我将 get 参数转换为 int 以删除该实体,但在接收器方法中结果有点错误?

在此处输入图像描述

我也试过了,int.Parse但同样的事情发生了。

这里发生了什么?

4

1 回答 1

4

它在什么方面是错误的?您已将“1”作为字符串传入,并且您的id变量的值为 1。无论表示为 1、0x1、00001、0x00001 还是类似的值,该数字都是相同的。这是相同的值。调试器恰好以零填充的十六进制形式向您显示它,仅此而已。

区分数据和该数据的某些文本表示非常重要,尤其是在许多情况下,同一值可能有多个文本表示。例如,考虑以下三行:

int x = 0x10;
int x = 16;
int x = 0x000010;

这些都是完全等价的。它们将值 16 存储在一个名为 的变量中x。在编译代码时,没有迹象表明您碰巧在源代码中使用了哪种数字文字形式。

于 2013-06-10T20:24:31.843 回答