想知道两者是否有区别。解释,将不胜感激..port.WriteLine(“AT”);和port.Write(“AT”+ Environment.NewLine);
1
A
回答
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);
}
}
等于在windows上,但在unix平台上可能不相等。 – ForEveR 2012-07-20 07:41:16