Oefening: basisbeginselen van tekenreeksopmaak onderzoeken
- 20 minuten
In deze les leert u methoden voor het opmaken van tekenreeksen voor efficiënte weergave, met name voor gevallen waarin meerdere variabelen worden gebruikt.
Uw coderingsomgeving voorbereiden
Deze module bevat praktische activiteiten die u begeleiden bij het bouwen en uitvoeren van demonstratiecode. U wordt aangeraden deze activiteiten uit te voeren met Behulp van Visual Studio Code als uw ontwikkelomgeving. Het gebruik van Visual Studio Code voor deze activiteiten helpt u om comfortabeler code te schrijven en uit te voeren in een ontwikkelomgeving die wordt gebruikt door professionals wereldwijd.
Notitie
Als u andere Microsoft Learn-modules in deze C#-serie hebt voltooid, hebt u mogelijk al een projectmap gemaakt voor codevoorbeelden. Als dat het geval is, kunt u de volgende sectie met stappen overslaan en de code verwijderen in het Project.cs bestand dat voor een vorige oefening is gebruikt.
Open Visual Studio Code. U kunt de Windows-Startmenu (of een equivalente resource voor een ander besturingssysteem) gebruiken om Visual Studio Code te openen.
Selecteer Map openen in het menu Visual Studio Code-bestand.
Navigeer in het dialoogvenster Map openen naar de map Windows-bureaublad. Als u een andere maplocatie hebt waar u codeprojecten bewaart, kunt u die maplocatie gebruiken. Voor deze training is het belangrijk om een locatie te hebben die gemakkelijk te vinden en te onthouden is.
Selecteer Map selecteren in het dialoogvenster Map openen. Als u een beveiligingsdialoogvenster ziet waarin u wordt gevraagd of u de auteurs vertrouwt, selecteert u Ja.
Selecteer In het menu Visual Studio Code Terminal de optie Nieuwe terminal. U ziet dat in een opdrachtprompt in het terminalvenster het mappad voor de huidige map wordt weergegeven. Voorbeeld:
C:\Users\someuser\Desktop>Typ bij de terminalopdrachtprompt een nieuwe consoletoepassing in een opgegeven map, dotnet nieuwe console -o ./CsharpProjects/TestProject en druk op Enter. Deze .NET CLI-opdracht maakt gebruik van een .NET-programmasjabloon om een nieuw C#-consoletoepassingsproject te maken op de opgegeven maplocatie. Met de opdracht worden de mappen CsharpProjects en TestProject voor u gemaakt en wordt TestProject gebruikt als de naam van het
.csprojbestand.Vouw in het deelvenster EXPLORER de map CsharpProjects uit. U ziet de map TestProject en twee bestanden, een C#-programmabestand met de naam Program.cs en een C#-projectbestand met de naam TestProject.csproj.
Selecteer Program.cs in het deelvenster Editor om uw codebestand in het deelvenster Editor weer te geven.
Verwijder de bestaande coderegels. U gebruikt dit C#-consoleproject om codevoorbeelden te maken, te bouwen en uit te voeren tijdens deze module.
Sluit het deelvenster Terminal.
Wat is samengestelde opmaak?
Bij samengestelde opmaak wordt gebruikgemaakt van genummerde tijdelijke aanduidingen binnen een tekenreeks. Tijdens runtime wordt alles binnen de accolades omgezet in een waarde die ook wordt doorgegeven op basis van hun positie.
In dit voorbeeld van samengestelde opmaak wordt een ingebouwde methode Format() gebruikt voor het trefwoord van het string gegevenstype. Werk uw code als volgt bij in de Visual Studio Code-editor:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Als u deze code uitvoert, ziet u de volgende uitvoer.
Hello World!
Er zijn enkele belangrijke aandachtspunten met betrekking tot deze code.
- Gegevenstypen en variabelen van een bepaald gegevenstype hebben ingebouwde helper-methoden om bepaalde taken eenvoudig te maken.
- De letterlijke tekenreeks
"{0} {1}!"vormt een sjabloon, waarvan delen tijdens runtime worden vervangen. - Het token
{0}wordt vervangen door het eerste argument achter de tekenreekssjabloon, ofwel de waarde van de variabelefirst. - Het token
{1}wordt vervangen door het tweede argument achter de tekenreekssjabloon, ofwel de waarde van de variabelesecond.
Notitie
Misschien denk je dat het vreemd is om te beginnen met het getal 0. Dit is echter zeer gebruikelijk bij softwareontwikkeling. Wanneer er een reeks items is die kan worden geïdentificeerd met behulp van een getal, begint de nummering doorgaans bij 0.
Werk uw code als volgt bij:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U moet de volgende uitvoer zien:
World Hello! Hello Hello Hello!
Enkele opmerkingen over deze voorbeelden:
- Voor de eerste
Console.WriteLine()instructie ziet u dat de tokens in elke volgorde kunnen worden gerangschikt. De voorbeeldcode heeft{1}eerder{0}. - Voor de tweede
Console.WriteLine()instructie ziet u dat de tokens kunnen worden hergebruikt met drie exemplaren van{0}. Het tweede variabeleargument,secondwordt ook niet gebruikt. De code wordt echter nog steeds zonder fouten uitgevoerd.
Wat is tekenreeksinterpolatie?
Tekenreeksinterpolatie is een techniek die samengestelde opmaak vereenvoudigt.
In plaats van gebruik te maken van een genummerd token en de letterlijke waarde of naam van de variabele in een lijst met argumenten voor String.Format() of Console.WriteLine() op te nemen, kunt u gewoon de naam van de variabele binnen de accolades gebruiken.
Als een tekenreeks moet worden geïnterpoleerd, moet u deze voorzien van een voorvoegsel met de
$-instructie. Maak nu dezelfde voorbeelden van eerder met behulp van tekenreeksinterpolatie in plaats van samengestelde opmaak. Werk uw code als volgt bij:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");Sla uw codebestand op en gebruik Visual Studio Code om uw code uit te voeren. U moet de volgende uitvoer zien:
Hello World! World Hello! Hello Hello Hello!
Notitie
Als u codevoorbeelden in boeken en online bekijkt, zult u waarschijnlijk zowel samengestelde opmaak als tekenreeksinterpolatie gebruiken, maar over het algemeen moet u tekenreeksinterpolatie kiezen.
Valuta's opmaken
Samengestelde opmaak en tekenreeksinterpolatie kunnen worden gebruikt om waarden op te maken voor weergave op basis van een specifieke taal en cultuur. In het volgende voorbeeld wordt de opmaakaanduiding voor valuta's :C gebruikt om de variabelen price en discount als valuta's weer te geven. Werk uw code als volgt bij:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
Als u deze code hebt uitgevoerd op een computer waarop de Windows-weergavetaal is ingesteld op 'Engels (Verenigde Staten)', ziet u de volgende uitvoer.
Price: $123.45 (Save $50.00)
Merk op hoe het getal wordt opgemaakt als valuta door het toevoegen van de :C aan de tokens binnen de accolades, ongeacht of u int of decimal gebruikt.
Notitie
Wat gebeurt er als uw land/regio en taal niet bekend zijn? Als u de vorige code uitvoert in de .NET-editor in de browser, zoals bij TrydotNet , ziet u de volgende uitvoer: Price: ¤123.45 (Save ¤50.00). Het symbool wordt gebruikt in plaats van het symbool ¤ voor het geld van uw land/regio. Dit is een algemeen symbool dat wordt gebruikt om valuta's aan te geven, ongeacht het type van de valuta's. U ziet dit symbool in de .NET-editor, omdat uw huidige locatie wordt genegeerd.
Hoe het land/de taal van de gebruiker van invloed is op tekenreeksopmaak
Wat gebeurt er als u de vorige code uitvoert op een computer in Frankrijk waarop de Windows-weergavetaal is ingesteld op Frans? In dat geval ziet u de volgende uitvoer.
Price: 123,45 € (Save 50,00 €)
De reden voor de vorige uitvoer '€' is dat de functie voor het opmaken van tekenreeksvaluta afhankelijk is van de lokale computerinstelling voor cultuur. In deze context verwijst de term 'cultuur' naar het land/de regio en de taal van de eindgebruiker. De cultuurcode is een tekenreeks van vijf tekens die computers gebruiken om de locatie en taal van de eindgebruiker te identificeren. De cultuurcode zorgt ervoor dat bepaalde informatie, zoals datums en valuta, correct kan worden weergegeven.
Voorbeeld:
- de cultuurcode van een Engels sprekende in de Verenigde Staten is
en-US. - de cultuurcode van een Frans sprekende in Frankrijk is
fr-FR. - de cultuurcode van een Frans sprekende in Canada is
fr-CA.
De cultuur heeft invloed op het schrift, de kalender die wordt gebruikt, de sorteervolgorde van tekenreeksen en de opmaak voor datums en getallen (zoals valuta's).
Helaas is het lastig om ervoor te zorgen dat uw code correct werkt op alle computers, ongeacht het land/de regio of de taal van de eindgebruiker. Dit proces staat bekend als lokalisatie (of globalisatie). Lokalisatie is afhankelijk van veel factoren die niet in deze module worden besproken, maar de syntaxis voor tekenreeksopmaak kan een andere indeling gebruiken, afhankelijk van de cultuur van de gebruiker.
Getallen opmaken
Wanneer u met numerieke gegevens werkt, wilt u het getal mogelijk opmaken voor leesbaarheid door komma's op te geven om duizenden, miljoenen, miljarden enzovoort af te bakenen.
De N numerieke notatieaanduiding maakt getallen beter leesbaar. Werk uw code als volgt bij:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
Als u dit bekijkt vanuit de en-US cultuur, ziet u de volgende uitvoer.
Measurement: 123,456.79 units
Standaard worden in de aanduiding voor numerieke opmaak N slechts twee cijfers achter de decimale punt weergegeven.
Als u de precisie wilt vergroten, kunt u dit doen door een getal achter de aanduiding te plaatsen. Met de volgende code worden vier cijfers achter de decimale punt weergegeven, dankzij de aanduiding N4. Werk uw code als volgt bij:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
Als u dit bekijkt vanuit de en-US cultuur, ziet u de volgende uitvoer.
Measurement: 123,456.7891 units
Percentages opmaken
Gebruik de P notatieaanduiding om percentages op te maken en af te ronden op 2 decimalen. Voeg daarna een getal toe om het aantal waarden te bepalen dat wordt weergegeven achter de decimale punt. Werk uw code als volgt bij:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
Als u dit bekijkt vanuit de en-US cultuur, ziet u de volgende uitvoer.
Tax rate: 36.79%
Opmaakmethoden combineren
Tekenreeksvariabelen kunnen tekenreeksen opslaan die zijn gemaakt met behulp van opmaaktechnieken. In het volgende voorbeeld worden decimalen en decimale wiskundige resultaten opgemaakt en opgeslagen in de yourDiscount tekenreeks met behulp van samengestelde opmaak.
Werk uw code als volgt bij.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
Console.WriteLine(yourDiscount);
Als u dit bekijkt vanuit de en-US cultuur, ziet u de volgende uitvoer.
You saved $7.56 off the regular $67.55 price.
U kunt meerdere opgemaakte tekenreeksen combineren. Bouw voort op de vorige code die het berekende percentage samenvoegt met behulp van de tekenreeksinterpolatie in plaats van tekenreekssamenvoeging door in de code op de regel ervoor yourDiscount += $"A discount of {(price - salePrice)/price:P2}!";in te Console.WriteLine() voegen.
Notitie
U hoeft deze tekenreeksinterpolatiebenadering niet te gebruiken String.Format() .
Werk uw code als volgt bij.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
yourDiscount += $"A discount of {((price - salePrice)/price):P2}!"; //inserted
Console.WriteLine(yourDiscount);
Als u deze eenheid vanuit de en-US cultuur bekijkt, ziet u de volgende uitvoer.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
Samenvatting
Hier volgen de belangrijkste leerpunten van deze les over het opmaken van tekenreeksen:
- U kunt samengestelde opmaak of tekenreeksinterpolatie gebruiken om tekenreeksen op te maken.
- Bij samengestelde opmaak gebruikt u een tekenreekssjabloon met een of meer vervangende tokens in de vorm
{0}. U geeft ook een lijst met argumenten op die overeenkomen met de vervangende tokens op basis van de volgorde ervan. Samengestelde opmaak werkt wanneerstring.Format()ofConsole.WriteLine()wordt gebruikt. - Met tekenreeksinterpolatie gebruikt u een tekenreekssjabloon waarin de namen van de te vervangen variabelen tussen accolades zijn geplaatst. Gebruik de
$-instructie vóór de tekenreekssjabloon om aan te geven dat de tekenreeks moet worden geïnterpoleerd. - Maak valuta op met de aanduiding
:C. - Maak getallen op met de aanduiding
:N. Bepaal de precisie (het aantal waarden achter de decimale punt) met behulp van een getal achter de:N, bijvoorbeeld{myNumber:N3}. - Maak percentages op met de
:Pnotatieaanduiding. - Het opmaken van valuta's en getallen is afhankelijk van de cultuur van de eindgebruiker, een code van vijf tekens die het land/de taal van de gebruiker bevat (volgens de instellingen op hun computer).
Kennis testen
Feedback
Is deze pagina nuttig?
No
Hulp nodig bij dit onderwerp?
Wilt u Ask Learn gebruiken om iets te verduidelijken of u door dit onderwerp te leiden?