1

これが私の機能

public string getMD5hash(string input)
{
    //create a new instance of MD5 object
    MD5 md5Hasher = MD5.Create(); 
    //convert the input value to byte array
    byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
    StringBuilder sBuilder = new StringBuilder();

    for (int i = 0; data.Length -1 ; i++)
    {
        sBuilder.Append(data[i].ToString("x2"));
    }
    return sBuilder.ToString();
}

data.Lengthタイプ「int」を「bool」に暗黙的に変換できないというエラーが発生します

4

4 に答える 4

3

あなたはおそらくするつもりでした:

for (int i = 0; i <= data.Length-1; i++) { ... }

または同等のもの:

for (int i = 0; i < data.Length; i++) { ... }
于 2012-06-18T21:57:24.093 に答える
1

問題はforループにあります。第2項は条件である必要があります。そこにあるものは整数に評価されます。したがって、発生しているエラー。

于 2012-06-18T21:57:35.033 に答える
1

あなたはステートメントのためにこれが欲しいです。

 for (int i = 0; i < data.Length; i++) {

あなたはdata.Length-1終了条件として持っていました。これは実際には整数であり、終了条件はブール値である必要があります。

この形式のループも使用できることに注意してください。これは、より単純で、うまく機能します。

        foreach (byte b in data) {
            sBuilder.Append(b.ToString("x2"));
        }
于 2012-06-18T22:03:47.827 に答える