这是我的代码:
this.Invoke(new MethodInvoker(delegate {
label13.Text = e.failedUrls + doneWebPages.ToString();
}));
Run Code Online (Sandbox Code Playgroud)
结果是:01,02,03,04 ..... 09,111
当e.failedUrls现在是例如1并且doneWebPages是22时所以在label13中显示我,总和23我看到122.
怎么了 ?
你正在添加int一个string1.语言的规则将导致编译器发出的指令转换成2的int一个string,因此你看到string串联.从而
如果e.failedUrls是1,你说的,doneWebPages是22,也正如你所说,那么
e.failedUrls + doneWebPages.ToString()
Run Code Online (Sandbox Code Playgroud)
会导致
1.ToString() + "22"
Run Code Online (Sandbox Code Playgroud)
这将导致
"1" + "22"
Run Code Online (Sandbox Code Playgroud)
这是"122",正如你看到的.如果你想要整数运算,你想要的是:
label13.Text = (e.failedUrls + doneWebPages).ToString();
Run Code Online (Sandbox Code Playgroud)
也就是说,首先添加数字,然后调用ToString结果.
1:我认为这e.failedUrls是一个int因为你似乎认为它是一个int.显然,doneWebPages.ToString()是一个string,但我认为这doneWebPages是一个, int因为你似乎也认为它是一个int.
2:有一个操作者+所定义的String具有参数+(object x, string y).语义+是
x + y -> x != null ? (x.ToString() ?? "") + y : "" + y;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |