Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ok, ça marche, merci pour l'info !
En fait, jusqu'à présent je faisais comme ça et ça fonctionnait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 string s = "bla bla bla bla bla " + "bla bla bla bla bla " + "bla bla bla bla bla";
Est-ce que tu peux m'expliquer ce que tu entends par "créer 3 variables" ?
En PHP par exemple, on concatène les chaînes de la même façon que ce que j'ai montré précédemment, à savoir :
ou encore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = "bla bla bla " + $var + " bla bla bla";
voir même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $result = "bla bla bla bla bla bla bla bla bla";
et sans oublier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $result = "bla bla bla bla bla bla" + $var + "bla bla bla";
Bref, tout ça pour dire que je ne vois pas trop comment en écrivant sur X lignes on crée X variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $result = "bla bla bla bla bla bla $var bla bla bla";
Pour en revenir au C#, j'ai trouvé ça et ils donnent justement un exemple de concaténation sur plusieurs lignes avec des + ET commençant par @.
En fait ce n'est pas 3 variables, mais 3 instances de chaine.
A chaque fois que tu fais une concaténation, ça crée une nouvelle instance avec le contenu des 2 chaines. Si tu fais 10000 concaténations dans une boucle, ça crée 10000 instances... or créer des instances d'objet est une opération relativement lourde, donc ça diminue les performances. Sans compter que la plupart des chaines "intermédiaires" ne sont plus utilisées, ce qui donne plein de boulot au garbage collector
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
ok, alors en fait, ce que veut dire Keihilin, c'est qu'en .net, les chaines de caracteres sont immuables
ce que ca veut dire, c'est que si tu fais :
en memoire, ca va te prendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part string toto = "t" + "o" + "t" + "o";
une valeur chaine, de taille 1 : "t"
une valeur chaine, de taille 1 : "o"
une valeur chaine, de taille 1 : "t"
une valeur chaine, de taille 1 : "o"
une valeur chaine, de taille 4 : "toto"
(bon, apres, c'est de la theorie, je crois que le compilateur sait concatener tout seul un exemple simple comme ca)
Sur peu de concatenations, ca coute tres peu, par contre, si tu iteres une collection de string que tu concatenes, tu va te prendre un cout de perf...
--------
arf, grille
Par contre, apres verif, le bout de code bete d'au-dessus donne bien:
apres compilation
Code : Sélectionner tout - Visualiser dans une fenêtre à part L_0000: ldstr "toto"
Ah OK, c'est compris !
Voilà des explications claires !![]()
Exact, et c'est officiel maintenant
Voir un article récent sur MSDN
http://msdn.microsoft.com/en-us/library/ms228504.aspx
Partager