Avatar billede repsak Nybegynder
05. november 2003 - 10:02 Der er 12 kommentarer og
1 løsning

Uendelig parameter

Hvordan koder jeg en metoder som f.eks. string.Format? Jeg mener her at den skal kunne tage et vilkårligt antal parametre som
string.Format("{0}{1}","Kas","per");
Avatar billede odegaard Nybegynder
05. november 2003 - 10:09 #1
Kan du ikke bare bruge en almindelig sammentrækning?
str = "Kas" + "per" + "&" + "Pe" + "ter";
Avatar billede odegaard Nybegynder
05. november 2003 - 10:11 #2
ah jeg tror jeg misforstod dit spørgsmål.
Hvis du vil kunne lave en metode med flere muligheder for angivelse af parametre, så skal du lave en override af hver enkelt metode.
string.Format kan faktisk kun tage op til 3 parametre. Der er dog så også en override der giver mulighed for at parse en collection i stedet.
Avatar billede odegaard Nybegynder
05. november 2003 - 10:13 #3
hmm jeg mener selvfølgelig ikke override, men overload :-)
Avatar billede odegaard Nybegynder
05. november 2003 - 10:14 #4
ex.
public class AddingNumbers
{
    public int Add(int a, int b)
    {
        return a+b;
    }
    public int Add(int a, int b, int c)
    {
        return a+b+c;
    }   
}
Avatar billede arne_v Ekspert
05. november 2003 - 10:35 #5
Avatar billede wisen Nybegynder
05. november 2003 - 11:19 #6
Du skal lave en metode der tager er object[] som argument f.eks.

string test(string format, object[] args)
{

}
Avatar billede wisen Nybegynder
05. november 2003 - 11:21 #7
... det er også den måde string.Format er lavet på :

public static string Format(string, params object[]);
Avatar billede wisen Nybegynder
05. november 2003 - 11:22 #8
... fra MSDN :

using System;
public class MyClass
{

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

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

  public static void Main()
  {
      UseParams(1, 2, 3);
      UseParams2(1, 'a', "test");

      int[] myarray = new int[3] {10,11,12};
      UseParams(myarray);
  }
}
Avatar billede arne_v Ekspert
05. november 2003 - 11:44 #9
wisen>

Tror du ikke repsak kan finde ud af at klikke på et link ?
Avatar billede wisen Nybegynder
05. november 2003 - 11:56 #10
arne_v >> Sikkert - jeg har ikke lige kigget på dit link ;)
Avatar billede repsak Nybegynder
05. november 2003 - 15:16 #11
Nej, jeg er ikke så skrap til at klikke på links ;-)
Jeg ser lige hvad I har postet
Avatar billede repsak Nybegynder
05. november 2003 - 15:22 #12
takker arne :-)
det er jo ikke nok at lave et object[] hvis der ikke står params hehe
Avatar billede arne_v Ekspert
05. november 2003 - 18:17 #13
Jeg vil ligge et svar så.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester