Wat is String Interpolatie in C#?
Het zou kunnen dat je verschillende situaties en toepassingen bent tegengekomen die string interpolatie gebruiken. Maar je zou het niet hebben herkend, omdat het iets is dat op de achtergrond gebeurt. Als je bijvoorbeeld inlogt op jouw favoriete e-commerce website, OTT-platform, online ticketing-boekingssites, bankwebsites, enz., word je meestal weergegeven met een bericht zoals - 'Welkom terug Ruud'.
Net zoals wanneer je uitlogt en weer inlogt met een ander id, wordt de bijbehorende naam op het scherm weergegeven. Dit wordt bereikt via twee delen van de welkomstnotitie, waarvan het ene het statische deel is en het andere het dynamische deel.
Het is vrij duidelijk dat - 'Welkom terug' hier de statische tekst is, terwijl de naam die erop volgt de dynamische tekst is. Dit is een klassiek voorbeeld van de String Interpolatie techniek. En dit is een zeer belangrijke en fundamentele functie die een ontwikkelaar moet kennen.
Laten we alles in detail bekijken over deze populaire functie en hoe deze werkt in C#.
Inhoudsopgave
- Basisprincipes van String Interpolatie
- Voorbeelden van String Interpolatie
- Mogelijkheden van String Interpolatie
- Conclusie
Basis van String Interpolatie
Voordat we string interpolatie begrijpen, kijken we naar de samengestelde opmaak; het basisprincipe waarop de string interpolatie in C# is gebouwd. De samengestelde opmaak is de conventionele manier om de resultaattekst te construeren met zowel statische als dynamische gegevens.
Een samengestelde opmaak bestaat uit een statische tekst gemengd met geïndexeerde tijdelijke aanduidingen. Je neemt een lijst met objecten als invoer, die vervolgens in de geïndexeerde positie in de sequentiële volgorde worden vervangen.
Bijvoorbeeld:
var name = “Max”;
var formattedData = String.Format(“Hi {0}. The current date time is {1}”, name, DateTime.Now.ToString());
In het bovenstaande voorbeeld komt index 0 overeen met de variabele - 'naam' en index 2 komt overeen met het DateTime gedeelte.
Maar overweeg ook een alinea met veel dynamische gegevens die aan de runtime moeten worden toegevoegd,
Bijvoorbeeld:
var formattedData = String.Format(“Hi {0}, Welcome to {1}. The current date time is {1}. And the weather forecast for today is {2}. Have a pleasant stay. Reach us at {3} ”, name, countryName, DateTime.Now.ToString(), weatherData, contactNumber.ToString());
Hier worden de dynamische gegevens die moeten worden vervangen, verdeeld over de hele alinea en wordt het moeilijk voor de ontwikkelaars om door te lezen om te begrijpen welke variabele op welke positie wordt doorgegeven. Dit kan leiden tot de ongepaste positionering van gegevens (bijvoorbeeld het weer en het contactnummer worden verwisseld).
Om het leesbaarder te maken en het voor de ontwikkelaars gemakkelijk te maken, is string interpolatie gemaakt. Het is beschikbaar vanaf C# versie 6.
Voorbeelden van String Interpolatie
String interpolatie wordt over het algemeen weergegeven door $ voorafgaand aan de letterlijke tekenreeks. Er mag geen spatie tussen $ en “(dubbele aanhalingstekens) staan. Dit stelt de ontwikkelaars in staat om tussendoor de nodige dynamische gegevens (variabelen) toe te voegen in plaats van ze allemaal aan het einde toe te voegen, in tegenstelling tot de samengestelde opmaak.
Hier wordt de variabele die de waarde bevat aangegeven tussen accolades { } binnen de dubbele aanhalingstekens. Accolades ondersteunen ook null-waarden.
Het verschil tussen composiet- en string interpolatie kan worden begrepen met behulp van het onderstaande voorbeeld:
using System;
namespace PARTECHStringInterpolation
{
class PARTECHStringInterpolation
{
public static void Main()
{
string name = "Max";
int age = 20;
// Composite format
Console.WriteLine("Name = {0}, age = {1}", name, age);
// String Interpolation
string s1 = $"{name} is {age} years old.";
Console.WriteLine(s1);
}
}
}
Hieronder leggen we de syntaxis van interpolatie uit.
{<interpolationExpression>[,<alignment>][:]}
Hier is de inhoud tussen de vierkante haken optioneel (d.w.z. uitlijning en opmaak string zijn optioneel). De opgemaakte gegevensreekswaarde is een eenvoudig voorbeeld van alleen een interpolatie-expressie.
Voorbeeld met alleen interpolatie-expressie
var name = “Max”;
var formattedData = $“Hi { name }. The current date time is { DateTime.Now.ToString() }”);
Dit is de getransformeerde code van de samengestelde opmaak naar string interpolatie. Ziet het er gemakkelijk uit om te lezen en uit te voeren?
Voorbeeld voor het gebruik van interpolatie-expressie en uitlijning
Console.WriteLine($"{Math.PI,10} - Formatting of pi without decimal limitation.");
Uitvoer - 3.14159265358979 - Opmaak van pi zonder decimale beperking.
Hier is Math.PI een ingebouwde eigenschap in C#, die de waarde van pi bevat. En het getal 10 geeft aan hoe ver het naar rechts is uitgelijnd vanaf het midden (waar 0 het midden aangeeft, de negatieve waarden links uitgelijnd aangeven en positieve waarden rechts uitgelijnd aangeven).
Voorbeeld voor het gebruik van interpolatie-expressie, uitlijning en opmaak string
Console.WriteLine($"{Math.PI,10:F3} - with only three decimal digits of the pi number.");
Uitvoer - 3.141 - met slechts drie decimale cijfers van het pi-nummer.
Hier geeft F3 de drie aantallen decimale waarden aan die nodig zijn om pi af te drukken.
Mogelijkheden van String Interpolatie
Speciale tekens toevoegen aan string interpolatie
Er zijn twee manieren om speciale tekens toe te voegen terwijl je string interpolatie gebruikt.
var path = $”C://Users//{username}//downloads”;
Hier dient de eerste schuine streep als een ontsnappingsreeks voor de volgende.
De andere manier om dit te doen is door @ toe te voegen voor of na het $-symbool terwijl je de geïnterpoleerde string omkadert.
Bijvoorbeeld - $@”C:/Users/{username}/downloads”;
Deze functie voor het afhandelen van speciale tekens met @ is beschikbaar vanaf C# versie 8.
Gebruik @ gevolgd door $ om een tekenreeks met meerdere regels op te maken.
{
Console.WriteLine($@"Hi {name}, Today is {date.DayOfWeek} and it's {date:HH:mm} now.
Welcome to PARTECH
Your location is {location}");
}
Usage of ternary operation inside interpolation expression
var rand = new Random();
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Sample Result: *{(rand.NextDouble() > 0.5 ? "Value is higher" : "Value is lesser")}*");
}
Hier, in het bovenstaande voorbeeld, wordt de voorwaarde binnen de interpolatie-expressie uitgevoerd tijdens runtime, op basis waarvan de waarde wordt weergegeven.
Tijdens de compilatietijd worden de string interpolaties getransformeerd naar String.Format, die op zijn beurt wordt geconverteerd naar String.Concat. Uiteindelijk wordt het aaneengeschakeld.
De String Interpolatie techniek kan ook worden gebruikt met C# culture.
Conclusie
Deze blog geeft je een kijkje op hoog niveau over hoe samengestelde opmaak en string interpolatie worden gedefinieerd en de verschillende opties die beschikbaar zijn in String Interpolatie. Uit de voorbeelden die we hebben doorgenomen, is het duidelijk dat string interpolatie de ontwikkelaars een voordeel biedt in samengestelde opmaak om teksten op te maken.