【问题标题】:I get a null reference on a property in one of my classes [duplicate]我在我的一个类中的一个属性上得到一个空引用[重复]
【发布时间】:2016-12-03 07:04:40
【问题描述】:

我在 c# 中使用 winforms 和 Visual Studio 2015

这是我的课

public class advmessage
{
    public string[] message;
}

那么在 form1 的加载事件中我会这样做

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

对于那个赋值,它会抛出空引用异常,并表示对象引用未设置为对象的实例。

因此,如果我有一个不需要是数组的类,则一切正常,但在使用数组的类中,它有例外。

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

任何帮助将不胜感激。

【问题讨论】:

  • 您是否在调试器中单步执行了代码?很可能您的数组 newadvmessage 尚未初始化。
  • getset(即属性与字段,您现在拥有的是字段)与错误无关。从最佳实践的角度来看,您应该使用属性,而不是字段。字段应该是类私有的。

标签: c# winforms class nullreferenceexception


【解决方案1】:
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";

【讨论】:

  • 好的,所以当我这样做时,它希望括号直接放在 newadvmessage 之后和 .message 属性之前。
猜你喜欢
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 2021-11-25
  • 2019-09-06
  • 1970-01-01
  • 2018-09-14
相关资源
最近更新 更多