Was könnte ich in diesem C# Programm falsch gemacht haben?

FehlerInVS - (Windows, Programm, programmieren)

3 Antworten

Das liegt daran, dass innerhalb der statischen Klasse die Objekterzeugung fehlschlägt.

http://stackoverflow.com/questions/7017043/typeinitializationexception-exception-on-creating-an-object

In deinem Fall wird das sicherlich daran liegen, dass die Zeile

public static TcpClient ClientSocket = new TcpClient("localhost", 4662);

eine Exception schmeißt, die dann weitergetragen wird. Du könntest im Debug-Modus mal in die innerException reingucken, was da genau falsch läuft (hast du das Programm als "Release" gestartet?). Das eigentlich Problem könnte schon sein, dass Port 4662 belegt ist bzw. dein Programm versucht, diesen Port mehrfach zu belegen.

Daneben:

  • Wie schon gesagt - niemals Umlaute als Bezeichnernamen verwenden. Das fliegt dir irgendwann eher früher als später um die Ohren
  • Ich würde alle Programmelemente englisch benennen (sprich: das ist ein Quasi-Standard in der Softwareentwicklung), weil dein Quellcode sonst ein komisches Denglisch-Mischmasch ist. Weiterer Vorteil: In der englischen Sprache gibt's keine Umlaute. :)
  • Eine Klasse mit dem Namen "GlobaleVariablen" riecht schwer danach, dass irgendwas in deiner Architektur nicht optimal ist. Für sowas nimmt man in C# Konfigurationsdateien http://openbook.rheinwerk-verlag.de/visual_csharp_2010/visual_csharp_2010_15_003.htm

Vielen Dank, ceevee!
Programmierer wie euch sollte es viel mehr geben, Meister :D

1

Kannst du bitte auch das Snippet posten in dem die Klasse verwendet wird. So sieht es ein wenig aus als versuchst du die Klasse als Singleton zu verwenden. Das ist allerdings etwas tricky und selten eine gute Idee.
Generell solltest du vermeiden in Symbolnamen Umlaute zu verwenden. Das mag mit dem C# Compiler noch funktionieren aber es gibt genug Tools die dir dabei um die Ohren fliegen.

Wobei... wenn der Fragesteller einen richtigen Singleton anstelle einer statischen Klasse nutzen würde, dann sollte sein Problem nicht auftreten. Falls sein Problem das ist, was ich in meiner Antwort vermute...

0

Versuch mal die Klasse GlobaleVariablen vorher zu initialisieren = ein Objekt von ihr zu erzeugen und versuch dann auf die Klassenvariablen zuzugreifen.

Der Fehler tritt normalerweise auf, wenn eine Variable (noch) nicht zugewiesen wurde.

Das ist Quatsch. Was du meinst ist eine Null Referenz - davon ist hier nix zu sehen.

Den Fehler hier gibt es meist bei statischen Feldern und Konstruktoren.

0

JETZT isses noch SCHLIMMER! https://postimg.org/image/yw7mj8szb/

0
@mAin0x

Poste mal die Klasse in der du die Klassen verwendest

0
@mAin0x

Definiere "schlimmer" - es ist die selbe Exception, sie tritt jetzt nur an einem anderen Ort auf. C# IST KEINE prozedurale Sprache. Ganz ehrlich, ich würde das ganze Konzept entweder OOP umarbeiten oder eine Sprache wie C verwenden in der prozedurale Entwicklung vorgesehen ist.

1
@TheQ86

Ich habe es ja jz in OOP gemacht.

0

Mit welcher WoW Klasse/Rasse hattet ihr viel Spaß?

Hallo Leute, ich überlege grad welchen Charakter ich erstellen soll.Und ich wollte euch fragen welche Rasse/Klasse/Geschlecht euch besonders spaß gemacht hat.Danke!

...zur Frage

Fehlermeldung "Access violation" kann mir einer helfen .?

gerdae funktionierte das programm noch , dann kam auf einmal diese meldung:

Access violation at adress 00775C3F in module TA.exe. Read of address 000002A4.

habe schon einen neustart gemacht und deinstaliert und neu heruntergeladen... funktioniert immer noch nicht Das Program ist für eine Stempeluhr von safescan die wir neu einführten, funktionierte alles gut bis jetzt....

kann mir da jemand helfen,. und oder weiss jemand wie man das lösen kann?

...zur Frage

Hilfe! Mein Minecraft Plugin funktioniert erst nach einem Reload!?

Hey, ich programmiere seit kurzer Zeit und habe jetzt ein Problem, dass ich nicht zu lösen bekomme!

Mein Plugin funktioniert erst nach einem Reload.

Ich starte den Server, aber das Plugin wird nicht geladen, und es kommt keine Fehlermeldung. Dann mache ich einen Reload und dann funktioniert es so wie es soll!

Der komplette Code:

https://pastebin.com/93Y13i9W

Wäre cool wenn mir jemand helfen könnte!

LG: Raizer

...zur Frage

Iphone lädt nicht mehr richtig, nur noch am laptop?

Also, gestern wollte ich mein iPhone aufladen doch es kam die fehlermeldung 'siehe anhang'  danach bin ich zu einem Kumpel gefahren, sei kabel funktionierte auch nicht an meinem handy, danach bin ich zu einem Apple Shop gefahren und deren Kabel funktionierte auch nicht....

Heute mittag, just for fun wollte ich mal das iphone an machen ( war schon seit stunden 0% ) und siehe da es ging an, und ich konnte ganz normal aufladen :). Jetzt vor dem schlafen gehen wollte ich mein iphone aufladen, doch die fehlermeldung 'siehe anhang' kam wieder... Jetzt habe ich das iphone kabel mal im usb lader vom laptop rein gemacht und das klappt..... Warum kann ich also mein iPhone 5 nicht mehr mit der steckdose aufladen.???

...zur Frage

Was kann ich in meiner Bewerbung verbessern?

Ich war gestern Bei einem Berufsinformationstag von VW in Emden da hat mir eine Richtung besonders gefallen und ich hab gleich danach versucht eine gute Bewerbung zu schreiben ich finde aber das mir das nicht so gut gelungen ist deshalb bitte ich um erbesserungs vorschläge. hab einen Screenshot gemacht bild unten. bin für jede Antwort sehr dankbar :)

...zur Frage

Was möchtest Du wissen?