2017-10-23 2 views
-1

Ich habe eine Klasse, die Objekte hat. Ich möchte den Wert für diese inneren Objekte festlegen.Zugreifen auf innere Objekteigenschaften ohne Vererbung

Frage Ich mag den Wert einzustellen und name der Klasse Case Meinen Code drucken -

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(); 
    } 
} 

Problem -I ist null Ausnahme bekommen.

Irgendwelche Vorschläge?

+0

obj.C wird nie während der Bauphase Nach „creating obj“ auf einen Wert gesetzt, Sie müssen auch "create C" auf diesem obj mit obj.C = new Case(); –

Antwort

1

Sie benötigen eine neue Instanz von Case zuerst zu erstellen:

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

Sie müssen C instanziiert, wenn Sie eine Instanz von MyClass erstellen. So etwas wie

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

Wie obj.C ist eine komplexe Eigenschaft Sie müssen obj.C auch instanziiert wie unten,

Myclass obj = new Myclass(); 
obj.C = new Case(); 
string val = obj.C.name = "Testing"; 
Console.WriteLine(val); 
Console.ReadLine(); 
Verwandte Themen