標籤:預設 his run nbsp string char OLE pre code
一般情況下,不建議使用結構。
結構中可以包含多種不同類型的欄位,方法
定義一個結構:
1 public struct Person2 {3 public string _name;//命名規範欄位前前加底線4 public int _age;5 public char _gender;6 public QQState _state; //枚舉類型7 }
結構聲明:調用
1 //聲明結構變數,實質上和枚舉一樣,int 都是變數,2 Person zhangsan;3 zhangsan._name = "zhangsan";4 zhangsan._age = 14;5 zhangsan._state = QQState.Busy;6 zhangsan._gender = ‘男‘;
結構中也可以有方法:
1 public struct Person 2 { 3 public string _name;//命名規範欄位前前加底線 4 public int _age; 5 public char _gender; 6 public QQState _state; //枚舉類型 7 public void Run() 8 { 9 Console.WriteLine("Run");10 }
調用:
zhangsan.Run();
結構特點:
結構和類不一樣,不可以new對象。直接聲明對象就可以
結構是實值型別,所以對象只在棧中,不會在堆中開空間
結構沒有預設的建構函式。
給結構加構造方法:必須把結構中所有的欄位都賦值才可以
1 /// <summary> 2 /// 沒有欄位的情況 3 /// </summary> 4 public struct Student 5 { 6 public Student() 7 { 8 9 }10 public void Study()11 {12 13 }14 }
結構new對象:
Student s = new Student();
1 /// <summary> 2 /// 有欄位的結構 3 /// </summary> 4 public struct Person 5 { 6 public string _name;//命名規範欄位前前加底線 7 public int _age; 8 public char _gender; 9 public QQState _state; //枚舉類型10 11 public Person(string name)12 {13 this._name = name;14 this._age = 12;15 this._gender = ‘男‘;16 this._state = QQState.Busy;17 18 }19 20 21 }
C#_基礎_結構Struct(八)