2016-07-28 22 views
-1

Am Winforms in C# mit Visual Studio 2015Ich erhalte eine Nullreferenz auf eine Eigenschaft in einer meiner Klassen

Das ist meine Klasse

public class advmessage 
{ 
    public string[] message; 
} 

so dann im Lastfall form1 mit ich tun diese

advmessage newadvmessage = new advmessage(); 
    newadvmessage[1]="Hello"; 

und für die Zuordnung, wirft es die Ausnahme für die Nullreferenz und sagt Objektreferenz auf eine Instanz eines Objekts nicht gesetzt.

Also wenn ich eine Klasse habe, die kein Array sein muss, funktioniert alles, aber auf diejenigen, die Arrays verwenden, ist, wo es die Ausnahme hat.

Auch habe ich keine Get-Set oder Return für eine der Klassen, und das könnte das Problem sein, aber noch, als ich die {get; einstellen; } Dort hatte es immer noch ein Problem. Ich könnte eine NULL-Referenz verstehen, wenn ich auf eine Null-Zeichenfolge verweisen würde, aber ich versuche nur, die Nachrichteneigenschaft festzulegen, die dem Benutzer in einem Textfeld angezeigt wird.

Jede Hilfe würde sehr geschätzt werden.

+0

Haben Sie den Code im Debugger durchlaufen? Höchstwahrscheinlich wurde Ihr Array 'newadvmessage' nicht initialisiert. – Tim

+0

Das 'get' und' set' (d. H. Eigenschaft vs. ein Feld, was Sie gerade haben, ist ein Feld) haben nichts mit dem Fehler zu tun. Aus der Sicht der besten Praktiken sollten Sie Eigenschaften und keine Felder verwenden. Felder sollten für die Klasse privat sein. – Tim

Antwort

0
public class advmessage 
{ 
    public advmessage(size) 
    { 
     message = new string[size];//or whatever size you want. 
    } 
    public string[] message; 
} 

advmessage newadvmessage = new advmessage(5); 
newadvmessage.message[1]= "Hello"; 
+0

Ok, also als ich das tat, wollte ich, dass die Klammern direkt nach der newadvmessage und vor der .message -Eigenschaft gingen. – Larryrl