Jaka jest różnica między dwoma, jeśli w ogóle (w odniesieniu do .Net)?
c#
.net
cross-platform
Prerak K
źródło
źródło
Environment.NewLine
jest\r\n
, ale\n
jest również nazywany „nowa linia”. Dlaczego nie nazwali tego drugiego bardziej znaną nazwą „line feed” i nie rozwiewali zamieszania? Przydałyby się\l
również.Dokładna implementacja
Environment.NewLine
z kodu źródłowego:Implementacja w .NET 4.6.1:
źródło
Implementacja w .NET Core:
źródło (w
System.Private.CoreLib
)źródło (w
System.Runtime.Extensions
)źródło
Jak wspomnieli inni,
Environment.NewLine
zwraca specyficzny dla platformy ciąg znaków dla rozpoczęcia nowego wiersza, który powinien być:"\r\n"
(\ u000D \ u000A) dla systemu Windows"\n"
(\ u000A) dla Uniksa"\r"
(\ u000D) dla komputerów Mac (jeśli taka implementacja istniała)Pamiętaj, że pisząc do konsoli, Environment.NewLine nie jest absolutnie konieczne. W
"\n"
razie potrzeby strumień konsoli przełoży się na odpowiednią sekwencję nowego wiersza.źródło
\n
Environment.NewLine
zwróci znak nowego wiersza dla odpowiedniej platformy, na której działa Twój kodznajdziesz to bardzo przydatne, gdy wdrożyć swój kod w systemie Linux na Mono ram
źródło
Z dokumentów ...
źródło
Environment.NewLine da „\ r \ n” po uruchomieniu w systemie Windows. Jeśli generujesz ciągi dla środowisk opartych na Uniksie, nie chcesz „\ r”.
źródło
Możesz wpaść w kłopoty, gdy próbujesz wyświetlić wieloliniowy komunikat oddzielony „\ r \ n”.
Dobrą praktyką jest robienie rzeczy w standardowy sposób i korzystanie z Environment.NewLine
źródło