Avatar billede mach3 Nybegynder
27. juli 2005 - 14:47 Der er 10 kommentarer og
3 løsninger

C#: Static metoder?

Hej,

Er der nogen som har links, som uddbyber, hvad man kan anvende static metoder til?

Tak
Avatar billede spif2001 Nybegynder
27. juli 2005 - 14:52 #1
Static metoder er når du kalder på klassen i stedet for på objektet.

objekt kald:
MyObject myObject = new MyObject();
myObject.GetIt();

static kald
MyObject.GetIt();

den statiske GetIt metode kunne f.eks hente en statisk int variabel i MyObject klassen, som man altid skal kunne få fat i om man har et myObject eller ej.
Avatar billede roenving Novice
27. juli 2005 - 14:58 #2
-- og man kan også eksemplificere det ved at kigge på, hvornår en ikke-static og en static giver mening:

-- hvis du skal bruge properties for et bestemt tidspunkt, skal du oprette en instans af et DateTime-objekt og sørge for, at det er initialiseret til det tidspunkt, du har brug for ...

-- hvis du alene har brug for værdien af tidspunktet nu, skal du kalde den statiske metode Now på DateTime-klassen !-)
Avatar billede arne_v Ekspert
27. juli 2005 - 15:03 #3
Som du vel har læst dig til så kaldes static metoder på klassen og ikke
på objekter.

C.m();

fremfor

C o = new C();
o.m();

De bruges til 2 slags metoder:

1)  totalt kontekst fri metoder

    eksempel: Math.Cos

    Math.Cos skal kun bruge argumentet for at kunne gøre det den skal - den skal
    ikke kende et en masse data gemt i et Math objekt

2)  Metoder som kun skal tilgå static fields i en klasse

    Eksempler:

      GetInstance i en singleton klasse - den skal jo per definition
      være static (i C# vil man typisk bruge en static property fremfor en
      static metode, men problem stillingen er helt den samme)

      Du laver et static field som du tæller op i constructor, så du ved
      hvor mange objekter der er lavet af klassen - når den skal hentes
      bør det igen være en static metode (omend det er muligt med en ikke
      static)
Avatar billede mach3 Nybegynder
27. juli 2005 - 23:49 #4
Ok det giver mening. Tak til begge - giv et svar :-)
Avatar billede arne_v Ekspert
27. juli 2005 - 23:50 #5
begge 3 ?

:-)
Avatar billede spif2001 Nybegynder
28. juli 2005 - 08:35 #6
svar :)
Avatar billede mach3 Nybegynder
28. juli 2005 - 13:59 #7
jep begge 3 :-)
Avatar billede mach3 Nybegynder
28. juli 2005 - 14:00 #8
Giver det mening at lave en database connectionstring som static?
Avatar billede arne_v Ekspert
28. juli 2005 - 14:02 #9
svar
Avatar billede arne_v Ekspert
28. juli 2005 - 14:03 #10
du kan

men jeg er lidt skeptisk overfor ideen - overvej selv hvordan du gør koden
multi thread safe
Avatar billede roenving Novice
28. juli 2005 - 14:06 #11
Velbekomme '-)
Avatar billede roenving Novice
28. juli 2005 - 14:06 #12
;O)
Avatar billede roenving Novice
28. juli 2005 - 23:18 #13
-- og tak for point ;~}
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