程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .net(C#)中結構和類的區別,

.net(C#)中結構和類的區別,

編輯:C#入門知識

.net(C#)中結構和類的區別,


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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved