2017-09-25 46 views
-2
[Serializable] 
public class A 
{ 
    public int i; 
    public string j; 
    public B b; 
} 

[Serializable] 
public class B 
{ 
    public int k; 
    public string l; 
} 

A a = new A(); 
a.b.k = 0; 

在上述例子中的實例我聲明A的一個對象,並試圖在bA對象s分配的k值。但它是說對象NullReferenceException的NullReferenceException:對象沒有設置到對象C#

我缺少的東西,如何聲明一個類的對象,如果它使用另一個類作爲主類在C#中的字段?

+0

您從不初始化'A'('public B b;')中的'b'屬性。 –

回答

2

您缺少初始化類B的對象。 B b也是一個類變量!

A a = new A(); 
a.b = new B(); // This is what you are missing 
a.b.k = 0; 
+2

實際上,'b'屬性應該可以在'A'的構造函數中初始化。 –

+0

@ZoharPeled同意。這會更有意義。 – praty

+0

這應該被接受爲正確的答案。 –

相關問題