用户代码未处理NullReferenceException-未将对象引用设置为对象的实例

止痛药

我有以下C#类:

public class Locales
{
    public Region region { get; set; }
    public Buttons buttons { get; set; }
    public Fields fields { get; set; }
}

public class Region
{
    public Center center { get; set; }
    public East east { get; set; }
}

public class Center
{
    public string title { get; set; }
}

public class East
{
    public string title { get; set; }
}

public class Buttons
{
    public string save { get; set; }
}

public class Fields
{
    public Labels labels { get; set; }
}

public class Labels
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public string chooseLocale { get; set; }
}

综上所述,语言环境具有“区域”,“按钮”和“字段”。区域有中心和东部。中心和东部拥有产权。字段具有具有属性firstName,lastName和choiceLocale的标签。

在一个方法(称为GetLocale)中,我有以下代码:

Locale englishLang = new Locale(); 
englishLang.region.center.title = "Center Region";
englishLang.region.east.title = "East Region - Form";
englishLang.buttons.save = "Save";
englishLang.fields.labels.firstName = "First Name";
englishLang.fields.labels.lastName = "Last Name";
englishLang.fields.labels.chooseLocale = "Choose Your Locale";

当我运行代码时,在行处抛出“ NullReferenceException未由用户代码处理”: englishLang.region.center.title = "Center Region";

我设置属性标题,保存,名字,姓氏和choiceLocale的方式是否做错了?我尝试在此Locale englishLang = new Locale();之前和之后添加以下代码块,englishLang.region.center.title = "Center Region";但仍然收到错误消息。

Region region = new Region();
Center center = new Center();
East east = new East();
Buttons buttons = new Buttons();
Fields fields = new Fields();
Labels labels = new Labels();

我究竟做错了什么?

大卫

您的Locales对象永远不会实例化其属性,使用方代码也不会实例化它们。作为引用类型,该类中的属性的默认值为null因此,当您执行此操作时:

Locale englishLang = new Locale();

以下是值null

englishLang.region
englishLang.buttons
englishLang.fields

因此,NullReferenceException如果您尝试取消引用这些字段,则会收到,就像您在此处所做的那样:

englishLang.region.center.title = "Center Region";

该行代码试图englishLang.region通过引用其center属性来取消引用但这regionnull因为尚未实例化。

在这些DTO类的情况下,实例化这些实例的最佳位置可能是在其构造函数中。像这样的东西:

public class Locales
{
    public Region region { get; set; }
    public Buttons buttons { get; set; }
    public Fields fields { get; set; }

    public Locales()
    {
        region = new Region();
        buttons = new Buttons();
        fields = new Fields();
    }
}

这样,使用代码无需每次都手动执行,构造函数会在您每次创建的实例时自动实例化字段Locales自然,您将要对其他对象重复相同的模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未处理nullreferenceexception-未将对象引用设置为对象的实例

来自分类Dev

Unity:NullReferenceException:未将对象引用设置为对象的实例

来自分类Dev

用户代码未处理NullReferenceException-对象引用未设置为对象的实例

来自分类Dev

C# System.NullReferenceException:未将对象引用设置为对象的实例 >

来自分类Dev

未处理的异常。System.NullReferenceException:对象引用未设置为对象的实例

来自分类Dev

未将对象引用设置为数组中对象的实例

来自分类Dev

未将对象引用设置为对象实例的方法

来自分类Dev

未将对象引用设置为对象的实例 - 错误

来自分类Dev

nullreferenceexception:对象引用未设置为对象的实例

来自分类Dev

对象引用未设置为对象的实例。NullReferenceException:

来自分类Dev

NullReferenceException:对象引用未设置为对象#2的实例

来自分类Dev

nullreferenceexception:对象引用未设置为对象的实例

来自分类Dev

将值读入List对象-未将对象引用设置为对象的实例

来自分类Dev

@foreach模型为null:System.NullReferenceException:对象引用未设置为对象的实例

来自分类Dev

ASP.NET MVC-未将对象引用设置为对象的实例

来自分类Dev

Xamarin Forms Nullable属性-未将对象引用设置为对象的实例

来自分类Dev

未将对象引用设置为对象的实例:Yelp返回值

来自分类Dev

未将对象引用设置为对象实例+使用Ctrl-V或Mouse粘贴

来自分类Dev

LINQ左外部联接-未将对象引用设置为对象的实例

来自分类Dev

未将对象引用设置为MVC文件(图像)上传的对象实例

来自分类Dev

未将对象引用设置为ASP.NET中的对象实例

来自分类Dev

未将对象引用设置为ABCpdf8的对象实例

来自分类Dev

未将对象引用设置为asp.net mvc中的对象实例

来自分类Dev

未将对象引用设置为Google Cloud Loadobject中的对象实例

来自分类Dev

未将对象引用设置为对象的实例-mvc4

来自分类Dev

Visual Basic-ReDim Preserve-未将对象引用设置为对象的实例

来自分类Dev

C# - Reporting Services (rdlc) - 错误:未将对象引用设置为对象的实例

来自分类Dev

SQLCLR .NET 错误:未将对象引用设置为对象的实例

来自分类Dev

未将对象引用设置为 Java 中 SOAP WebService 的对象实例

Related 相关文章

  1. 1

    未处理nullreferenceexception-未将对象引用设置为对象的实例

  2. 2

    Unity:NullReferenceException:未将对象引用设置为对象的实例

  3. 3

    用户代码未处理NullReferenceException-对象引用未设置为对象的实例

  4. 4

    C# System.NullReferenceException:未将对象引用设置为对象的实例 >

  5. 5

    未处理的异常。System.NullReferenceException:对象引用未设置为对象的实例

  6. 6

    未将对象引用设置为数组中对象的实例

  7. 7

    未将对象引用设置为对象实例的方法

  8. 8

    未将对象引用设置为对象的实例 - 错误

  9. 9

    nullreferenceexception:对象引用未设置为对象的实例

  10. 10

    对象引用未设置为对象的实例。NullReferenceException:

  11. 11

    NullReferenceException:对象引用未设置为对象#2的实例

  12. 12

    nullreferenceexception:对象引用未设置为对象的实例

  13. 13

    将值读入List对象-未将对象引用设置为对象的实例

  14. 14

    @foreach模型为null:System.NullReferenceException:对象引用未设置为对象的实例

  15. 15

    ASP.NET MVC-未将对象引用设置为对象的实例

  16. 16

    Xamarin Forms Nullable属性-未将对象引用设置为对象的实例

  17. 17

    未将对象引用设置为对象的实例:Yelp返回值

  18. 18

    未将对象引用设置为对象实例+使用Ctrl-V或Mouse粘贴

  19. 19

    LINQ左外部联接-未将对象引用设置为对象的实例

  20. 20

    未将对象引用设置为MVC文件(图像)上传的对象实例

  21. 21

    未将对象引用设置为ASP.NET中的对象实例

  22. 22

    未将对象引用设置为ABCpdf8的对象实例

  23. 23

    未将对象引用设置为asp.net mvc中的对象实例

  24. 24

    未将对象引用设置为Google Cloud Loadobject中的对象实例

  25. 25

    未将对象引用设置为对象的实例-mvc4

  26. 26

    Visual Basic-ReDim Preserve-未将对象引用设置为对象的实例

  27. 27

    C# - Reporting Services (rdlc) - 错误:未将对象引用设置为对象的实例

  28. 28

    SQLCLR .NET 错误:未将对象引用设置为对象的实例

  29. 29

    未将对象引用设置为 Java 中 SOAP WebService 的对象实例

热门标签

归档