有没有那位大哥大姐,能不能帮我解释一下下这个函数的意思,加色部分能不能多加详尽一些,非常感谢了   public static string OutString(string instr, int WordCount)
    {
        byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr);
        if (mybyte.Length > WordCount)
        {
            outstr = new StringBuilder();
            for (int i = 0; i < instr.Length; i++)
            {
                byte[] tempByte = System.Text.Encoding.Default.GetBytes(outstr.ToString());                if (tempByte.Length < WordCount * 2)
                {
                    outstr.Append(instr.Substring(i, 1));
                }
                else
                {
                    break;
                }
            }
            return outstr.ToString();
        }
        else
        {
            return instr;
        }

解决方案 »

  1.   

    byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr);    //用默认字符集将字符串读到myByte字节数组中byte[] tempByte = System.Text.Encoding.Default.GetBytes(outstr.ToString());  //诨名类似,也是将outstr读到tempByte字节数组中。
      

  2.   

      public static string OutString(string instr, int WordCount) //instr,WordCount传的两个参数
        { 
            byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr); //这个其实就是转码将String转为byte数组
            if (mybyte.Length > WordCount) //判断byte的长度,如果大于传进来的整数执行
            { 
                outstr = new StringBuilder(); //不知道你的outstr在那李定义的
                for (int i = 0; i < instr.Length; i++) 
                { 
                    byte[] tempByte = System.Text.Encoding.Default.GetBytes(outstr.ToString());   //又是转码
                    if (tempByte.Length < WordCount * 2) //又一个if判断如果byte数组长度小于传进来参数的两倍执行下面的if
                    { 
                        outstr.Append(instr.Substring(i, 1)); //这里是追加到outstr,但是将instr进行了切割之后追加的
                    } 
                    else 
                    { 
                        break; //终止
                    } 
                } 
                return outstr.ToString(); //返回outstr
            } 
            else 
            { 
                return instr; //如果第一次转码的byte长度小于wordcount则,返回instr
            } 
        }
      

  3.   

    “byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr); ”
    获取instrASCII码
    假如instr为1的话
    mybyte 就是49
      

  4.   


    byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr); //用的是默认编码
      

  5.   

    请问,.Encoding,有何用处,可不可以直接赋值啊
      

  6.   

    谢谢给位,搞清楚了,jijunwu写的很详尽,非常感谢,热心的朋友都很感谢。我去结贴了
      

  7.   

    加色的那两句是转换格式,C#里string与byte之间的转换就是要这样转换的.
      

  8.   

    非常感谢大家,尤其是jijunwu写的很详细,非常感谢了啊!结贴去了
      

  9.   

    byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr); //获取输入字符串 字节 字节是根据系统的编码转换为字节数据 byte[] tempByte = System.Text.Encoding.Default.GetBytes(outstr.ToString()); 
    //获取输入的字节 字节是根据系统的编码转换为字节数据 
      

  10.   

     byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr); //将String转为byte数组
    byte[] mybyte = System.Text.Encoding.Default.GetBytes(instr);    //用默认字符集将字符串读到myByte字节数组中byte[] tempByte = System.Text.Encoding.Default.GetBytes(outstr.ToString());  //诨名类似,也是将outstr读到tempByte字节数组中。