2009-10-08 4 views
25

Y at-il un moyen de comprendre ce que .NET utilise comme "terminateur de ligne par défaut"? Par exemple, la documentation de StringBuilder.AppendLine (String) l'indique "Ajoute une copie de la chaîne spécifiée suivie du séparateur de ligne par défaut ...". Plusieurs classes liées au texte dans .NET font référence au même concept..NET "terminaison de ligne par défaut"?

Existe-t-il un moyen de déterminer par programme ce qui est utilisé comme terminateur de ligne (lors de l'exécution)? Ou est-il sûr de supposer que ce sera toujours "\ r \ n" pour une machine Windows? Je préfère ne pas coder cette valeur dans mon code si je peux l'éviter.

Répondre

40

StringBuilder.AppendLine utilisera Environment.NewLine, qui est "\r\n" pour les plates-formes non-Unix et "\n" pour les plates-formes Unix.

Ce sera toujours "\r\n" pour une machine Windows, mais vous pouvez utiliser Environment.NewLine au lieu d'une valeur codée en dur.

grâce à @Guffa pour vérifier cette

+1

Ah parfait, je savais qu'il devait y avoir quelque chose comme ça. Merci! –

+1

souhaite qu'il y avait un moyen de changer la terminaison de ligne par défaut pour un objet StringBuilder particulier – Alex

17

C'est le code de la méthode StringBuilder.AppendLine(string) (avec réflecteur .NET):

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

Comme vous le voyez, il est en effet en utilisant la propriété Environment.NewLine.

2

Sur Mac, le retour à la ligne était «\ r» jusqu'à ce qu'ils aient basé leur système d'exploitation sur linux. Maintenant, c'est '\ n'.

+3

Juste un petit choix: le Mac OS d'aujourd'hui est en fait basé sur UNIX, pas sur Linux. Et la première version basée sur UNIX est venue au début de 2001, environ un an avant la sortie de .NET. Donc la notation '\ r' n'a pas été pertinente pendant un certain temps. –

Questions connexes