国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#入門經典札記_Ch05變量的更多內容

2019-11-17 03:11:11
字體:
來源:轉載
供稿:網友
C#入門經典札記_Ch05變量的更多內容

Chapter05變量的更多內容

5.1類型轉換

1.無論什么類型,所有的數據都是一系列的位,即一組0和1。變量的含義是通過解釋這些數據的方式來傳達的。最簡單的示例是char類型,這種類型用一個數字表示Unicode字符集中的一個字符。實際上,這個數字與ushort的存儲方式相同----他們都是存儲0~65535之間的數字。

2.一般情況下,不同類型的變量使用不同的模式來表達數據。這意味著,即使可以把一系列的位從一種類型的變量移動到另一種類型的變量中(也許他們占用的存儲空間相同,也許目標類型有足夠的存儲空間包含所有的源數據位),結果也可能與期望的不同。這并不是數據位從一個變量到另一個變量的一對一映射,而是需要對數據進行轉換。

5.1.1隱式轉換

1.bool和string沒有隱式轉換

2.隱式轉換的規則:任何類型A,只要取值范圍完全包含在類型B的取值范圍內,就可以隱式轉換為類型B。

5.1.2顯示轉換

1.關鍵字checked和unchecked

5.1.3使用convert命令進行顯示轉換

Convert.ToInt32(val)

轉換的名稱略不同于C#類型名稱,例如,要轉換為int,應使用Convert.ToInt32()。這是因為這些命令來自于.netframework的System名稱空間,而不是C#本身。這樣他們就可以在除C#以外的其他.net兼容語言中使用。

5.2復雜的變量類型

5.2.1枚舉

有時希望變量提取的是一個固定集合中的值,就可以使用枚舉類型。

1.定義枚舉

枚舉可以使用enum關鍵字來定義:

EnumtypeName:underluingType

{

values1,

values2,

……

valuesN

}

接著聲明這個新類型的變量:

typeNamevarName;

并賦值:

varName=typeName.value;

2.枚舉使用一個基本類型(underlying)來存儲。在默認情況下,該類型為int,可以是byte,short,ushort,int,uint,long和ulong。所以枚舉和數組一樣,數據類型只有一種的。

3.在默認情況下,每個只都會根據定義的順序(從0開始),自動賦給對應的基本類型值。這意味著value1的值是0,value2是2......??梢灾貙戇@個賦值過程,使用=運算符。

4.還可以使用一個值作為另一個枚舉的基礎值,為多個枚舉指定相同的值。沒有賦值的任何值都會自動獲得一個初始值,這里使用的值是比最后一個明確聲明的值大一的序列。

5.把枚舉轉化為其他數據類型?

6.使用typeof(<var>)運算符,可以得到操作數類型。

5.2.2結構

結構就是由幾個數據組成的數據結構,這些數據可能有不同的類型。

1.定義結構

使用struct關鍵字來定義

struct<typeName>

{

<menberDeclarations>

}

<memberDeclarations>部分包含的變量的定義(成為結構的數據成員),其格式與往常一樣,每個成員的聲明都采用如下的形式:

<accessibility><type><name>;

如:

structmyStruct

{

pubilcintx;

pubilcdoubley;

}

定義了這個結構類型之后,就可以定義新類型的變量,來使用這個結構:

myStructmyStr;

還可以通過句點字符訪問這個組合變量中的數據成員:

myStr.x=2;

myStr.y=2.3;

5.2.3數組

前面所有的類型都有一個共同點:他們都只存儲一個值(結構中存儲一組值)。有時,需要儲存許多數據,有時需要同時存儲類型相同的幾個值,而不是每個值都使用不同的變量。

數組是一個變量的下標列表,存儲在數組類型的變量中。數組有一個基本類型,數組的各個元素都是這種類型。

1.聲明數組:

<baseType>[]<name>;

其中<baseType>可以是任何變量類型,包括本章前面介紹的枚舉和結構類型。

初始化數組有兩種方式。

1)可以以字面形式指定數組的完整內容。需要提供一個用逗號隔開的元素值列表,該列表放在花括號中如:

int[]myIntArray={1,4,5,7,9};

2)也可以指定數組的大小,再使用new關鍵字初始化數組元素。需要使用下述語法:

int[]myIntArray=newint[5];

notice:

  這里使用關鍵字new顯示的初始化數組,用一個常量定義其大小。這種方式會給所有的數組元素都賦予同一個默認值,對于數值類型來說,其默認值是0。也可以使用非常量變量來進行初始化,如:

int[]myIntArray=newint[arraySize];

3)另外,還可以使用這兩種初始化方式的組合:

