C#數據類型。本站提示廣大學習愛好者:(C#數據類型)文章只能為提供參考,不一定能成為您想要的結果。以下是C#數據類型正文
值類型
值類型源於System.ValueType家族,每個值類型的對象都有一個獨立的內存區域用於保存自己的值,值類型數據所在的內存區域稱為(Stack)
值類型主要包括基本數據類型(如 int,float,double)
案例:
int heightzhang=170;
int heightli=heigtzhang;
Console.writeLine("去年張浩的成績為:"+heightzhang+"李明的成績為:"+heighli);
heightli=180;
Console.writeLine("去年張浩的成績為:"+heightzhang+"李明的成績為:"+heighli);
引用類型
引用類型源於System.Object家族,在C#中引用類型主要包括數組,類,和接口等
案例:
int[] infozhang=new int[]{179,60};
int[] infoli=infozhang;
Console.write("去年張浩的身高是:"+infozhang[0]+"體重是:"+infozhang[1]+"李明的身高是:"+infoli[0]+"體重是:"+infoli[1]);
infoli[0]=180;
infoli[1]=70;
Console.write("去年張浩的身高是:"+infozhang[0]+"體重是:"+infozhang[1]+"李明的身高是:"+infoli[0]+"體重是:"+infoli[1]);
值類型和引用類型
數據類型的分類
類別描述
值類型 基本數據類型 整型:int
長整型:long
浮點型:float
雙精度型:double
字符型:char
布爾型:bool
枚舉類型 枚舉 :enum
結構類型 結構:struct
引用類型 類 基類:System.Object
字符串:string
自定義類:class
接口 接口:interface
數組 數組:int[],string[]
結構
public int id;
public int age;
public int Id{
get{ return id;}
set{ id=value;}
}
public int Age{
get{ return age;}
set{ age=value;}
}
結構的定義
訪問修飾符 struct 結構名{
//結果體
}
結構定義有以下特點:
1.結構中可以有字段,也可以有方法
2.定義時,結構中的字段不能被賦值
public struct Student{
public int id;
public int age;
}
結構的使用
結構的構成和類相似,在使用結構時,要注意以下幾個方面:
1.可以不用new,直接定義結構的對象即可‘
2.聲明結構的對象後,必須給結構的成員賦初值
public struct Student{
public int id;
public int age;
public void Show(){
Console.writeLine("ID:{0}\n年齡:{1}",id,age);
}
}
static void Main(string[] args){
Student stu;
stu.id=1001;
stu.age=20;
stu.show();
}
結構的使用經驗
結構是值類型,聲明結構變量就存儲一個結構的新副本,即系統要開辟一塊新的存儲空間,因此結構用得越多所消耗的空間也越多
裝箱和拆箱
我們說數據類型按照存儲方式可以分為值類型和引用類型,二者仍然可以相互轉換。將值類型轉換為引用類型的過程稱為裝箱,反之稱為拆箱
static void Main(string[] args){
int i=123;
object o=i;
i=456;
Console.writeLine("值類型的值為 {0}",i);
Console.writeLine("引用類型的值為 {0}",o);
}
拆箱
int i=123;
object o=i;
int j=(int)o;
不同類型的參數傳遞
1.使用值傳遞,在方法中對參數值的更改在調用後不能保留
2.所以ref方式傳遞,可以將對參數值的更改保留
值方式參數傳遞
在值方式參數傳遞時,參數可以是引用類型,也可以是值類型
使用引用類型作為參數
class Voter{
public void Vote(SE se){
se.Popularity++;
}
}
SE zhang=new SE();
zhang.Age=25;
zhang.Name="張菁";
zhang.Gender=Gender.female;
zhang.Popularity=10;
MessageBox.Show(zhang.SayHi());
Voter voter=new Voter();
voter.Vote(zhang);
MessageBox.Show(zhang.SayHi());
引用方式參數傳遞
1.使用引用類型作為參數
private void Vote(ref SE se){
se.popularity++;
}
2.使用值類型作為參數
private void Vote(ref StructSE se){
se.popularity++;
用ref方式傳遞的二種參數形式沒有區別,都會保存方法中的修改
}