2016-08-10 1 views
2

Ich habe folgende zwei Klasse, die bereits zu XYZEine Klasse Daten verwenden, in einem anderen Klassendaten C#

Country Class

 
public class country_master : XYZ 
{ 
     private string _id; 

     public string id 
     { 
      get { return _id; } 
      set { _id = value; } 
     } 
     private string _country_code; 

     public string country_code 
     { 
      get { return _country_code; } 
      set { _country_code = value; } 
     } 


     private string _country_name; 

     public string country_name 
     { 
      get { return _country_name; } 
      set { _country_name = value; } 
     } 
} 

Staats Klasse

 
public class state_master: XYZ 
{ 
     private string _id; 

     public string id 
     { 
      get { return _id; } 
      set { _id = value; } 
     } 
     private string _state_code; 

     public string state_code 
     { 
      get { return _state_code; } 
      set { _state_code= value; } 
     } 


     private string _state_name; 

     public string state_name 
     { 
      get { return _state_name; } 
      set { _state_name= value; } 
     } 
} 
    vererbt wird
  • Jetzt möchte ichverwendenin meiner state_master Klasse wie es möglich ist?

Vielen Dank.

+2

Wie willst du es benutzen? In einer Methode? Haben Sie eine eindeutige Instanz pro Instanz des 'state_master'? – doctorlove

+0

in state_master Methode. –

+0

Bro, die Klasse 'state_master' kann nur' XYE'-Eigenschaften verwenden, wenn Sie 'country_name' verwenden möchten, können Sie eine Instance von' country_master' als Eigenschaft in Ihrer 'state_master'-Klasse haben, oder verschieben Sie' country_name' in ' XYZ-Klasse. –

Antwort

3

Sie benötigen eine Variable vom Typ country_master in Ihrer state_master Klasse. Dann können Sie die Eigenschaft country_name zugreifen.

Vererbung ist leider nicht möglich. (Wenn Sie einen Bruder haben, können Sie nicht nur seine Hände benutzen, auch wenn Sie vom selben Elternteil erben Sie würden Ihr Bruder persönlich brauchen..)

Beispiel:

public class state_master: XYZ 
{ 
    private country_master _cm; 

    public country_master cm 
    { 
     get { return _cm; } 
     set { _cm = value; } 
    } 

    public void state_method() 
    { 
     this.cm = new country_master(); 
     this.cm.country_name; 
    } 

} 

Eine andere Möglichkeit wäre natürlich zu passieren die Variable von außen an der Aufruf der Methode

public void state_method(string country_name) 
{ 
    // use country name 
} 

Aufruf site:

state_master sm = new state_master(); 
country_master csm = new country_master(); 

sm.state_method(cm.countr_name); 

(Jetzt fragen Sie Ihren Bruder Sie eine Hand zu leihen)

0

Sie Ihren Code, so dass state_master vererben country_master ändern

public class state_master: country_master 
+0

Öffentliche Klasse state_master: XYZ ist obligatorisch, weil die XYZ-Eigenschaften und ihre Methoden in der state_master-Klasse verwendet werden. –

+0

Da country_master XYZ erbt, würde state_master sowohl XYZ als auch country_master –

+0

@ Ehsan.Saradar erben. Haben Sie das ausprobiert? von 2 Basisklassen erben? –

2

Es gibt mehr als einen Weg, die Haut eine Katze.

Sie können eine neue Instanz von country_master erstellen:

public class state_master: XYZ 
{ 
    private country_master CountryMaster; 
    // Class constructor 
    public state_master() 
    { 
     CountryMaster = new country_master(); 
    } 

    private string _id; 
    ... 

oder eine bestehende Instanz country_master an den Konstruktor:

public class state_master: XYZ 
{ 
    private country_master CountryMaster; 
    // Class constructor 
    public state_master(country_master cm) 
    { 
     CountryMaster = cm; 
    } 

    private string _id; 
    ... 

und nennen Sie es mit

country_master MyCountry = new country_master(); 
state_master MyState = new state_master(MyCountry); 
Verwandte Themen