所以我正在为一个学校项目做这个。它的小程序是在两个方向上加密一些密码,并且我从编码加密回到正常版本。它应该读取加密版本的2个字符,将它们替换为匹配的字符并将其返回到字符串。导致原始传递中的每个字符被加密版本中的2个字符替换,通常为,.
,..
或类似字符。 这里是我坚持不管我做什么,下面的异常不通过一个错误消失C#索引例外unhandeled
else
{
string target;
text = "";
password = richTextBox2.Text;
for (int i = 0; i <= password.Length; i += 2)
{
target = Convert.ToString(password[i])
+ Convert.ToString(password[i + 1]);
if (target == ",,")
{
text += "a";
}
}
richTextBox3.Text = text;
}
我不会告诉你答案,因为这对你没有任何帮助。相反,尝试使用调试器来找出发生异常的位置以及原因。发生异常时检查'i'的值。这个值看起来正确吗?这是一个容易解决的问题。如果您学习使用调试器,您将能够快速解决所有这些问题。 – usr 2015-03-31 20:48:23
你也可以使用'Substring'而不是'Convert.ToString()'来简化你的代码。例如,你的'target'的赋值可以写成:'target = password.Substring(i,2);' – 2015-03-31 21:00:45