Quelle est la différence entre deux, le cas échéant (par rapport à .Net)?Différence entre " n" et Environment.NewLine
Répondre
Dépend de la plate-forme. Sous Windows, il s'agit en fait de "\ r \ n".
De MSDN:
Une chaîne contenant "\ r \ n" pour les plates-formes non-Unix, ou une chaîne contenant "\ n" pour les plates-formes Unix.
Environment.NewLine donnera "\ r \ n" lorsqu'il est exécuté sous Windows. Si vous générez des chaînes pour des environnements basés sur Unix, vous ne voulez pas le "\ r".
Environment.NewLine
renverra le caractère de nouvelle ligne pour la plate-forme correspondante dans laquelle votre code est en cours d'exécution
vous trouverez cela très utile lorsque vous déployez votre code linux sur le Mono cadre
Comme d'autres l'ont mentionné, Environment.NewLine
retourne une chaîne spécifique à la plateforme pour commencer une nouvelle ligne, qui devrait être:
"\r\n"
(\ u000D \ u000A) pour Windows"\n"
(\ u000A) pour Unix"\r"
(\ u000D) pour Mac (si une telle mise en œuvre existait)
Notez que lors de l'écriture à la console, Environment.NewLine est pas strictement nécessaire. Le flux de la console convertira "\n"
en séquence de nouvelle ligne appropriée, si nécessaire.
L'implémentation Mac existe. Juste Mono. Fonctionne sur n'importe quoi. – Dykam
Juste une note, ce serait vieux macs; les nouveaux macs (OSX) utilisent '\ n' –
@Dykam, ouais mais ça tourne très lentement comme sur mon HP48gx – cod3monk3y
Vous pourriez avoir des problèmes lorsque vous essayez d'afficher un message multiligne séparé par "\ r \ n".
Il est toujours une bonne pratique de faire les choses d'une manière standard et utiliser Environment.NewLine
mise en œuvre exacte de Environment.NewLine
à partir du code source:
La mise en œuvre dans .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";
}
}
La mise en œuvre dans.NET de base:
/*===================================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 (en System.Private.CoreLib
)
public static string NewLine => "\r\n";
source (en System.Runtime.Extensions
)
Quelqu'un d'autre attendait-il un code aussi simple? : D – developerbmw
Le code source ne ment jamais :) – aloisdg
ouais :) Pour une raison quelconque, je m'attendais à ce que l'implémentation de .NET soit une énorme fonction compliquée – developerbmw
- 1. Différence entre sqlreader et
- 2. Différence entre -Wconversion entre gcc et g ++
- 3. Différence entre DECLARE_DYNAMIC et DECLARE_DYNCREATE?
- 4. Différence entre JNLP et JavaFX
- 5. Différence entre Session et HttpContext.Current.Session
- 6. Différence entre HTTPContextBase.User et MembershipUser
- 7. Différence entre FileStreamResult et FilePathResult?
- 8. Différence entre Delegate.Invoke et délégué()
- 9. Différence entre scanf() et fgets()
- 10. Différence entre DataGrid et GridView
- 11. Différence entre "__method__" et "méthode"
- 12. Différence entre BOOST_CHECK_CLOSE et BOOST_CHECK_CLOSE_FRACTION?
- 13. Différence entre admin.site.root et admin.site.urls
- 14. Différence entre Roles.GetRolesForUser et Roles.Provider.GetRolesForUser?
- 15. Différence entre val() et text()
- 16. Différence entre control.Attributes.Add et control.Attributes []
- 17. Différence entre value et itemvalue
- 18. Différence entre Send.nc et SendMsg.nc
- 19. Différence entre System.Web.Cache et HTTPContext.Curent.Cache
- 20. Différence entre feature et plugin.xml?
- 21. Différence entre sp_spaceused et DataLength SQL Server
- 22. Différence entre l'exception d'application et l'exception système
- 23. Différence entre iCalendar (.ics) et vCalendar (.vcs)
- 24. Objective-C: différence entre id et void *
- 25. Différence entre un objet et un hachage?
- 26. Différence entre Gridview et Datagrid dans Asp.net
- 27. Différence C++ entre 0 et 0,0
- 28. Différence entre XMLReader.Create() et new XMLTextReader()
- 29. Différence entre type (obj) et obj .__ classe__
- 30. Différence entre `/ dev/ttyS0` et`/dev/ttys0`?
Quelle plate-forme UNIX ne fonctionne .NET à Microsoft mis dans son doc? (Je veux dire, une partie de Mono.) – Jack
@Jack Vous pourriez écrire dans un fichier qui sera ouvert dans la plate-forme Unix. Ou envoyer du texte dans un paquet qui sera reçu par une plate-forme Unix. Et dans quelques mois .net fonctionnera sur les plateformes Unix. Il a déjà commencé –