18. juli 2005 - 20:16
Der er
15 kommentarer og 1 løsning
Funktionskald i C# som i VB
Hej Jeg har et spørgsmål omkring benyttelse af funktioner/metoder i C# Normalt i VB vil jeg have følgende funktion: //Funktionen ligger i et bas modul Public Function DoStuff(aVar) If aVar = "" Then aVar = "Variablen er tom" End If End Function //Rutinen ligger i en form Private Sub Form_Load Dim aVar As String MsgBox DoStuff(aVar) //Vil retunere "Variablen er tom" End Sub Men hvordan skal dette gøres i C#???
Annonceindlæg fra Computerworld
Geopolitik i cyberspace
Mark Fiedel i Styrelsen for Samfundssikkerhed påpeger behovet for, at Danmark kigger kritisk på leverandørafhængighed.
13. juni 2025
principielt lige sådan syntaxen er bare lidt anderledes
public string DoStuff(string aVar) { if(aVar=="") { aVar = "Variablen er tom"; } return aVar; }
private void Form_Load() { string aVar = ""; MessageBox.Show(DoStuff(aVar)); }
de skal muligvis slaves lidt om efter konteksten men ...
Arne_V >> Hvis DoStuff ligger i en anden klasse, så skal jeg vel først kalde klassen. F.eks. //Min klasse Class DoStuff { public string DoStuff(string aVar) { if(aVar=="") { aVar = "Variablen er tom"; } return } } //Min Form Private void Page_Load { DoStuff cDS = DoStuff string aVar = cDS.DoStuff("Et eller andet") }
ja private void Page_Load() { DoStuff cDS = new DoStuff(); string aVar = cDS.DoStuff("Et eller andet"); }
Er det ikke lidt omstændigt. Lad os forstille os at jeg også skulle benytte DoStuff klassen i andre klasser, vil der så ikke være en nemmere måde at gøre det på? I VB skal man jo blot deklarere sin funktion som public også er man home-free ;-)
du kan erklære den static
public class DoStuffClass { public static string DoStuffMethod(string aVar) { if(aVar=="") { aVar = "Variablen er tom"; } return aVar; } } private void Page_Load() { string aVar = DoStuffClass.DoStuffMethod("Et eller andet"); }
18. juli 2005 - 20:34
#10
Static??? vil det sige at først gang man deklarere sin klasse, kan man frit benytte den på tværs af alle klasser?
18. juli 2005 - 20:36
#11
static betyder at man kalder metoden op klassen og ikke på et objekt (en instans af klassen)
18. juli 2005 - 20:36
#12
sjovt eksempel: using System; public class Demo { private static int si = 0; private int nsi = 0; public Demo() { si++; nsi++; } public void printNsi() { Console.WriteLine(nsi); } public static void printSi() { Console.WriteLine(si); } public static void Main() { Demo d1 = new Demo(); Demo d2 = new Demo(); d1.printNsi(); d2.printNsi(); Demo.printSi(); } }
18. juli 2005 - 20:41
#13
Okay - Jeg tror nok jeg næsten forstår :-) Hvad så hvis jeg gerne kalde klassen Demo fra en anden klasse, og sende en parameter med?
18. juli 2005 - 20:43
#14
helt det samme ikke static metoder kaldes med: navnpåobject.navnpåmetode(argumenter); static metoder kaldes med: navnpåklasse.navnpåmetode(argumenter);
18. juli 2005 - 20:44
#15
Ahhh sådan. Kanon. Vil du komme med et svar :-)
18. juli 2005 - 21:03
#16
ok
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.