爲了學習的目的,我設置了一個方法來調用另一個方法來顯示我通過用戶輸入定義的值。然而,我最終得到一個討厭的錯誤:C#新手 - 嵌套方法又一個System.NullReferenceException - 對象錯誤
System.NullReferenceException - Object reference not set to an instance of an object
可能有人請解釋一下我在做什麼引起的錯誤;並且在不改變代碼的情況下進行這項工作(保留嵌套方法)。
的Program.cs
namespace Test
{
class Program
{
static void Main(string[] args)
{
Parent theParent = new Parent();
Console.WriteLine("Enter Child Name:");
string input = Console.ReadLine();
theParent.Child.Name = input;
theParent.FirstMethod();
Console.ReadLine();
}
}
}
Parent.cs
namespace Test
{
class Parent
{
public Child Child = new Child(); //I changed this line. It was originally only 'public Child Child'
public void FirstMethod()
{
Child newChild = new Child();
newChild.SecondMethod();
}
}
}
Child.cs
namespace Test
{
class Child
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public void SecondMethod()
{
Parent theParent = new Parent();
Console.WriteLine(theParent.Child.Name.ToString());
}
}
}
謝謝。當我把「公共兒童兒童」改爲「公共兒童兒童=新兒童()」時,那照顧了一個錯誤。但是,也有同樣的錯誤消息抱怨線「Console.WriteLine(theParent.Child.Name.ToString());」在Child.cs – MKANET
@MKANET:嘗試刪除'.ToString()'。 'Name'已經是'string'了,所以它不應該有所作爲。但是如果'string'是'null',它會拋出一個NullReferenceException。 –
我已經試過了。字符串是空白的。它不會顯示給Parent.Child.Name的值(來自之前的用戶輸入)。 – MKANET