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 DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 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.