| 

.NET C# Java Javascript Exception

4
In Visual Basic lassen sich Optionalparameter in Prozeduren und Funktionen mitsamt Standardwerten definieren, die gültig sind, sofern der jeweilige Paramater beim Aufruf nicht gesondert mit angegeben wird. In C# werden Optionalparamater leider nicht unterstützt. Wie konvertiere ich Prozeduren von VB mit Optionalparametern dann aber nach C#?
14.10.2011
DirkN. 21 2
5 Antworten
1
Wie wärs mit einer Wrapperfunktion?

void Funktion1(int i1, int i2, int i3)
{
...
}
void Funktion1(int i1, int i2)
{
Funktion1(i1, i2, defaultwertfüri3);
}


..oder mit C# 4.0 guckst du hier .
14.10.2011
Eiger 1,9k 2 9
Eiger 1,9k 2 9
0
Hallo,
dafür gibt es in C# das params Schlüsselwort. Das tut nicht ganz was du willst, aber hilft dir Methoden mit einer variablen Anzahl an Argumenten zu definieren:

public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}



Doku: http://msdn.microsoft.com/en-us/library/w5zay9db(VS.90).aspx
14.10.2011
puls200 3,8k 7
0
Warum überlädst Du die Funktionen nicht?
http://msdn.microsoft.com/de-de/library/ms229029%28v=VS.100%29.aspx

void myFunction(int a)
{
int b = defaultB;
int c = defaultC;
myFunction(a, b, c)
}

void myFunction(int a, int b)
{
int c = defaultC;
myFunction(a, b, c)
}

void myFunction(int a, int b, int c)
{
// mach was
}


Damit hast Du weiterhin den Typ der Parameter vorgegeben ...

(Oder kannst Du auch einen Parameter mittendrin "weglassen"?
myFunction(a, , c)
Das würde mit dem Überladen auch nicht funktionieren.)
14.10.2011
Xantiva 2,3k 2 9
Xantiva 2,3k 2 9
Und wo ist der Unterschied zu der von mir erwähnten Methode?
Eiger 14.10.2011
Du hast zwei unterschiedliche Funktionsnamen? Mit und ohne "a" ... Oder?
Beim Überladen bleibt der Funktionsname identisch, quasi eine Funktion, die aber unterschiedliche Parameter akzeptiert.
Xantiva 14.10.2011
Ups, vertippt... sorry!
Eiger 14.10.2011
Wird Zeit fürs Wochenende ;)
Xantiva 14.10.2011
Jop!!! ;-)
Eiger 14.10.2011
0
Ab dem dotnet Framework 4.0 werden optionale Parameter bei Methoden unterstützt.
Siehe auch: http://msdn.microsoft.com/de-de/library/dd264739.aspx (unterer Teil)
14.10.2011
schulz3000 390 1 6
0
Zum Thema optionale Parameter in C# empfehle ich jedem folgenden Beitrag von Golo Roden zu lesen um zu verstehen welche besonderheiten und tücken es bei optionalen parametern unter .net gibt.

http://codekicker.de/fragen/csharp-Optionale-Parameter-C%23-Gut-schlecht-.net-parameter-gefaehrlich-optionale/701

besser kann man es einfach nicht schreiben ;)
15.10.2011
Floyd 14,6k 3 9

Stelle deine Parameter-Frage jetzt!