C# 7.0: out-variabelen

C# 7.0 maakt het mogelijk om variabelen die gebruikt worden als out-parameters te declareren op de plek waar deze als argument worden meegegeven.

In eerdere versies van C# was het nodig om voor elke out-parameter een variabele te declareren voorafgaand aan de aanroep. Dat is syntactisch niet elegant. Bovendien is het niet mogelijk om het type te laten deduceren met het var-keyword. Je moet dus het volledige type opgeven bij de declaratie van de variabelen.

C# 6.0

public void PrintFullName(Person person)
{
    string firstName;
    string lastName;

    person.GetName(out firstName, out lastName);

    WriteLine($"{firstName} {lastName}");
}

In C# 7.0 kan dit met behulp van out-variabelen mooier genoteerd worden:

C# 7.0

public void PrintFullName(Person person)
{
    person.GetName(out string firstName, out string lastName);

    WriteLine($"{firstName} {lastName}");
}

Of, met toepassing van type-deductie:

public void PrintFullName(Person person)
{
    person.GetName(out var firstName, out var lastName);

    WriteLine($"{firstName} {lastName}");
}

De out-variabalen gelden binnen de omsloten scope. Vandaar dat de out-variabelen gewoon in het volgende statement gebruikt kunnen worden.