nagita
Goto Top

VB.NET gibt es include wie bei PHP?

Hallo

bin im Moment dabei, über Visual Studio mit VB.NET ein paar Anwendungen zu schreiben.
Funktioniert auch schon ganz gut. Man lernt dazu.

Wenn ich Funktionen habe, die ich in verschiedenen Projekten verwenden möchte, wäre es ja nicht gut, wenn
ich jedesmal diese Funktion in den Source schreibe.
Bei PHP kenne ich es so, dass ich meine Funktionen in einer Datei stehen habe (z.B. funktionen.php) und diese
an passender Stelle mit
include "funktionen.php";  
in den Programmsource einfüge.

Gibt es sowas bei VB auch?
Hab jetzt ne ganze Weile gegoogled, aber nichts passendes gefunden.

Content-ID: 666226

Url: https://administrator.de/contentid/666226

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

NordicMike
NordicMike 29.04.2021 um 09:53:35 Uhr
Goto Top
Ein Verweis auf Google wird nicht gerne gesehen in einem Forum, aber, den ganzen Text und die Warterei hättest du dir sparen können :c)

Google, erster Treffer:
https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/ ...
148121
148121 29.04.2021 aktualisiert um 09:57:53 Uhr
Goto Top
Funktionen in eine Klasse (*.class) Datei auslagern und dann in deinen Projekten als Referenz ein (Rechtsklick auf Projekt > Referenz einfügen).
Dann kannst du jederzeit in deinem Projekt über den Klassennamen darauf zugreifen.

Gruß w.
148121
148121 29.04.2021 aktualisiert um 10:10:28 Uhr
Goto Top
Zitat von @NordicMike:

Ein Verweis auf Google wird nicht gerne gesehen in einem Forum, aber, den ganzen Text und die Warterei hättest du dir sparen können :c)
Google, erster Treffer:
https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/ ...

Und dir würde genauer Lesen mal etwas stehen ...
Verweist auf eine andere Datei, in der die Typen und Member im Quellcode beschrieben werden.
filename
Erforderlich. Der Name der Datei, die die Dokumentation enthält.


Gruß w.
NordicMike
NordicMike 29.04.2021 um 10:10:36 Uhr
Goto Top
Ich habe gelesen:

Bei PHP kenne ich es so, dass ich meine Funktionen in einer Datei stehen hab

Genau das macht der include Befehl in vb.net
148121
148121 29.04.2021 aktualisiert um 10:12:40 Uhr
Goto Top
Zitat von @NordicMike:

Ich habe gelesen:
Genau das macht der include Befehl in vb.net
Nein in dem File können nur Kommentare zu den Funktionen stehen kein Code ansich.
nagita
nagita 29.04.2021 um 10:25:24 Uhr
Goto Top
Die Funktion habe ich in eine Klasse ausgelagert.
Leider funktioniert Rechtsklick auf Projekte > Referenz einfügen nicht.
Soll heißen, dass ich nichts in Visual Studio finde, wie ich Referenzen einfüge.
Meine Klasse heißt Funktionen.vb
148121
Lösung 148121 29.04.2021 aktualisiert um 10:30:07 Uhr
Goto Top
Zitat von @nagita:

Die Funktion habe ich in eine Klasse ausgelagert.
Leider funktioniert Rechtsklick auf Projekte > Referenz einfügen nicht.
Soll heißen, dass ich nichts in Visual Studio finde, wie ich Referenzen einfüge.
Meine Klasse heißt Funktionen.vb
Das war für c# aber vb ist es ähnlich einfach unter Hinzufügen ...
screenshot
nagita
nagita 29.04.2021 um 10:34:45 Uhr
Goto Top
Sorry, aber wenn man damit noch nichts zu tun hatte, ist es halt nicht einfach.
Jeder fängt mal neu an.
Hab jetzt aber was gefunden, was auch funktioniert.
Dim Funktionenklasse As Funktionen
Funktionenklasse = New Funktionen

die Klasse
Public Class Funktionen
  Function irgentwas()
    . . . .
  end Funktion
end Class
nagita
nagita 29.04.2021 um 10:37:34 Uhr
Goto Top
Werde das mit dem Hinzufügen usw. aber ausprobieren.
Danke auf jeden Fall. Bin schon eine ganze Ecke weiter.
148121
148121 29.04.2021 aktualisiert um 10:49:36 Uhr
Goto Top
Das ist ja auch normal. Man muss die Klasse vorher instanzieren wenn man sie nutzen will, wenn du das nicht willst musst du deine Funktionen als Shared (static in c#) markieren dann sind sie auch ohne Instanz direkt aufrufbar ... Grundlagen objektorientierte Programmierung face-wink.
Public Class Testklasse
    Public Shared Function Hallo()
        MsgBox("Hallo")  
    End Function
End Class

Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Testklasse.Hallo()
    End Sub
End Class
GNULinux
GNULinux 29.04.2021 aktualisiert um 10:49:27 Uhr
Goto Top
Deine Klasse "Funktionen" ist OOP und das sollte man heutzutage auch bevorzugt einsetzen, sofern keine triftigen Gründe dagegen sprechen. Lose Funktionen einzubinden wie du das mit deiner functions.php gemacht hast ist ein altes Entwicklungsmuster, es stammt aus der Anfangszeit von PHP und wird in der Form von .NET gar nicht unterstützt, wie du schon gemerkt hast. Eine Klasse Funktionen geht aber eher am Konzept vorbei. Die Klasse sollte eine definierte Funktion haben, was darüber hinaus geht kommt in eine neue Klasse. Ich empfehle dir daher, dich mit OOP als Konzept zu beschäftigen.

Grundsätzlich musst du auf Code verweisen den du einbindest - egal ob OOP oder prozedural. Visual Studio nimmt dir die Arbeit innerhalb des Projektes aber ab. Wenn du eine neue Klasse hinzufügst, wird die automatisch gelinkt. Verweise hinzufügen ist daher unnötig und wird nur gebraucht, wenn du externen Code (z.B. eine Bibliothek) einbinden möchtest. Wobei ein Paketmanager da für viele Fälle die bessere Wahl ist, da händische Verweise sehr starr sind (funktionieren nur bei dir).

OT: Ich würde dir C# empfehlen. VB.NET ist eingestampft. Damit neu anzufangen macht daher wenig Sinn, außer wenn man Legacy Codebasen hat. Und wenn du PHP bereits kannst, ist der Syntax von C# näher an PHP dran als bei VB.NET. Das Framework bleibt in beiden Fällen das Gleiche, es geht "nur" um die Sprache in der Ebene darüber.
mbehrens
mbehrens 29.04.2021 um 13:36:46 Uhr
Goto Top
Zitat von @nagita:

bin im Moment dabei, über Visual Studio mit VB.NET ein paar Anwendungen zu schreiben.

Wenn es wirklich Visual Basic als Sprache für die Zukunft bleiben soll, wäre ein Umstieg auf Mercury als Sprachimplementierung sicherlich sinnvoll, da Microsoft keine Unterstützung neuerer Plattformfeatures plant.

Future features of .NET Core that require language changes may not be supported in Visual Basic.