为什么我在使用接口时出现空异常
本文关键字:异常 接口 为什么 | 更新日期: 2024-11-06 18:44:52
public class Blah
{
public bool Whatever { get; set; }
public string WhatYouJustSaid { get; set; }
}
public interface IBlah
{
Blah BlahValues { get; set; }
}
class Class1:IBlah
{
public Blah BlahValues { get; set; }
}
然后例如:
Class1 c1 = new Class1();
c1.BlahValues.WhatYouJustSaid = "nothing";
c1.BlahValues.Whatever = false;
那么我应该如何更改BlahValues
不会为空的代码呢?
您必须初始化BlahValues
。使用对象初始值设定项,可以按如下方式完成此操作:
Class1 c1 = new Class1()
{
BlahValues = new Blah()
};
创建 c1
对象时,BlahValues
获取其默认值,即 null
。因此,当您尝试将值分配给WhatYouJustSaid
并Whatever
时,会得到一个空引用异常。
在 Class1 的构造函数中像这样使用它
public Class1()
{
this.BlahValues = new Blah()
}