【发布时间】:2019-08-22 11:18:08
【问题描述】:
demo示例代码:
public void ReverseString(char[] s) {
for(int i = 0, j = s.Length-1; i < j; i++, j--){
//s[i] = s[i]+s[j]; //<-- error
s[i] += s[j]; //<-- ok
s[j] = (char)(s[i] - s[j]); //<-- cast
s[i] -= s[j];
}
}
如上面的代码sn-p,而s[i] += s[j] 没有任何错误。其等价语句s[i] = s[i]+s[j]会报错如下
错误 CS0266:无法将类型“int”隐式转换为“char”。存在显式转换(您是否缺少演员表?
我的问题是它们有什么区别以及为什么。 提前致谢。
【问题讨论】:
-
Eric Lippert 的Compund assignment post 很好地解释了这一点。 (如果您想直接跳到相关位,请在页面上搜索
explicit。该段起...)
标签: c#