【发布时间】:2014-04-19 22:13:10
【问题描述】:
我有以下 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; }
}
综上所述,Locales 有 Region、Buttons 和 Fields。地区有中部和东部。中心和东部拥有产权。字段具有标签,其具有属性 firstName、lastName 和 chooseLocale。
在一个方法(称为 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";
我在设置属性 title、save、firstName、lastName 和 chooseLocale 的方式上做错了吗?
我尝试在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();
我做错了什么?
【问题讨论】:
-
如果这段代码的目的是支持不同的语言,我建议看看 .Net 框架中的资源。
-
NullReferenceException的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。