2016-07-28 76 views
-1

正在使用C#的WinForms与Visual Studio 2015年我得到一个属性空引用我的一个类

这是我的课

public class advmessage 
{ 
    public string[] message; 
} 

所以后来在Form 1的Load事件中,我做这

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

并为该指派,它引发空引用的异常,并说对象引用未设置为对象的实例。所以如果我有一个不需要是数组的类,那么一切都可以找到,但是在那些使用数组的地方,它就是它的例外。

此外,我没有得到任何类的设置或返回,这可能是问题,但是当我添加{get;组; }在那里它仍然有问题。我可以理解一个空引用,如果我引用了一个空字符串,但我只是试图设置将在文本框中显示给用户的消息属性。

任何帮助将不胜感激。

+0

您是否已经在调试器中逐步了解代码?很可能你的数组'newadvmessage'尚未初始化。 – Tim

+0

'get'和'set'(即属性vs字段,你现在拥有的是一个字段)与错误无关。从最佳实践的角度来看,您应该使用属性,而不是字段。字段应该对班级是私人的。 – Tim

回答

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

好吧,所以当我这样做时,它希望括号直接在newadvmessage之后和.message属性之前。 – Larryrl

相关问题