2009-10-08 9 views
25

Czy istnieje sposób, aby dowiedzieć się, co .NET używa jako "domyślny terminator linii"? Na przykład dokumentacja StringBuilder.AppendLine (String) mówi "Dołącza kopię określonego ciągu, a następnie domyślny terminator linii ...". Kilka klas związanych z tekstem w .NET odnosi się do tej samej koncepcji..NET "domyślny terminator linii"?

Czy istnieje sposób programowo dowiedzieć się, co jest używane jako terminator linii (w czasie wykonywania)? Czy można bezpiecznie założyć, że zawsze będzie "\ r \ n" dla komputera z systemem Windows? Wolałbym nie wpisywać tej wartości do kodu, jeśli mogę tego uniknąć.

Odpowiedz

40

StringBuilder.AppendLine użyje Environment.NewLine, która jest "\r\n" dla platform nie-Uniksowych i "\n" dla platform Unix.

Zawsze będzie to "\r\n" dla komputera z systemem Windows, ale można użyć wartości Environment.NewLine zamiast wartości zakodowanej na stałe.

dzięki @Guffa weryfikowania tej

+1

Ah perfect, wiedziałem, że musi być coś takiego. Dzięki! –

+1

Chciałbym, aby był sposób na zmianę domyślnego terminatora linii dla konkretnego obiektu StringBuilder. – Alex

17

Jest to kod z metody StringBuilder.AppendLine(string) (przy użyciu .NET Reflector):

[ComVisible(false)] 
public StringBuilder AppendLine(string value) 
{ 
    this.Append(value); 
    return this.Append(Environment.NewLine); 
} 

Jak widać, to rzeczywiście za pomocą właściwości Environment.NewLine.

2

Na Macu znak nowej linii był "\ r", dopóki nie oparł swojego systemu operacyjnego na systemie Linux. Teraz jest "\ n".

+3

Tylko niewielki wybór: dzisiejszy system Mac OS jest oparty na systemie UNIX, a nie na systemie Linux. Pierwsza wersja systemu UNIX pojawiła się na początku 2001 roku, mniej więcej rok wcześniej .NET. Więc notacja "r" nie była istotna przez jakiś czas. –

Powiązane problemy