int[]myIntArray=newint[5]{1,3,5,7,9};

使用這種方式,數組的大小必須與元素的個數相匹配。

如果使用變量定義其大小,該變量必須是一個常量,必須用const關鍵字例如:

constintarraySize=5;

int[]myIntArray=newint[arraySize]{1,3,5,7,9};

2.foreach循環

foreach(<baseType><name>in<array>)

{

//canuse<name>foreachelemet

}

這個循環會迭代每個元素,依次把每個元素放在變量<name>中,且不存在訪問非法的危險。使用這種方法和標準的for循環的主要區別是foreach循環對數組內容進行只讀訪問,所以不能改變任何元素的值。

3.多維數組

1)二位數組的聲明:

<baseType>[,]<name>;

多維數組只需要更多的逗號:

<baseType>[,,,]<name>;

2)聲明和初始化

double[,]hillHeight=newdouble[3,4];

還可以使用字面值進行初始賦值,這里使用嵌套的花括號用逗號隔開,如:

double[,]hillHeight={{1,1,1,},{2,2,2,2},{3,3,3,3}};

4.數組的數組(變長數組)

可以使用變長數組,其中每行都有不同的元素個數。為此,需要這樣一個數組,其中的每個元素都是另一個數組。也可以有數組的數組的數組,或更復雜的數組。但是,注意這些數組必須有相同的基本類型。

1)聲明數組的數組(變長數組),其語法要在數組的聲明中指定多個方括號對,例如:

int[][]jaggedIntArray;

2)初始化

有兩種方式:可以初始化包含其他數組的數組(稱之子數組)然后依次初始化子數組:

jaggedIntArray=newint[2][];

jaggedIntArray[0]=newint[3];

jaggedIntArray[1]=newint[4];

也可以使用上述字面值賦值的一種改進形式:

jaggedIntArray=newint[3][]{newint[]{1,2,3},newint[]{1},newint[]{1,2}};

也可以簡化,把數組的初始化和聲明放在同一行上,如:

int[][]jaggedIntArray={newint[]{1,2,3},newint[]{1},newint[]{1,2}};

3)使用foreach迭代時,通常需要嵌套該循環,循環該數組本身和每個子數組。因為數組jaggedIntArray包含的是int[]元素,而不是int元素。

5.3字符串的處理

1.string類型變量可以看作是char變量的只讀數組,如:

stringmyString=”Astring”;

charmyChar=myString[4];

2.但是,不能用這種方式為各個字符變量賦值。為了獲得一個可寫的char數組,可以使用下面的代碼,其中使用了數組變量的ToCharArray()命令:

stringmyString=”Astring”;

char[]myChars=myString.ToChatArray();

接著就可以用標準方式處理char數組。也可以在foreach循環中使用字符串。

3.myString.Length;

4.myString.ToLower();myString.ToUpper();

5.<string>.Trim()

1)可以使用<string>.Trim()刪除輸入內容前面<string>.TrimStart()的和后面的空格<string>.TrimEnd()。

2)也可以使用該命令刪除指定的字符,只要在一個char數組中指定這些字符即可,如:

char[]trimChars={‘‘,’e’,’s’};

stringuserResponse=Console.ReadLine();

userResponse=userResponse.Trim(trimChars);

if(userResponse==”y”)

{

//actonresponse.}

6.<string>.PadLeft()和<string>.PadRight()

1)可以在字符串的左邊或者右邊添加空格

myString=”Aligned”;

myString=myString.PadLeft(10,);

2)也可以添加指定的字符到字符串上,這需要一個char,如:

myString=”Aligned”;

myString=myString.PadLeft(10,’-’);//這將會在myString開頭加上3個’-’。

7.<string>.Split()

1)可以把string轉換為string數組,把它的指定的位置分隔開。這些位置采用char數組的形式。如:

stringmyString=“Thisisatest.”

char[]separator={‘’};

string[]myWords=myString.Split(separator);

notice:

在使用split()時,刪除了分隔符。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜泉县| 理塘县| 柳江县| 凉山| 进贤县| 莎车县| 城固县| 丰县| 石阡县| 汝南县| 上思县| 襄汾县| 蓬莱市| 崇义县| 新建县| 称多县| 大英县| 濮阳县| 南昌市| 临泉县| 宣武区| 丁青县| 阿图什市| 洛川县| 德惠市| 尖扎县| 全南县| 莱阳市| 高平市| 宝清县| 台州市| 抚远县| 化隆| 嘉定区| 精河县| 杂多县| 千阳县| 菏泽市| 罗平县| 桃园县| 涿鹿县|