求教关于C#两道题1.下面这段代码输出什么?为什么?
     int i=5,j=5;
     if (Object.ReferenceEquals(i,j))
          Console.WriteLine("Equal");
     else
          Console.WriteLine("Not Equal");
2.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。
拜托大家了!

解决方案 »

  1.   

    第一个问题,你自己写个程序测下子不就ok了。第二个问题:你可以使用Radom类来随机得到a-z对应的asscii码范围的数字(直接能转换为char,然后把这些字符append到你的StringBuilder,直到有10000个字符,最后使用StringBuilder.ToString()就行了
      

  2.   

    to 1
    Not Equal
    原因,i 和 j是两个不同实例。
      

  3.   

    1.Not Equal,因为装箱了2个对象了。
    2.
       char b;
       string str = "";
       Random r = new Random();
       for(int i=0;i<10000;i++)
       {
        int j = r.Next(0,26);
        b = (char)(j+97);
        str += b;
       }
       Console.WriteLine(str);
      

  4.   

    to 2
    private static string GetRandomString( int nCount );
    {
        Random myRandom = new Random((int)(DateTime.Now.Ticks));
        char[] chrBase = new char[]{'a','b','c',...,'z'};
        const int BASE_LENGTH = 26;
        string strReturn = "";
        for( int i = 0; i < nCount; i++ );
            strReturn += chrBase[myRandom.Next % BASE_LENGTH];
        return strReturn;
    }
      

  5.   

    前几天试用了一下fxcop,发现自己写的代码N多不规范
    比如for中的字符串叠加最好用StringBuilder
      

  6.   

    1.Not Equal,不同实例。
    2
                string all = "abcdefghijklmnopqrstuvwxyz";
                Random rd = new Random();            string rs = null;            for (int i = 0; i < 10000; i++)
                {
                    string c = all.Substring(rd.Next(26), 1);
                    rs += c;
                }
                Console.Write(rs.ToString());