String name = " maisam is my name ";
char[] arr = name.toCharArray();
for (int i = 0; i < arr.length; i++) {
arr[i] += 100;
}
但是在c#中你需要在添加值时提及(char)
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] += (char) 100;
}
我在Java中尝试过两种方式,工作得很好,没有错误,但在c#中它给了我一个错误,为什么会这样?我到处搜索都没有找到任何解释!
答案 0 :(得分:1)
这更多的是关于幕后发生的事情而不是语法差异。你在Java中使用与在C#中相同的方式,但是你不需要在这段Java代码中。 在Java中,它会自动将int转换为char类型。 但是C#的工作方式不同,你必须抛出值。 似乎C#比Java更强类型。
答案 1 :(得分:1)
这应该有效。 c#隐式地将char转换为int,但不将int转换为char,因此在分配给char数组之前必须将添加的int值转换为char。
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] = (char)(arr[i] + 100);
}
编辑:代码arr[i] += (char)100;
也可以。上面的代码只是对相同代码的详细说明。
答案 2 :(得分:1)