1.值類(lèi)型(ValueType)
值類(lèi)型包括:數(shù)值類(lèi)型,結(jié)構(gòu)體携冤,bool型悼粮,用戶定義的結(jié)構(gòu)體,枚舉曾棕,可空類(lèi)型扣猫。
值類(lèi)型的變量直接存儲(chǔ)數(shù)據(jù),分配在托管棧中睁蕾。變量會(huì)在創(chuàng)建它們的方法返回時(shí)自動(dòng)釋放苞笨,例如在一個(gè)方法中聲明Char型的變量name=’C’债朵,當(dāng)實(shí)例化它的方法結(jié)束時(shí),name變量在棧上占用的內(nèi)存就會(huì)自動(dòng)釋放
C#的所有值類(lèi)型均隱式派生自System.ValueType瀑凝。
結(jié)構(gòu)體:struct(直接派生于System.ValueType)序芦。
數(shù)值類(lèi)型:整型,sbyte(System.SByte的別 名)粤咪,short(System.Int16)谚中,int(System.Int32),long(System.Int64)寥枝,byte(System.Byte)宪塔,ushort(System.UInt16),uint(System.UInt32)囊拜,ulong(System.UInt64)某筐,char(System.Char)。
浮點(diǎn)型:float(System.Single)冠跷,double(System.Double)南誊。
財(cái)務(wù)計(jì)算的高精度decimal型:decimal(System.Decimal)。
bool型:bool(System.Boolean的別名)蜜托。
用戶定義的結(jié)構(gòu)體(派生于System.ValueType)抄囚。
枚舉:enum(派生于System.Enum)。
可空類(lèi)型(派生于System.Nullable<T>泛型結(jié)構(gòu)體橄务,T?實(shí)際上是System.Nullable<T>的別名
2.引用類(lèi)型(ReferenceType)
引用類(lèi)型包括:數(shù)組幔托,用戶定義的類(lèi)、接口蜂挪、委托重挑,object,字符串锅劝,null類(lèi)型攒驰,類(lèi)。
引用類(lèi)型的變量持有的是數(shù)據(jù)的引用故爵,數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)堆,分配在托管堆中隅津,變量并不會(huì)在創(chuàng)建它們的方法結(jié)束時(shí)釋放內(nèi)存诬垂,它們所占用的內(nèi)存會(huì)被CLR中的垃圾回收機(jī)制釋放。
數(shù)組(派生于System.Array)
用戶需定義以下類(lèi)型:
類(lèi):class(派生于System.Object)伦仍;
接口:interface(接口不是一個(gè)“東西”结窘,所以不存在派生于何處的問(wèn)題。接口只是表示一種contract約定[contract])充蓝。
委托:delegate(派生于System.Delegate)隧枫。
object(System.Object的別名)喉磁;
字符串:string(System.String的別名)。