为什么我总是得到这个字母?'在int和char之间转换时?

时间:2017-01-24 00:09:06

标签: c# char int

我正在使用Microsoft Visual C#:

Console.Write((char)((int)sentence[i] + random.Next(2) == 0 ? 1 : -1));

我正在尝试Console.Write我在句子[i]的当前索引中的char,但是随机获取上面或下面的char。 但是,相反,我总是得到char'?'。 为什么呢?

1 个答案:

答案 0 :(得分:1)

您遇到了运营订单问题。尝试添加括号:

Console.Write((char)((int)sentence[i] + (random.Next(2) == 0 ? 1 : -1)));

没有括号,它正在做:

(句子[i] + random.Next(2))== 0? 1:-1

...你可以看到总是导致1或-1。给定ASCII字符范围,几乎肯定会导致-1,这显然不是可打印的字符,因此?输出。