What is the difference between two, if any (with respect to .Net)?
7 Answers
Depends on the platform. On Windows it is actually "\r\n".
From MSDN:
A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.
3 Comments
Environment.NewLine is \r\n but \n is also called "new line". Why didn't they just call the latter by its more well-known name "line feed" and cut out the confusion? They could have used \l also.Exact implementation of Environment.NewLine from the source code:
The implementation in .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"; } } The implementation in .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 } } source (in System.Private.CoreLib)
public static string NewLine => "\r\n"; source (in System.Runtime.Extensions)
2 Comments
As others have mentioned, Environment.NewLine returns a platform-specific string for beginning a new line, which should be:
"\r\n"(\u000D\u000A) for Windows"\n"(\u000A) for Unix"\r"(\u000D) for Mac (if such implementation existed)
Note that when writing to the console, Environment.NewLine is not strictly necessary. The console stream will translate "\n" to the appropriate new-line sequence, if necessary.
6 Comments
\nEnvironment.NewLine will return the newline character for the corresponding platform in which your code is running
you will find this very useful when you deploy your code in linux on the Mono framework
Comments
From the docs ...
A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.