两者(如果有的话)之间有什么区别(相对于.Net)?
两者(如果有的话)之间有什么区别(相对于.Net)?
Answers:
取决于平台。在Windows上,它实际上是“ \ r \ n”。
从MSDN:
对于非Unix平台,包含“ \ r \ n”的字符串,对于Unix平台,包含“ \ n”的字符串。
Environment.NewLine
上,\r\n
但\n
也被称为“换行”。他们为什么不以后者更为知名的名称将其称为“换行”,以消除混乱?他们也可以使用\l
。
Environment.NewLine
从源代码的确切实现:
.NET 4.6.1中的实现:
/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the given
** platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
get {
Contract.Ensures(Contract.Result<String>() != null);
return "\r\n";
}
}
.NET Core中的实现:
/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the
** given platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
get {
Contract.Ensures(Contract.Result() != null);
#if !PLATFORM_UNIX
return "\r\n";
#else
return "\n";
#endif // !PLATFORM_UNIX
}
}
来源(在中System.Private.CoreLib
)
public static string NewLine => "\r\n";
来源(在中System.Runtime.Extensions
)
如其他人所述,Environment.NewLine
返回平台特定的字符串以开始新行,该字符串应为:
"\r\n"
(\ u000D \ u000A)对于Windows"\n"
(\ u000A)对于Unix"\r"
(\ u000D)对于Mac(如果存在这种实现)请注意,在写入控制台时,并非严格要求Environment.NewLine。"\n"
如果需要,控制台流将转换为适当的换行序列。
\n