Microsoft wil in 2010 een nieuwe Visual Studio (versie 2010) op de markt brengen. Op dit moment kan er al een Virtual PC gedownload worden bij Microsoft met daarin een test versie. Naast de nieuwe Visual Studio betekent dit ook een aantal nieuwe features in de programmeertalen. Laten we eens kijken wat er in C# versie 4 gaat veranderen.

Microsoft wil in 2010 een nieuwe Visual Studio (versie 2010) op de markt brengen. Op dit moment kan er al een Virtual PC gedownload worden bij Microsoft met daarin een test versie. Naast de nieuwe Visual Studio betekent dit ook een aantal nieuwe features in de programmeertalen. Laten we eens kijken wat er in C# versie 4 gaat veranderen.
Optionele Parameters in C#
Ik zal beginnen met de Optionele Parameters. Of te wel: bij de aanroep van een methode 1 of meerdere argumenten niet opgeven. In plaats daarvan wordt er een standaard waarde gebruikt.
Waar ze er bij andere programmeertalen al jaren geleden achter kwamen (dat optionele parameters wel erg handig kunnen zijn), wordt het nu in versie 4 van C# ook geïntroduceerd. Wellicht niet de grootste wijziging in C#, maar wel één die snel, gemakkelijk en vaak ingezet zal gaan worden.
Op dit moment zul je verschillende overloads van je methode moeten aanmaken om een dergelijk effect te bereiken.
Public String getItem(int ID, string Language)
       {
       // get item from database
       Return ... ;
       }
Public String getItem(int ID)
       {
       // call overload, passing a default value
       Return getItem(ID, “Dutch”);
       }
Op deze manier kun je dus de functie ‘getItem’ aanroepen met, of zonder een waarde (argument) voor de parameter ‘Language’.
Je kunt in C# v4 een default waarde opgeven voor je parameter, en als je deze parameter vervolgens weglaat bij de aanroep, dan zal deze default waarde gebruikt worden.
Public String getItem(int ID, string Language = “Dutch”)
       {
       // get item from database
       Return ... ;
       }
Zeker als je dus meerdere optionele parameters hebt, scheelt dat een hoop code omdat je dus maar 1 methode hoeft te schrijven en geen overload voor elke optionele parameter.
Named Parameters
Naast de mogelijkheid om argumenten weg te laten komt er een mogelijkheid om ze op naam aan te spreken. Normaal gesproken geef je de argumenten mee in de volgorde dat ze gedefinieerd zijn in de methode, maar dat is dan niet meer nodig. De volgende 3 aanroepen zijn dan identiek:
getItem(1 , “English”) // normale aanroep
getItem(ID : 1 , Language : “English”) // named
getItem(Language : “English” , ID : 1) // of zelfs in een andere volgorde
Wanneer is dit nu handig? Vooral in combinatie met een methode met meerdere optionele parameters. Laten we naar het volgende voorbeeld kijken:
Public void Test(int a, int b = 10 , int c = 20)
       {
       // implementation ...
       }
Hoe kan ik nu argument ‘c’ wel mee geven terwijl ik argument ‘b’ niet wil mee geven? Het is niet toegestaan om ‘b’ gewoon weg te laten: Test( 2 , , 4 ). Dit zou foutgevoelig zijn en je bent alleen maar komma’s aan het tellen. Op dit moment komen de named parameters van pas. De aanroep zou dan als volgt gaan: Test( 2 , c : 4), wat (i.v.m. de default waarde van “b”) overeen zou komen met: Test( 2 , 10 , 4)
Meer Informatie
Binnenkort volgt er meer in dit blog over de nieuwe features die C# v4 zal bevatten. Voor de Virtual PC met Visual Studio 2010 kun je hier terecht: http://www.microsoft.com/downloads