[c#] Optional parameters meegeven aan constructor

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 13:23

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Hey mensen,

Ik ben bezig een dll te maken waarbij een aantal classes gebruikt worden.
Deze classes hebben een constructor die optionele parameters mee zou moeten krijgen:

Nu probeer ik dit in c# voor elkaar te krijgen, maar optional wordt niet ondersteund:
code:
1
2
3
public VarTyper(string Vname, [Optional, DefaultParameterValue(200)] long Cycletime)
{  
}


Daarom heb ik een poging gedaan het met losse methoden te doen:
code:
1
2
3
4
5
6
7
8
public VarTyper(string Vname)
{  
   VarTyper(Vname,200);
}

public VarTyper(string Vname, long Cycletime)
{  
}


Alleen nu krijg ik de melding:
"VarTyper is a 'type' but is used like a 'variable'"

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 11:39

Haan

dotnetter

Je doet het net niet helemaal goed:

C#:
1
2
3
4
5
6
7
8
9
public VarTyper(string Vname) : this(Vname, 200)
{
}

public VarTyper(string Vname, long Cycletime)
{
     this.Vname = Vname;
     this.Cycletime = Cycletime;
}


Dit heet constructor chaining, mocht je er meer over willen weten.

@beneden: :w :>

[ Voor 16% gewijzigd door Haan op 08-10-2009 13:31 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Zie er uit als basics. Volgens mij moet het zo:
C#:
1
2
3
4
5
6
7
8
public VarTyper(string Vname) : this(Vname,200)
{  
   
}

public VarTyper(string Vname, long Cycletime)
{  
}


@boven :( }:O

[ Voor 5% gewijzigd door Sebazzz op 08-10-2009 13:29 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dit is wel erg basic, en kun je ook gewoon in de documentatie terug vinden
http://msdn.microsoft.com/en-us/library/ms173115(VS.80).aspx

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 13:23

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Hmmz en het werkt gewoon direct :)
Heel erg bedankt.
Wel raar dat google hits over optional parameter ed. andere code dan deze opleveren.

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 12:26

RayNbow

Kirika <3

Armageddon_2k schreef op donderdag 08 oktober 2009 @ 13:24:
Nu probeer ik dit in c# voor elkaar te krijgen, maar optional wordt niet ondersteund:
Named/Optional Arguments komt in C# 4.0, dus voorlopig moet je het met de aangedragen oplossingen van de mensen boven me moeten doen.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

Armageddon_2k schreef op donderdag 08 oktober 2009 @ 13:31:
Hmmz en het werkt gewoon direct :)
Heel erg bedankt.
Wel raar dat google hits over optional parameter ed. andere code dan deze opleveren.
Pas in .NET 4.0 komen echte optional parameters. Je zult het nog even op de manier moeten doen zoals hierboven is vermeldt.

'You like a gay cowboy and you look like a gay terrorist.' - James May


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Even een topickaping tussendoor: Is dit niet gewoon een language feature, en heb je dus een .NET 4 compiler nodig in plaats van runtime voor deze feature? Dat dus de compiler het intern omzet?

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het moet wel in de metadata van de classes opgenomen kunnen worden. Daarom kun je in C++/CLI ook geen gebruik maken van default arguments in managed classes.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1