Csharp es ist ein Objektverweis erforderlich, wie erstelle ich einen?

Bild1 - (Computer, programmieren, C Sharp) Bild2 - (Computer, programmieren, C Sharp)

4 Antworten

Die Antwort ist einfach: Du kannst nicht in einer statischen Methode (Bei dir GetAllFiles) auf ein nicht-statisches Feld (listBox1) zugreifen. Enweder übergibst du listBox1 beim Aufruf deiner statischen Methode oder du lässt dir von GetAllFiles nur eine Liste mit Pfaden zurückgeben und füllst nach dem Aufruf deine Listbox (vorrausgesetzt die Methode, welche GetAllFiles aufruft nicht-statisch ist)

Ich vermute auch mal start, dass du WPF verwendest. Da brauchst du nicht jeden einzelnen String mit Add hinzufügen, sondern einfach die ItemsSource-Property der ListBox setzen.

Dein Objekt "listbox" ist Klassenintern! Du versuchst aber über eine statische Funktion auf eine klasseninterne Variable zuzugreifen. Das geht nicht. Woher soll die statische Funktion wissen WELCHE Instanz du meinst?

Offenbar ist die Listbox null. Warum auch immer. Das läßt sich aus dem Stückchen Code leider nicht erkennen. lG - DD

jundo324 
Fragesteller
 10.12.2015, 16:41
0
drdrakken  10.12.2015, 16:47
@jundo324

Das nützt auch nicht viel da man nicht sieht wo die Listbox definiert ist.

0
jundo324 
Fragesteller
 10.12.2015, 16:51
@drdrakken
 <ListBox x:Name="listBox1" HorizontalAlignment="Left" Height="160" VerticalAlignment="Top" Width="686" Margin="0,104,-326,-164" SelectionChanged="listBox1_SelectionChanged" />
meinst du das mit definition?
0
Omnivore08  12.12.2015, 02:55
@drdrakken

doch das sieht man. Man kann es jedenfalls herleiten, da in der Methode "suchenachliedern" auch auf listbox verwiesen wird. Und da zeigt er kein Fehler an. ListBox ist (wie üblich bei klickibunti) als ganz normale Instanz innerhalb der Klasseninstanz deklariert.

Jedoch versucht er in der STATISCHEN Methode "getallfiles" auf ein Objekt der Klasseninstanz zuzugreifen. Und das geht NIE! Statische Methoden können auch nur auf statische Objekte zugreifen ODER man verweist explitzit auf die Listbox. Dazu muss man aber natürlich sagen um welche Instanz es sich handelt.

GetAllFiles darf nicht statisch sein!

0