2017-10-23 9 views
-1

オブジェクトを持つクラスがあります。その内部オブジェクトの値を設定します。クラスの継承のない内部オブジェクトプロパティへのアクセス

質問私は値を設定したいと印刷nameCase 私のコード -

public class Case 
{ 
    public string name { get; set; } 
} 
public class Myclass 
{ 
    public Case C { get; set; } 
} 
class Hello 
{ 
    static void Main() 
    { 
     Myclass obj = new Myclass(); 
     string val = obj.C.name = "Testing"; 
     Console.WriteLine(val); 
     Console.ReadLine(); 
    } 
} 

問題 -Iがnull例外を取得しています。

提案がありますか?

+0

obj.Cは「OBJを作成」した後に建設 の間の値に設定されることはありません、 obj.C = new Case();でこのobj上に "C"を作成する必要があります。 –

答えて

1

最初Caseの新しいインスタンスを作成する必要があります。

obj.C = new Case() ; 
string value = obj.C.name = "Testing"; 
0

あなたはMyClassのインスタンスを作成するときにCをインスタンス化する必要があります。 obj.Cとして

public class Case 
{ 
    public string name { get; set; } 
} 
public class Myclass 
{ 
    public Myclass(string name) { C = new Case(); C.name = name; } 
    public Case C { get; set; } 
} 
class Hello 
{ 
    static void Main() 
    { 
     Myclass obj = new Myclass("Testing"); 
     string val = obj.C.name; 
     Console.WriteLine(val); 
     Console.ReadLine(); 
    } 
} 
0

ような何かが、あなたにも以下のようなobj.Cをインスタンス化する必要がある複雑なプロパティで、

Myclass obj = new Myclass(); 
obj.C = new Case(); 
string val = obj.C.name = "Testing"; 
Console.WriteLine(val); 
Console.ReadLine(); 
関連する問題