static void Main(string[] args)
{
//類型
//結構:值類型
//類:引用類型
//聲明的語法:class struct
//在類中,構造函數裡,既可以給字段賦值,也可以給屬性賦值。構造函數是可以重載的
//但是,在結構的構造函數當中,必須只能給字段賦值。
//在結構的構造函數當中,我們需要給全部的字段賦值,而不能去選擇的給字段賦值
//調用:
PersonClass pc = new PersonClass();
//結構是否可以New?
//在棧開辟空間 結構new 調用結構的構造函數
PersonStruct ps = new PersonStruct();
ps.M2();
PersonStruct.M1();
Console.ReadKey();
//結構和類的構造函數:
//相同點:不管是結構還是類,本身都會有一個默認的無參數的構造函數
//不同點:當你在類中寫了一個新的構造函數之後,那個默認的無參數的構造函數都被干掉了
//但是,在結構當中,如果你寫了一個新的構造函數,那麼個默認的無參數的構造函數依然在。
//
//如果我們只是單純的存儲數據的話,我們推薦使用結構。
//如果我們想要使用面向對象的思想來開發程序,我們推薦使用我們的Class
//結構並不具備面向對象的特征
// int
}
}
public class PersonClass
{
//字段、屬性、方法、構造函數
}
public struct PersonStruct
{
//字段、屬性
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public static void M1()
{
Console.WriteLine("我是結構中的靜態方法");
}
public void M2()
{
Console.WriteLine("我是結構的非靜態方法");
}
public PersonStruct(string name, int age, char gender)
{
//this.Name = name;
//this.Age = age;
//this.Gender = gender;
this._name = name;
this._age = age;
this._gender = gender;
}