1 namespace Test 2 { 3 class A 4 { 5 private int _id; 6 private string _text; 7 public int Id 8 { 9 get { return _id; } 10 set { _id = value; } 11 } 12 public string Text 13 { 14 get { return _text; } 15 set { _text = value; } 16 } 17 public A() { } 18 } 19 class B 20 { 21 private int _id; 22 private string _text; 23 public int Id 24 { 25 get { return _id; } 26 set { _id = value; } 27 } 28 public string Text 29 { 30 get { return _text; } 31 set { _text = value; } 32 } 33 public B() { } 34 public B(int _id, string _text) 35 { 36 this.Id = _id; 37 this._text = _text; 38 } 39 } 40 class C 41 { 42 public int Id; 43 public string Text; 44 } 45 class Program 46 { 47 static void Main(string[] args) 48 { 49 //第一种情况的类这样给变量赋值 50 A a = new A(); 51 a.Id = 1; 52 a.Text = "A"; 53 //第二种情况的类这样给变量赋值 54 B b = new B(2,"B"); 55 //第三种情况的类这样给变量赋值 56 C c = new C() { 57 Id=3, 58 Text="C", 59 }; 60 } 61 } 62 63 }
个人感觉第三种情况代码少,写的也很简练,就是不知道这样合不合理,有没有不可预料的后果?
感觉差不多,从内存分配的角度看,也一样。
期待更专业的回答
属性比公共的字段好 还有属性的写法可以简写的 public int Id{get;set;}
public int Id{get;set;}这么写属性是没有意义的,它和public int Id是一样的,属性的最大特点是set,比如Age年龄,用set属性可以限制年龄大于18而小于100,单纯这么写 public int Id{get;set;}是没有意义的,我个人感觉,不知道对否?
@易2013: 我也说了,是简写