當(dāng)前位置:
首頁(yè) >
快速撑握C#知识点之变量,类型及类型转换
發(fā)布時(shí)間:2025/3/16
39
豆豆
生活随笔
收集整理的這篇文章主要介紹了
快速撑握C#知识点之变量,类型及类型转换
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.變量:變量是指在程序的運(yùn)行過程中隨時(shí)可以發(fā)生變化的量。
語法:數(shù)據(jù)類型 變量名;
例如: string?stra="這是一個(gè)字符串";
2.常量:也稱常數(shù),是一種恒定的或不可變的數(shù)值或數(shù)據(jù)項(xiàng)。
語法:?const 數(shù)據(jù)類型 常量名 = 常量值;
例如:
const?string?strconst="我是常量喔";
3.數(shù)據(jù)類型:
在C#當(dāng)中,分為兩種數(shù)據(jù)類型,值類型與引用類型.
值類型,表示實(shí)際數(shù)據(jù),只是將值存放在內(nèi)存中,值類型都存儲(chǔ)在堆棧中,包括:
簡(jiǎn)單類型:int,char,float,double,bool等,還有結(jié)構(gòu)及枚舉.
引用類型,表示指向數(shù)據(jù)的指針或引用,包含內(nèi)存堆中對(duì)象的地址,為 null時(shí)則表示未引用任何對(duì)象,包括:
類,接口,數(shù)組,字符串,委托,Object.
有兩種引用類型在C#中受到了特別的重視,它們的C#別名和預(yù)定義值類型的C#別名很相像。第一種是Object類(C#別名是object, o小寫)。這是所有值類型和引用類型的最終基類。因?yàn)樗械念愋团缮設(shè)bject,所以可以把任何類型轉(zhuǎn)換為Object類型,甚至值類型也可以轉(zhuǎn)換。所有的值類型都派生自引用類型。第二種是String類。字符串代表一個(gè)固定不變的Unicode字符序列。字符串在很多方面都像值類型,而不像引用類型。
4.類型轉(zhuǎn)換:
字符串與值類型之間的轉(zhuǎn)換:
類型.Parse(字符串),返回值為相應(yīng)的類型.
Convert.To類型(參數(shù)),參數(shù)為多種,返回值為類型.
例: static?void?Main()
{
?????int?inti?=?int.Parse("1");//類型.Parse(字符串)
?????int?intj?=?Convert.ToInt32("1");//Convert.To類型(參數(shù))
}強(qiáng)制類型轉(zhuǎn)換:
在同為值類型或同為引用類時(shí),從較小數(shù)據(jù)類型到較大數(shù)據(jù)類型的轉(zhuǎn)換稱為擴(kuò)展轉(zhuǎn)換,否則稱為收縮轉(zhuǎn)換。編譯器能進(jìn)行隱式的擴(kuò)展轉(zhuǎn)換,對(duì)于收縮轉(zhuǎn)換必須進(jìn)行顯式的強(qiáng)制性轉(zhuǎn)換。因?yàn)槭湛s轉(zhuǎn)換會(huì)導(dǎo)致丟失數(shù)據(jù),在轉(zhuǎn)換前我們要檢查實(shí)際值是否超出目標(biāo)類型的范圍。另一個(gè)辦法是使用checked運(yùn)算符,如果轉(zhuǎn)換時(shí)丟失數(shù)據(jù)將拋出一個(gè)錯(cuò)誤。
如:
static?void?Main()
{
?????int?inti?=?7;//32位的整數(shù)
??????long?intl?=?8;//64位的整數(shù)
??????intl?=?inti;//從小類型int轉(zhuǎn)向大類型long時(shí),為隱式轉(zhuǎn)換
??????inti?=?(int)intl;//把大類型logn轉(zhuǎn)為小類型int時(shí),就必須得加強(qiáng)制轉(zhuǎn)換符(int)
}
裝箱與拆箱
定義:把值類型轉(zhuǎn)換為Object的過程稱為裝箱。
由于值類型與引用類型在內(nèi)存中的存儲(chǔ)方式不同,所以我們?cè)谵D(zhuǎn)換的過程的理解上有些復(fù)雜,實(shí)際的語法跟強(qiáng)制類型轉(zhuǎn)換無區(qū)別,我們形象的稱之為裝箱,與拆箱.對(duì)于拆箱的限制其實(shí)很好理解,因?yàn)檎l也不能從裝的是蘋果的箱子里拆出葡萄來.
static?void?Main()
{
?????int?j?=?4;??//可以以下面正常的轉(zhuǎn)換語法顯式地將一個(gè)值裝箱:
??????object?ojb?=?(object)j;
?????int?k?=?(int)obj;??//使用相同的類型轉(zhuǎn)換語法可以把裝箱的變量拆箱回值類型:
????????????
??????//對(duì)拆箱操作有一些限制。只能將顯式裝箱的變量進(jìn)行拆箱。正常的強(qiáng)制轉(zhuǎn)換中的限制在這里也適用。例如,如果把一個(gè)long型值裝箱為一個(gè)對(duì)象,我們不能把對(duì)象拆箱為一個(gè)int型值,雖然在拆箱后可以顯式地把long轉(zhuǎn)換為int:
??????long?x?=?1000;
?????object?obj?=?(object)x;
?????int?i?=?(int)((long)obj);
}
關(guān)于這部分我們就先說到這里,如果有朋友想更詳細(xì)的了解,請(qǐng)點(diǎn)擊下例網(wǎng)址: [url]http://www.cnblogs.com/xy8.cn/articles/1227228.html[/url]
語法:數(shù)據(jù)類型 變量名;
例如: string?stra="這是一個(gè)字符串";
2.常量:也稱常數(shù),是一種恒定的或不可變的數(shù)值或數(shù)據(jù)項(xiàng)。
語法:?const 數(shù)據(jù)類型 常量名 = 常量值;
例如:
const?string?strconst="我是常量喔";
3.數(shù)據(jù)類型:
在C#當(dāng)中,分為兩種數(shù)據(jù)類型,值類型與引用類型.
值類型,表示實(shí)際數(shù)據(jù),只是將值存放在內(nèi)存中,值類型都存儲(chǔ)在堆棧中,包括:
簡(jiǎn)單類型:int,char,float,double,bool等,還有結(jié)構(gòu)及枚舉.
引用類型,表示指向數(shù)據(jù)的指針或引用,包含內(nèi)存堆中對(duì)象的地址,為 null時(shí)則表示未引用任何對(duì)象,包括:
類,接口,數(shù)組,字符串,委托,Object.
有兩種引用類型在C#中受到了特別的重視,它們的C#別名和預(yù)定義值類型的C#別名很相像。第一種是Object類(C#別名是object, o小寫)。這是所有值類型和引用類型的最終基類。因?yàn)樗械念愋团缮設(shè)bject,所以可以把任何類型轉(zhuǎn)換為Object類型,甚至值類型也可以轉(zhuǎn)換。所有的值類型都派生自引用類型。第二種是String類。字符串代表一個(gè)固定不變的Unicode字符序列。字符串在很多方面都像值類型,而不像引用類型。
4.類型轉(zhuǎn)換:
字符串與值類型之間的轉(zhuǎn)換:
類型.Parse(字符串),返回值為相應(yīng)的類型.
Convert.To類型(參數(shù)),參數(shù)為多種,返回值為類型.
例: static?void?Main()
{
?????int?inti?=?int.Parse("1");//類型.Parse(字符串)
?????int?intj?=?Convert.ToInt32("1");//Convert.To類型(參數(shù))
}強(qiáng)制類型轉(zhuǎn)換:
在同為值類型或同為引用類時(shí),從較小數(shù)據(jù)類型到較大數(shù)據(jù)類型的轉(zhuǎn)換稱為擴(kuò)展轉(zhuǎn)換,否則稱為收縮轉(zhuǎn)換。編譯器能進(jìn)行隱式的擴(kuò)展轉(zhuǎn)換,對(duì)于收縮轉(zhuǎn)換必須進(jìn)行顯式的強(qiáng)制性轉(zhuǎn)換。因?yàn)槭湛s轉(zhuǎn)換會(huì)導(dǎo)致丟失數(shù)據(jù),在轉(zhuǎn)換前我們要檢查實(shí)際值是否超出目標(biāo)類型的范圍。另一個(gè)辦法是使用checked運(yùn)算符,如果轉(zhuǎn)換時(shí)丟失數(shù)據(jù)將拋出一個(gè)錯(cuò)誤。
如:
static?void?Main()
{
?????int?inti?=?7;//32位的整數(shù)
??????long?intl?=?8;//64位的整數(shù)
??????intl?=?inti;//從小類型int轉(zhuǎn)向大類型long時(shí),為隱式轉(zhuǎn)換
??????inti?=?(int)intl;//把大類型logn轉(zhuǎn)為小類型int時(shí),就必須得加強(qiáng)制轉(zhuǎn)換符(int)
}
裝箱與拆箱
定義:把值類型轉(zhuǎn)換為Object的過程稱為裝箱。
由于值類型與引用類型在內(nèi)存中的存儲(chǔ)方式不同,所以我們?cè)谵D(zhuǎn)換的過程的理解上有些復(fù)雜,實(shí)際的語法跟強(qiáng)制類型轉(zhuǎn)換無區(qū)別,我們形象的稱之為裝箱,與拆箱.對(duì)于拆箱的限制其實(shí)很好理解,因?yàn)檎l也不能從裝的是蘋果的箱子里拆出葡萄來.
static?void?Main()
{
?????int?j?=?4;??//可以以下面正常的轉(zhuǎn)換語法顯式地將一個(gè)值裝箱:
??????object?ojb?=?(object)j;
?????int?k?=?(int)obj;??//使用相同的類型轉(zhuǎn)換語法可以把裝箱的變量拆箱回值類型:
????????????
??????//對(duì)拆箱操作有一些限制。只能將顯式裝箱的變量進(jìn)行拆箱。正常的強(qiáng)制轉(zhuǎn)換中的限制在這里也適用。例如,如果把一個(gè)long型值裝箱為一個(gè)對(duì)象,我們不能把對(duì)象拆箱為一個(gè)int型值,雖然在拆箱后可以顯式地把long轉(zhuǎn)換為int:
??????long?x?=?1000;
?????object?obj?=?(object)x;
?????int?i?=?(int)((long)obj);
}
關(guān)于這部分我們就先說到這里,如果有朋友想更詳細(xì)的了解,請(qǐng)點(diǎn)擊下例網(wǎng)址: [url]http://www.cnblogs.com/xy8.cn/articles/1227228.html[/url]
轉(zhuǎn)載于:https://blog.51cto.com/jianle/88978
總結(jié)
以上是生活随笔為你收集整理的快速撑握C#知识点之变量,类型及类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动化集成:Pipeline流水语法详解
- 下一篇: c#Struts框架理念和自制Strut