Avatar billede Slettet bruger
01. juli 2007 - 11:10 Der er 19 kommentarer og
1 løsning

Array som parameter

Hej eksperter!

Når en string anvendes som parameter, behøves argumentet ikke at være en variabel:

void Function(string Tekst)
{
    Console.WriteLine(Tekst);
}
Funktion("Hej verden!");

Men hvad med arrays?
Følgende virker ikke:

void Function(string[] Tekst)
{
    Console.WriteLine(Tekst[0]);
}
Funktion({ "Hej", "verden!" }); // Her gaar det galt

Hvordan skal det skrives korrekt?
Avatar billede erikjacobsen Ekspert
01. juli 2007 - 11:12 #1
Funktion(new string[]{ "Hej", "verden!" });
Avatar billede mysitesolution Nybegynder
01. juli 2007 - 11:50 #2
og i C# 3.0 kan det skrives Function(new[] { "Hej", "verden!" });
Avatar billede Slettet bruger
01. juli 2007 - 12:01 #3
Tak!
Bør jeg så anvende C# 3.0 (eller nyeste), eller er der en fordel i at bruge de ældre versioner?
Bare smid et par svar :)
Avatar billede erikjacobsen Ekspert
01. juli 2007 - 12:03 #4
Ingen point til mig, tak. Du kan vælge at bruge den notation der virker i alle C#-udgaver.
Avatar billede mysitesolution Nybegynder
01. juli 2007 - 12:11 #5
hvis dit program skal henvende sig til en bred befolkning og du ikke vil have at folk skal downloade masse MB når de skal bruge dit program, så brug .net 2.0 :)
Avatar billede Slettet bruger
01. juli 2007 - 12:25 #6
Okay, gør jeg så (og det kører jeg også allerede på).
Forresten: Hvad så når jeg vil oprette arrays af brugerdefinerede klasseinstanser?

MinKlasse MitArray[] = new MinKlasse[] {
    MinKlasse MinFoersteInstans = new MinKlasse,
    MinKlasse MinAndenInstand = new MinKlasse
} );

Sådan? Jeg kan ikke få det til at virke...
Avatar billede erikjacobsen Ekspert
01. juli 2007 - 12:27 #7
MinKlasse MitArray[] = new MinKlasse[] {
    new MinKlasse(),    new MinKlasse()
} );
Avatar billede Slettet bruger
01. juli 2007 - 12:36 #8
Nååå ja, selvfølgelig. Man giver jo sjædent elementerne i et array navne :)
Bare smid et svar, mysite!
Avatar billede Slettet bruger
01. juli 2007 - 12:36 #9
*sjældent, gogo typo
Avatar billede Slettet bruger
01. juli 2007 - 13:01 #10
Hov, det skulle være:

MinKlasse[] MitArray = new MinKlasse[] {
    new MinKlasse(),    new MinKlasse()
} );

;)

Forresten, endnu et spørgsmål:
Hvilken klasse har en metode? Den skal jeg jo bruge, når jeg skal lave en klasse, der har parametre, der reffererer til andre metoder.
Eksempel:

class MinKlasse
{
    METODEKLASSE MinVar; // METODEKLASSE er metodens klasse. Hvad er det?! Object virker ikke.
    public MinKlasse(METODEKLASSE Metode)
    {
        MinVar = Metode;
    }
    public void KaldMetode()
    {
        MinVar(); // Er det sådan, jeg så skal kalde metoden fra refferencen?
    }
}
Avatar billede Slettet bruger
01. juli 2007 - 13:05 #11
Så skulle jeg jo kunne skrive:

public static void EnMetode()
{
    Console.WriteLine("Wheeey, så virker det!");
}
MinKlasse MinInstans = new MinKlasse(EnMetode);
MinKlasse.KaldMetode(); // Output: Wheeey, nu virker det!

Men det er vil ikke rigtigt? Og hvordan tilføjer jeg parametre, når metoden skal kaldes ud fra en refference?
Avatar billede Slettet bruger
01. juli 2007 - 13:06 #12
*Men det er VEL ikke rigtigt?
Avatar billede erikjacobsen Ekspert
01. juli 2007 - 13:19 #13
Hvorfor vil have en metode med ind i klassen udefra? Man "plejer" bare at skrive en klasses metoder i klassen.
Avatar billede Slettet bruger
01. juli 2007 - 13:54 #14
Jeg har brug for at kunne kalde forskellige metoder for de forskellige klasseinstanser.
Avatar billede erikjacobsen Ekspert
01. juli 2007 - 14:18 #15
Så skal du nok kigge på nedarvning.
Avatar billede Slettet bruger
01. juli 2007 - 14:52 #16
Nedarvning? Er det ikke sådan ca. 684694569457,436 gange lettere at lave en refference til metoden?
Avatar billede Slettet bruger
01. juli 2007 - 15:42 #17
Lige meget, jeg har lavet det på en anden måde...
Bare smid det svar, mysite :)
Avatar billede arne_v Ekspert
01. juli 2007 - 16:36 #18
C# 3.0 kommer først i endelig udgave med .NET 3.5 og VS 2008 - derfor bør man nok
holde sig til 2.0 syntaxen indtil videre.
Avatar billede mysitesolution Nybegynder
01. juli 2007 - 17:10 #19
Var ikke mig der svarede først, og er ikke interesseret i points :)

men tror du har brug for at læse noget basal programmering om c#, evt. køb en begynder bog :)
Avatar billede Slettet bruger
02. juli 2007 - 11:31 #20
Tja, det kan være... Hehe, tilbage til læselampen :)
Så snupper jeg da lige selv pointene på vejen...
Tak for hjælpen!
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