.Net과 관련하여 둘 사이의 차이점은 무엇입니까?
답변
플랫폼에 따라 다릅니다. Windows에서는 실제로 “\ r \ n”입니다.
MSDN에서 :
Unix 이외의 플랫폼의 경우 “\ r \ n”이 포함 된 문자열 또는 Unix 플랫폼의 경우 “\ n”이 포함 된 문자열.
답변
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"
Windows 용 (\ u000D \ u000A)"\n"
유닉스 용 (\ u000A)"\r"
Mac 용 (\ u000D) (구현 된 경우)
콘솔에 쓸 때 Environment.NewLine이 반드시 필요한 것은 아닙니다. "\n"
필요한 경우 콘솔 스트림은 적절한 개행 순서로 변환 됩니다.
답변
답변
로부터 문서 …
Unix 이외의 플랫폼의 경우 “\ r \ n”이 포함 된 문자열 또는 Unix 플랫폼의 경우 “\ n”이 포함 된 문자열.
답변
Environment.NewLine은 Windows에서 실행될 때 “\ r \ n”을 제공합니다. Unix 기반 환경을위한 문자열을 생성하는 경우 “\ r”을 원하지 않습니다.
답변
“\ r \ n”으로 구분 된 여러 줄 메시지를 표시하려고하면 문제가 발생할 수 있습니다.
항상 표준 방식으로 작업을 수행하고 Environment를 사용하는 것이 좋습니다.