Am fost difuzate prin intermediul unor C# exerciții într-o carte, și am întâlnit și un exemplu care ma lovit. Direct din carte, linia de ieșire arată astfel:
Console.WriteLine($"\n\tYour result is {result}.");
Acum eu, ca daca iese, codul funcționează și la dublu rezultat arată cum era de așteptat. Cu toate acestea, nu înțelege de ce $ e acolo, în fața șirului, am decis să-l eliminați, și acum cod ieșiri numele de matrice {rezultat}
în loc de conținut. Cartea nu't explica de ce $ e, din păcate.
Am fost curățat VB 2015 ajutor și Google, în ceea ce privește șirul de formatare și Console.WriteLine supraîncărcarea metodelor. Eu nu văd nimic care explică de ce este ceea ce este. Orice sfat ar fi de apreciat.
L's, noua caracteristică în C# 6 numit Interpolate Siruri de caractere
.
Cel mai simplu mod de a înțelege este: o interpolate șir de expresie creează un șir de înlocuirea conținea expresii cu ToString reprezentări de expresii' rezultate.
Pentru mai multe detalii despre acest lucru, vă rugăm să aruncați o privire la MSDN.
Acum, cred că un pic mai mult despre asta. De ce această caracteristică este de mare?
De exemplu, aveți de clasă "Punct":
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
Crea 2 cazuri:
var p1 = new Point { X = 5, Y = 10 };
var p2 = new Point {X = 7, Y = 3};
Acum, doriți să ieșire la ecran. Cele 2 moduri pe care le folosesc de obicei:
Console.WriteLine("The area of interest is bounded by (" + p1.X + "," + p1.Y + ") and (" + p2.X + "," + p2.Y + ")");
După cum puteți vedea, concatenarea string ca acest lucru face codul greu de citit și predispusă la erori. Puteți folosi sfoara.Format()` pentru a face mai frumos:
Console.WriteLine(string.Format("The area of interest is bounded by({0},{1}) and ({2},{3})", p1.X, p1.Y, p2.X, p2.Y));
Acest lucru creează o nouă problemă:
Pentru aceste motive, ar trebui să utilizați noua caracteristică:
Console.WriteLine($"The area of interest is bounded by ({p1.X},{p1.Y}) and ({p2.X},{p2.Y})");
Compilatorul acum menține substituenți pentru tine astfel încât să nu trebuie să vă faceți griji despre indexarea drept argument pentru că pur și simplu puneți-l acolo în șir.
Pentru întregul post, vă rugăm să citiți blog.
este un concept care limbaje cum ar fi Perl au avut pentru un timp destul, și acum vom obține această capacitate în C# precum. În Șirul de Interpolare, am pur și simplu prefix șir cu un $ (mai mult ca noi folosim @ pentru verbatim siruri de caractere). Apoi, pur și simplu ne înconjoară expresii vrem să interpola cu acolade (de exemplu, { și }):
Se pare ca Șir de caractere.Format() substituenți, dar în loc de un indice, este expresia însăși în interiorul acolade. În fapt, aceasta nu ar trebui să fie o surpriză faptul că se pare ca Șir de caractere.Format() pentru că asta e tot ce este – sintactice de zahăr care compilatorul tratează ca Șir de caractere.Format() în spatele scenei.
O mare parte este, compilatorul acum menține substituenți pentru tine astfel încât să nu trebuie să vă faceți griji despre indexarea drept argument pentru că pur și simplu puneți-l acolo în șir.
C# șir de interpolare este o metodă de concatenarea,formatarea și manipularea siruri de caractere. Această caracteristică a fost introdus în C# 6.0. Folosind șir de interpolare, putem folosi obiecte și expresii ca o parte din șir de interpolare operația.
Sintaxa șir de interpolare începe cu o '$' simbol și expresii sunt definite într-un suport {} folosind următoarea sintaxă.
{<interpolatedExpression>[,<alignment>][:<formatString>]}
În cazul în care:
Următorul exemplu de cod concateneaza un șir în care un obiect, autor ca o parte din șirul de interpolare.
string author = "Mohit";
string hello = $"Hello {author} !";
Console.WriteLine(hello); // Hello Mohit !
Citește mai mult pe C#/.NET Minuni: String Interpolare în C# 6