型別可分為:值型別,引用型別
值型別:直接存放真正的資料,值型別都有固定的長度,值型別的變數都儲存在
堆疊(stack)上。作為值型別的變數,每個都有自己的資料,因此對乙個變數的操作不會影響其他變數。
引用型別:儲存讀資料的記憶體位址的引用,位於受管制的堆(heap)上作為引用型別的變數可以引
用同一物件;因此對乙個變數的操作會影響另乙個變數所引用的同一物件。
值型別可分為3大類:
基本型:
整型 int
如:int i=123; //也可以寫為:system.int32 i=123;
long
如: long mylong=123; //int型隱式轉換為long型
char
如:char mychar='a'
sbyte byte short ushort uint ulong
注意:(1) 書寫乙個常數時(如:23),預設為整型,若要表示非整型,可以用顯式轉換:
如:sbyte k=1;
int i=2;
k=(sbyte)i; //顯式轉換
i=k; //隱式轉換
(2) 不同整型轉換原則:小範圍型別可以隱式轉換為大範圍型別,大範圍型別轉換
為小範圍型別時要使用顯式轉換。
浮點型 float型別:32位浮點數,取值範圍在
double型別:64位浮點數,取值範圍在
布林型 bool
true false
結構型struct
如 public struct point
結構和類的區別:
結構是乙個值型別(在棧上),而類是乙個引用
型別(在堆上)。
列舉型
enum型別
常用形式有:
enum days ;
//第乙個成員值預設為0,第二個為1,……
enum days ;
//第乙個成員值從1開始
enum days ;
enum型別的使用示例:
class test
;static void main()
}引用型別
引用型別包括:類、介面、陣列、委託 等。
string型別
string mystring = "some text";
char chfirst = mystring[2]; //結果為m
當比較兩個字串是否相等時,可以直接使用「==」比較操作符。
當比較兩個字串大小時,可以使用string. compare方法,其返
回值有-1,0,1三種可能。
常用格式舉例:
(1) int i=12345;
this.textbox1.text=i.tostring();
(6) datetime dt =new datetime(2003,5,25);
this.textbox1.text=dt.tostring("yy.m.d");
//結果 03.5.25
this.textbox2.text=dt.tostring(「yyyy年m月」);
//結果 2023年5月
(7) int i=123;
double j=123.45;
string s=string.format("i:,j:",i,j);
//-7表示左對齊,佔7位
this.textbox1.text=s ;
//結果i:123 ,j: 123.45
//結果 12345(this指當前物件,或叫當前類的例項)
this.textbox2.text=i.tostring("d8");
//結果 00012345
(2) int i=123;
double j=123.45;
string s1=string.format("the value is ",i);
string s2=string.format("the value is ",j);
this.textbox1.text=s1 ;
//結果 the value is 123
this.textbox2.text=s2;
//結果 the value is 123.450
(3) double i=12345.6789
this.textbox1.text=i.tostring("f2");//結果 12345.68
(4)double i=12345.6789;
this.textbox1.text=i.tostring("n"); //結果 12,345.68
this.textbox2.text=i.tostring(「n4」); //結果 12,345.6789
(5)double i=0.126;
string s=string.format("the value is ",i);
this.textbox1.text=i.tostring("p"); //結果 12.6%
this.textbox2.text=s; //結果 the value is 12.6%
陣列特點:所有的元素型別都相同。
//一維陣列
string arr=;
string mystrings=new string[3];
int intarr1=new int[4];
int intarr2=;
int nvar=5;
//二維陣列
int[,] arr = , , };
int[,] myarr = new int[5,3];
//鋸齒型陣列
string stra=new string[3];
stra[0]=new string[2];
stra[1]=new string[3];
stra[2]=new string[5];
型別之間的轉換
位數少的轉換為位數多的,可以使用隱式轉換;
位數多的轉換為位數少的,要使用顯式轉換。
裝箱和拆箱
int i=123; //數值型別
object box=i; //裝箱操作
int j=(int)box; //拆箱操作
C 資料型別
一般來說,計算機要儲存和處理不同的資料型別,在c 中有基本的資料型別和使用者自定義資料型別以及引用型資料。我們先學習下基本的資料型別,也就是系統自帶的資料型別。每種資料型別都要佔據系統記憶體的一定空間,例如c 中的整數int 乙個整數佔4個位元組,也就是32位 計算機是用0和1二進位制來表示和處理資...
C 資料型別
bool system.boolean 1位元組 byte system.byte 1位元組無符號 sbyte system.sbyte 1位元組有符號 short system.int16 2位元組 ushort system.uint16 2位元組 int system.int32 4位元組 u...
C 資料型別
c 的資料型別可以分為3類 數值型別,引用型別,指標型別。指標型別僅在不安全 中使用。值型別包括簡單型別 如字元型,浮點型和整數型等 集合型別和結構型。引用型別包括類型別,介面型別,代表型別和陣列型別。值型別和引用型別的不同之處是值型別的變數值直接包含資料,而引用型別的變數把它們的引用儲存在物件中。...