Har läst på lite om params som ett agrument för att öppna upp en class. Benni, Andreas. Benni, Ok nu förstår jag medellandet. Benni,Om params som ett agrument till min inputbox
Det hadde ju varit intressant att kunna alltenera, dvs om inte en viss sträng är med, så skall ett default värde visas.
Som jag har det nu:
<code>
public string inputBox(string title, string promptText, string defaultText)
</code>
Detta innebär att man måste skicka med
1 titel
2 promtText(uppmaning)
3 defaultText(text i textboxen)
Anropet är:
<code>
this.Text=in_Box1.inputBox("SAW Applikation","Fyll i texten","Ditt namn");
</code>
Men om jag nu inte fyller i någon parameter, hur skall jag lägga till params för att undvika fel?
Om jag lägger till..
<code>
public string inputBox(params string title,params string promptText,params string defaultText)
</code>
..så får jag ett error:
<code>
E:\C#\C#-koder\test\WindowsApplication1\in_Box.cs(48): A params parameter must be the last parameter in a formal parameter list
</code>
Jag förstår nog inte rigtikt vad som menas.Sv: Om params som ett agrument till min inputbox
Du överlagrar din metod till att ha flera signaturer. T.ex om du har en metod med tre parametrar då säg den sista (för enkelhetens skull i exemplet) är valfri så gör du
// Sista parametern (c) är valfri och som default välder vi
// en tomstring
public string MinMetod(string a, string b)
{
this.MinMetod(a, b, "");
}
public string MinMetod(string a, string b, string c)
{
// gör något med a, b och c där c kan vara tom.
}
Precis på samma sätt kan du göra vilken kombination av parametrar valfria och du bestämmer givetvis vilket <b>default</b> värde du ska skicka med dem till den överlagring som innehåller samtligt parametrar.
Säg till om du inte hajar.
Sv:Om params som ett agrument till min inputbox
Jo jag tänkte så också, men så läste jag om params, och för mig så verkade det vara en snyggare
kodning. Om vi nu fortsätter att prata om params, varför får jag fel?Sv: Om params som ett agrument till min inputbox
<b>Params</b> måste <b>alltid</b> vara den sista parametern i parameterlistan, vilket även då betyder att du bara kan ha en params.
<info>
No additional parameters are permitted after the params keyword in a method declaration, and only one params keyword is permitted in a method declaration.
</info>
att använda params är inte samma sak som att ha valfria parametrar med default värde. i VB.NET kan du ha <b>optional</b> parametrar där du direkt i metod-signaturen kan ange default värde på parametern om den inte skickas med - i C# används överlagring för att få denna effekt.Sv:Om params som ett agrument till min inputbox
Jag är inte säker på att det är en bra idé att utelämna agrumenten, men jag blev nyfiken på
params.
Tack för din medverkan och god fortsättning på det nya året.Sv: Om params som ett agrument till min inputbox
Detsamma! Har du bestämt dig för någon bok ännu ? :-D