port.WriteLine(“AT”)之间有区别吗?和port.Write(“AT”+ Environment.NewLine);

时间:2012-07-20 06:42:45

标签: c# at-command

想知道两者之间是否存在差异。解释将不胜感激..

2 个答案:

答案 0 :(得分:2)

的WriteLine()

  

默认行终止符是一个字符串,其值为一个回车符   返回后跟换行符(C#中的“\ r \ n”,或Visual中的vbCrLf)   碱性)。

Environment.NewLine

  

对于非Unix平台或字符串包含“\ r \ n”的字符串   包含Unix平台的“\ n”。

答案 1 :(得分:1)

结果相同,但代码不同。

    protected char[] CoreNewLine = new char[2]
    {
      '\r',
      '\n'
    };    
    public virtual void WriteLine(string value)
        {
          if (value == null)
          {
            this.WriteLine();
          }
          else
          {
            int length1 = value.Length;
            int length2 = this.CoreNewLine.Length;
            char[] chArray = new char[length1 + length2];
            value.CopyTo(0, chArray, 0, length1);
            if (length2 == 2)
            {
              chArray[length1] = this.CoreNewLine[0];
              chArray[length1 + 1] = this.CoreNewLine[1];
            }
            else if (length2 == 1)
              chArray[length1] = this.CoreNewLine[0];
            else
              Buffer.InternalBlockCopy((Array) this.CoreNewLine, 0, (Array) chArray, length1 * 2, length2 * 2);
            this.Write(chArray, 0, length1 + length2);
          }
        }