2017-04-24 1 views
-3

J'ai un class Program qui ont un objet de class c2 comme indiqué dans un exemple ci-dessousPeut-on définir les propriétés d'un objet d'une classe?

class c2{ 
    public string Name; 
    public int RollNo; 
    public c2(string Name , int RollNo){ 
     this.Name = Name; 
     this.RollNo = RollNo; 
    } 

    private c2 obj1; 
    public c2 obj{ 
     get 
     { 
      return obj1; 
     } 
     set{ 
      obj1=value; 
     } 
    } 
    public void show(){ 
     Console.WriteLine(""+obj1.Name+" "+obj1.RollNo); 
    } 
} 
public class Program 
{ 
    public static void Main(string[] args) 
    { 
     //Your code goes here 
     c2 objNew = new c2("Test",12); 
     objNew.obj = objNew; 
     objNew.show(); 

    } 
} 

SORTIE:

test 12

Dans le code ci-dessus class c2 a une référence privée obj1 et qui est getset par un objet obj de class program .Comment la valeur est affectée à obj et obj1 car ils n'existent pas physiquement car la mémoire ne leur est pas affectée à l'aide deOpérateur.

+0

ne sait pas ce que vous êtes demander. Quelles sont «les propriétés d'un objet d'une classe»? –

+0

Cochez cette case, peut être utile http://stackoverflow.com/questions/4142867/what-is-difference-between-property-and-variable-in-c-sharp – bradbury9

+0

Une propriété est un membre d'une instance d'un class (sauf si c'est static). Les mêmes appiles pour les champs et les méthodes. Une propriété n'a rien à voir avec un champ, en particulier ce n'est pas une extension de ce dernier. – HimBromBeere

Répondre

1

Oui, vous pouvez, par exemple

class C1{ 
    public C2 Obj {get;set;} 
} 

class C2{} 

public class Program 
{ 
    public static void Main() 
    { 
     C1 c1 = new C1(); 
     C2 prop1 = c1.Obj; 
     c1.Obj = new C2(); 
    } 
} 
0

Ils peuvent être obtenir ou de définir, si elles sont déclarées de cette façon.

propriété Readonly: public C2 obj {get;}

écrire et lire des biens public C2 obj {get;set;}

Vous pouvez aussi faire des choses de fantaisie avec des propriétés telles que public C2 obj {get;private set;} ou ajouter une logique de validation personnalisée dans la méthode setter.

Vous avez un échantillon dans l'établissement d'une propriété dans la réponse de Oleksii

0

Oui vous pouvez aimer ce

class Car 
{ 
    public string Name { get; set; } 
    public Color Color { get; set; } 
    public CarManufacturer Manufacturer { get; set; } 
} 

Car car = new Car(); 
car.Name = "Corvette"; 
car.Color = Color.Yellow; 
car.Manufacturer = new CarManufacturer(); 
car.Manufacturer.Name = "Chevrolet"; 
car.Manufacturer.Country = "USA"; 

aussi vous pouvez intilize comme ça

Car car = new Car { 
       Name = "Chevrolet Corvette", 
       Color = Color.Yellow, 
       Manufacturer = new CarManufacturer { 
        Name = "Chevrolet", 
        Country = "USA" 
       } 
      };