C# 4.0 saab nimelised ja mittekohustuslikud parameetrid

02.11.2008  |  Gunnar

tech Leidsin Matthew Podwysocki blogist huvitava kande C# 4.0 - Named and Optional Parameters - Behind the Scenes, kus tutvustatakse C# 4.0 meetodite nimeliste ja mittekohustuslike parameetrite tuge. Sarnased võimalused, kes mäletab, on olemas näiteks sellistes keeltes nagu Visual Basic ja VBA. Vaatame, mida pakub selles osas C# 4.0.

Vaatame näidet, kus kasutataks mittekohustuslikke parameetreid.

public class TextBoxInfo

{

    public TextBoxInfo(

        string text = “”,

        float size = 10.0f,

        float width = 50.0f,

        Color color = new Color())

    {    
    }

}

Klassi loomisel, kui oleme rahul parameetrite vaikeväärtustega, võime me anda ette ainult need väärtused mida soovime. Sisemiselt on see lahendatud ära atribuutide abil, millega vaikeväärtused omistatakse.

Et parameetrite väärtustamine oleks mugavam, saame kasutada nimelisi parameetreid. Eeltoodud klassi kasutades saaksime kirjutada järgmise koodi.

var t1 = new TextBoxInfo(

            text: “Hello World”

            size : 12.0f);

var t2 = new TextBoxInfo(

            size : 10.0f, 

            width : 45.0f);

Kasutatud süntaks on oluliselt mugavam ja paremini loetav kui see, kus jäetakse mittekohustuslikud parameetrid lihtsalt tühjaks. Nimed annavad meile selge ülevaate sellest, millele mis väärtused omistatakse.

Ma leian, et see on suhteliselt kasulik lisand C# keelele. Mida ma loomulikult ootan uuelt Visual Studiolt on see, et IntelliSense suudaks mittekohustuslike parameetrite juurde näidata nende vaikeväärtusi.

2 kommentaari sissekandele “C# 4.0 saab nimelised ja mittekohustuslikud parameetrid”

  1. Aivar

    PDC2008-l demoti ka teisi c# uuendusi: http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL16.wmv (The Future of C#).

    https://sessions.microsoftpdc.com/public/timeline.aspx lehelt leiab teisigi huvitavate presentatsioonide videosid.

  2. Gunnar

    Arvatavasti räägitakse sellest ka TechEd-il. Eks siis kirjutan pikema loo juba :)

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress