vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: VB.Net und Klassen 
Autor: WmS
Datum: 25.03.08 20:42

Wenn ich deinen Code in mein Visual Studio kopiere wird die Variable "bf" sofort grün unterstrichen und folgende Warnung erscheint:

"Die Variable bf wird verwendet bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine NullReferenceException auftreten."

=> Du musst bf nicht nur als BinaryFormatter deklarieren, sondern diesen Formatter dann auch erstellen: Dim bf As New BinaryFormatter

Bei meinen Einstellungen könnte ich dein Programm nicht einmal kompilieren, die sind zu streng für den Code.

1) Du solltest Module vermeiden. Das ist ein Überbleibsel aus VB6 und gehört nicht mehr in ein rechtes .NET-Programm hinein. Mit einer Klasse erreichst du das Gleiche so:
Public Class GlobaleVariablen
 
    Public Shared props As New Settings
 
End Class
Der Zugriff erfolgt dann so (, aber eben auch ohne dass die Klasse GlobaleVariablen mit new erzeugt werden muss. Hier also im Gegensatz zum BinaryFormatter aufgrund des Wörtchens "Shared" nicht):
GlobaleVariablen.props.pub_db_port = 3306

Der Grund, warum ich dein Programm mit meinen Standard-Einstellungen nicht einmal kompilieren könnte ist aber die Funktion "save". Die ist nämlich in dem Sinne keine Funktion.
Wenn du in VB etwas als "Function" deklariert, sagst du damit immer, dass etwas zurückgegeben wird. Gibt deine Funktion nichts zurück, deklariere sie als "Sub". "Function" schreiben und dann nichts zurückgeben ist die eine Sache, aber nach der Funktionsdeklaration folgt dann normalerweise noch die Deklaration dessen, was die Funktion zurückgibt, z.B. einen Integer-Wert.
In deinem Fall könnte es z.B. so lauten:
Public Function Save() As Integer

Wenn du solche Fehler in Zukunft vermeiden möchtest bzw. sie schon während dem Entwickeln finden möchtest, kannst du das so machen:
1) Gehe in die Projekteigenschaften ("My Project" im Projektmappen-Explorer)
2) Wechsle in die Kategorie "Kompilieren"
3) Schalte die Auswahllisten auf folgende Werte:
Option Explicit: On (sorgt dafür, dass du deine Variablen deklarieren musst)
Option Strict: On (sorgt dafür, dass du bei Deklarationen den Typ angeben musst, mit dieser Option hätte VB den Fehler bei der Funktionsdeklaration nicht zugelassen)
Option Infer: Off (nur bei VB2008 vorhanden)

Hoffe das hilft dir weiter.

cu, Lukas

#######
ICQ: 192-576-074
http://codinglukas.co.funpic.de/

Wer fragt ist ein Narr - f?r 5 Minuten.
Wer nicht fragt ist ein Narr - sein Leben lang.
Quarks&Co

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
VB.Net und Klassen1.128scherfel25.03.08 19:35
Re: VB.Net und Klassen707WmS25.03.08 20:42
Re: VB.Net und Klassen611scherfel26.03.08 09:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel