怎么样在C# 中实现类似于vb中的 Chr 或 Chrw 函数,并且能把中文正确转换出来?如:chr("-16965")="交" ,chr("-11561")="易"

解决方案 »

  1.   

    System.Text.Encoding.Default.GetString( byte[] )
      

  2.   

    or 
    Microsoft.VisualBasic.Strings.Chr()
    Microsoft.VisualBasic.Strings.ChrW()
      

  3.   

    兄弟,我的是vs.net2003,会有出错提示:类型或命名空间名称“Strings”在类或命名空间“Microsoft.VisualBasic”中不存在(是否缺少程序集引用?)
      

  4.   

    反编译vb的 Chr Chrw public static char Chr(int CharCode)
    {
          char ch1;
          if ((CharCode < -32768) || (CharCode > 0xffff))
          {
                throw new ArgumentException(Utils.GetResourceString("Argument_RangeTwoBytes1", new string[] { "CharCode" }));
          }
          if ((CharCode >= 0) && (CharCode <= 0x7f))
          {
                return Convert.ToChar(CharCode);
          }
          try
          {
                int num1;
                Encoding encoding1 = Encoding.GetEncoding(Utils.GetLocaleCodePage());
                if (encoding1.IsSingleByte && ((CharCode < 0) || (CharCode > 0xff)))
                {
                      throw ExceptionUtils.VbMakeException(5);
                }
                char[] chArray1 = new char[2];
                byte[] buffer1 = new byte[2];
                Decoder decoder1 = encoding1.GetDecoder();
                if ((CharCode >= 0) && (CharCode <= 0xff))
                {
                      buffer1[0] = (byte) (CharCode & 0xff);
                      num1 = decoder1.GetChars(buffer1, 0, 1, chArray1, 0);
                }
                else
                {
                      buffer1[0] = (byte) ((CharCode & 0xff00) >> 8);
                      buffer1[1] = (byte) (CharCode & 0xff);
                      num1 = decoder1.GetChars(buffer1, 0, 2, chArray1, 0);
                }
                ch1 = chArray1[0];
          }
          catch (Exception exception1)
          {
                throw exception1;
          }
          return ch1;
    }public static char ChrW(int CharCode)
    {
          if ((CharCode < -32768) || (CharCode > 0xffff))
          {
                throw new ArgumentException(Utils.GetResourceString("Argument_RangeTwoBytes1", new string[] { "CharCode" }));
          }
          return Convert.ToChar((int) (CharCode & 0xffff));
    }
      

  5.   

    添加
    Microsoft.Visual Basic .Net Runtime 引用
      

  6.   

    原来添加Microsoft.VisualBasic引用就可以了,谢谢!
      

  7.   

    如果直接用VB的,要引用Microsoft.VisualBasic.dll