2012-07-20 60 views

回答

2

的WriteLine()

默认行结束是一个字符串,它的值是一个回车 返回后跟一个换行(“\ r \ n”个C#,或vbCrLf在Visual Basic中)。

Environment.NewLine

一个包含字符串 “\ r \ n” 表示非Unix平台,或一串 含有 “\ n” 表示Unix平台。

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); 
      } 
     } 
+0

等于在windows上,但在unix平台上可能不相等。 – ForEveR 2012-07-20 07:41:16