C# 4.0 当我使用下面的代码删除用户名和密码时,我得到一个错误,比如startIndex不能大于字符串的长度 公共字符串解密值(字符串strText) { 字符串DecriptedValue=“”; string string=strText.Substring(26);//此行失败 int Count=String.Length-5; string EncripEdText=string.Substring(0,计数); int TotalChar=EncripEdText.Length/2; int J=0; 对于(int i=1;i

C# 4.0 当我使用下面的代码删除用户名和密码时,我得到一个错误,比如startIndex不能大于字符串的长度 公共字符串解密值(字符串strText) { 字符串DecriptedValue=“”; string string=strText.Substring(26);//此行失败 int Count=String.Length-5; string EncripEdText=string.Substring(0,计数); int TotalChar=EncripEdText.Length/2; int J=0; 对于(int i=1;i,c#-4.0,C# 4.0,在获取子字符串之前检查参数长度: public string DecryptValue(string strText) { string DecriptedValue =""; string String = strText.Substring(26); // This line fails int Count = String.Length - 5; string EncripEdText = String.Sub

在获取子字符串之前检查参数长度:

    public string DecryptValue(string strText)
    {
        string DecriptedValue ="";
        string String = strText.Substring(26); // This line fails
        int Count = String.Length - 5;
        string EncripEdText = String.Substring(0, Count);
        int TotalChar = EncripEdText.Length / 2;
        int J = 0;

        for (int i = 1; i <= TotalChar; i++)
        {

            string EnChar = EncripEdText.Substring(J, 2);
            string Decrypt = FindPos(EnChar);
            DecriptedValue = DecriptedValue + Decrypt;
            J = J + 2;
        }
        return DecriptedValue;
    }

    public static string FindPos(string EnChar)
    {
        string StringValue = "abcdefghijklmnopqrstuvwxyz0123456789_-.*@ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        string Value = StringValue.Substring(Convert.ToInt32(EnChar), 1);
        return Value;
    }
公共字符串解密值(字符串strText)
{

如果(strText.LengthWell)大概
strText
没有26个字符…请展示一个简短但完整的程序来演示问题,并解释您在诊断错误时所做的操作,给出(非常清楚)的消息…我还强烈建议您不要将
String
用作变量名。(一般来说,变量名使用camelCase而不是PascalCase。)在其他注释的基础上,您是否试图只使用最多26个字符的strText
(以排除超过26个的其他字符)?顺便说一句,例外情况在。。。
 public string DecryptValue(string strText)
    {
        if (strText.Length<26)
        {
          MessageBox.Show("invalid argument length");
          return;
        }
        string DecriptedValue ="";
        string myString = strText.Substring(26); // This line fails
        int myCount = myString.Length - 5;
        ...
}