2017-04-24 124 views
-3

我有一个class Program其具有class c2一个对象作为示出为处于下面的例子我们可以设置一个类的对象的属性吗?

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

    } 
} 

OUTPUT:

测试12

在上面的代码class c2具有私人参考obj1并且其getset由对象obj来自class program。如何赋值给obj和obj1,因为它们不是物理上存在的,因为在0123的帮助下没有将内存分配给它们运营商。

+0

并不清楚你在做什么问。什么是'一个类的对象的属性'? –

+0

检查这一个,可以帮助http://stackoverflow.com/questions/4142867/what-is-difference-between-property-and-variable-in-c-sharp – bradbury9

+0

属性是一个实例的成员类(除非它是'static')。相同的应用领域和方法。一个物业与一个领域无关,特别是它不是后者的延伸。 – HimBromBeere

回答

1

是的,你可以,例如

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

它们可以获取或设置,如果他们宣布的方式。

只读属性:public C2 obj {get;}

写入和读取属性public C2 obj {get;set;}

你也可以做花哨的东西与像public C2 obj {get;private set;}属性或setter方法添加自定义的验证逻辑。

您在奥莱克西的答案设置属性得到了样品

0

是的,你可以喜欢这个

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"; 

也可以intilize像这样

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