在C#中添加一个整数到字符上以使其ASCII值增加(就像在C++中一样)

20

在C++中,这段代码可以工作:

char c='a'; 
int r=2;
c+=r;

这将会和 c='c' 做同样的事情。如何在c#中做到相同的效果?


可能是字符的增量的重复问题。 - Jamie Dixon
也许你需要某种类型的转换? - BigMike
1个回答

27

在将它添加到 c 之前,只需将其转换为 char

char c='a'; 
int r=2;
c += (char) r;

@meyou:只需确保 c 的初始值不是 yz,然后它就会递增到垃圾字符。 - Nikhil Agrawal
2
嗯,我想知道为什么 char c = 'a' + (char)2; 会导致编译错误? - Andy
4
你可以使用 char c = (char)('a' + 2); 来实现。 - juergen d
@Andy 发生这种情况的原因是,对字节大小整数的任何操作都有隐式转换为 int - 例如,'a' + 2 实际上是 (int)'a' + 2,因此您需要将其强制转换回来。如果我没记错的话,这是 C++ 向后兼容性的一个问题,但是关于这个问题有很多讨论:https://dev59.com/n3NA5IYBdhLWcg3wfN6O - Rob Church

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接