Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Wie kann ich von einer Sub in die andere "weiterleiten" Visual Basic?
Ich möchte von der Sub Main() in die Sub Rechenart() "weiterleiten".
Was muss ich in der Sub Main() eingeben damit das funktioniert?
Ach ja, falls das bei Visual Basic 2010 ausschlaggebend ist: Es ist eine Konsolenanwendung.
(Das dient nur als Übung um mir das Programmieren etwas näher zu bringen. :) )
2 Antworten
- 🐟 Fish 🐟Lv 7vor 10 JahrenBeste Antwort
Kommt auf das VB an
VB6 und VBA werden ohne Klammern aufgeufen In VB 20XX .Net mit Klammer
Bsp.:
public Sub Rechenart()
End Sub
* Aufruf VB 6 / VBA
Test
* Aufruf VB20XX
Test()
Aufruf einer nicht static Methode einer Klasse wird IMMER über ein Objekt aufgerufen
<Objekt>.Rechenart()
* Wenn das Objekt seine eigene Methode aufruft heißt das Objekt Me. Also
Me.Rechenart()
Das Me. kann aber auch weg gelassen werden.
* Wenn das Objekt von aussen aufgerufen wird sieht das so aus
Dim a as MeineKlasse
a.Rechenart()
* Ist die Methode static deklariert dann beziehen sich die Aufrufe nicht auf ein Objekt sondern auf die Klasse
class MeineKlasse
public static Sub Rechenart()
End Sub
end class
Aufruf ist dann:
MeineKlasse.Rechenart()
* Aufruf In Zeilenbasic ist nochmal was anderes. Hier erfolgt der Aufruf mit
Gosub Rechenart_Lable
oder
Gosub <Zeilennummer>
Nun zu deiner Konsoleanwendung
Die Main wird in eimem Modul angelegt. Damit ist die Main Global verfügbar. Für den Aufruf Kommt es drauf an wo die Sub Rechenart() angelegt wurde.
Im einem Modul
Sub Main()
Rechenart()
End Sub
In MeineKlasse als Methode
Sub Main()
Dim a as MeineKlasse
a=new MeineKlasse()
a.Rechenart()
End Sub
In MeineKlasse als static Methode
Sub Main()
MeineKlasse.Rechenart()
End Sub
@Guitarfreak "Dies funktioniert aber nur, solange die Methoden in der selben Klasse sind. Ansonsten musst du ein Objekt erstellen."
Das stimmt für VB nicht. VB gibt die Möglichkeit Module statt Klassen zu definieren. In diesen Modulen angelegte Funktionen und Unterprogramme sind wenn sie public sind überall verfügbar. Das entspricht einer Funktionsdeklaration in C++ ausserhalb einer Klasse. C# und Java läßt das tatsächlich nicht zu weil es der Objekorientierung wiederspricht.
Übrigens hat VB keinen Zeilentrenner wie Pascal, C,C++ oder C# wo ein Zeile mit Punkt bzw. Semikolon abgeschlossen wird. Daher mußt einen Befehl immer mit Unterstrich am Ende abschließen wenn der Befehl noch nicht zuende ist.
- Anonymvor 10 Jahren
Also, ich glaube du meinst ausführen.
Ich bin zwar nicht vertraut mit Visual Basic, habe aber Visual C#, C++ und PHP programmiert.
Du führst Methoden aus, indem du ganz einfach ihren Namen aufrufst.
also
Rechenart();
ich glaub in vb könnts sogar ohne Semikolon sein, ich bin mir nicht sicher.
Dies funktioniert aber nur, solange die Methoden in der selben Klasse sind.
Ansonsten musst du ein Objekt erstellen.