在.Net行业,我还是根嫩草,看到这们的转换方式,傻眼了:Convert.ToChar(tem).ToString()
为什么先要转换为Char再String?
这样不很直接吗:
Convert.ToString(tem);完整代码如下:
private string GetRamdomValidate(int len)
    {
        int num;
        int tem;
        string rtuStr = "";
        for (int i = 0; i < len; i++)
        {
            num = rm.Next();
                     //生成数字与字母组合的验证码
            if (num % 2 == 0)
                tem = num % 10 + '0'; 
            else
                tem = num % 26 + 'A'; 
                 /*用此方式会生成数字*/
            //  tem = num % 10 + '0'; 
           // tem = num % 26 + 'A';//
                 
            rtuStr +=  Convert.ToChar(tem).ToString();
        }
        return rtuStr;
    }

解决方案 »

  1.   

    一般我们会用tem.ToString();当然楼主的Convert.ToString(tem); 也可以。
      

  2.   

    我剛才去試了下。先tochar後再tostring與直接tostring結果不一樣。樓主可以寫個int型變量試一下。
    至於為什麼就沒搞清楚。
      

  3.   


    int tem = 'A';          // tem = 65tem.ToString();         // 65   -print an integer
    ((char)tem).ToString()  // A    -print a character
      

  4.   

    我想直接写成
    Convert.ToString(tem);就OK了
    至于它那样写是因为想将tem转换成字符型的
    那样只是更加的强调一些罢了吧!
      

  5.   

    楼主的方法是生成随机的验证码,通过一个随机数来生成相应的数字跟字符,要把数字跟字符一起转换成字符串
    用Convert.ToChar(tem).ToString()很合理啊。
      

  6.   

    Convert.ToInt32('A'); //65
    原因:
        在内存里,字符就是数字,所以字符和数字可以一起计算
        如果直接转换成了字符串了,那就是字符和数字一起计算出来的数字组成的字符串了
        因此要先转成字符,然后转成字符串
      

  7.   

    C# code
    int tem = 'A';          // tem = 65tem.ToString();        // 65  -print an integer
    ((char)tem).ToString()  // A    -print a character 
    这里结果是65啊,不对:
    ((char)tem).ToString()  // A    -print a character 我觉得应该这样理解:
    原因:
        在内存里,字符就是数字,所以字符和数字可以一起计算
        如果直接转换成了字符串了,那就是字符和数字一起计算出来的数字组成的字符串了
        因此要先转成字符,然后转成字符串
      

  8.   

    更正一下,以下打印的是字符。
    Console.Write(((char)tem).ToString());原因可能是这样,先用(char)tem将其转换成一个字符,
    由于这里要求返回字符串,于是用ToString()方法再将其转换成字符串类型。
    直接用tem.ToString()会被解释为数字。
    多谢各位相助!