WORDS
C# 7: Deklarera utvariabler
Likt förra artikeln i denna serie, där vi kunde deklarera en variabel direkt i is
-uttrycket, kan man i C# 7 också deklarera och initialisera en variabel direkt i ett metodanrop med out
.
private Dictionary<string, string> Translations =
new Dictionary<string, string>
{
{ "Hello", "Hej" },
{ "World", "Värld" },
};
public string Translate(string key)
{
string translation;
if (Translations.TryGetValue(key, out translation))
{
return translation;
}
else
{
// Om vi inte hittade någon översättning,
// returnera värdet vi fick in.
return key;
}
}
Med den nya syntaxen, kan vi deklarera variabeln translation
direkt i anropet.
public string Translate(string key)
{
if (myDict.TryGetValue(key, out string translation))
{
return translation;
}
else
{
return key;
}
}
Om kompilatorn kan dra en slutsats om vilken datatyp det ska vara, så kan man använda var
.
public string Translate(string key)
{
if (myDict.TryGetValue(key, out var translation))
{
return translation;
}
else
{
return key;
}
}