一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C# 基礎(chǔ)語法

 吳敬銳 2023-09-17

目錄


gitee代碼傳送門配合代碼食用更佳

C# 基礎(chǔ)語法

??C# 語言是在 C、C++ 的基礎(chǔ)上發(fā)展而來的,因此在語法形式上有些類似。
??掌握 C# 的基本語法是學(xué)好 C# 語言的前提。
??C#語言是一種強(qiáng)類型語言,要求每個(gè)變量都必須指定數(shù)據(jù)類型。
??任何一個(gè)程序都離不開選擇語句和循環(huán)語句,例如登錄一個(gè)網(wǎng)站需要輸入用戶名和密碼,如果輸入正確,可以進(jìn)入該網(wǎng)站,否則無法登錄,這里使用的就是選擇語句。
??此外,如果輸入用戶名和密碼的次數(shù)超過 3 次就不允許登錄,則可以使用循環(huán)語句進(jìn)行判斷或者使用跳轉(zhuǎn)語句完成。


C# 注釋符

①注釋符的作用

  1. 注銷代碼
  2. 解釋代碼

②C#具有3種注釋符

  1. 單行注釋 //
  2. 多行注釋 /*要注釋的內(nèi)容*/
  3. 文檔注釋 /// 多用來解釋類或方法

C# 變量(Variable)

變量的存儲(chǔ)

變量用來在計(jì)算機(jī)當(dāng)中存儲(chǔ)數(shù)據(jù)

存儲(chǔ)變量的語法

變量類型 變量名;//聲明或者定義某個(gè)類型的變量
變量名 = 值;//給這個(gè)變量進(jìn)行賦值
//聲明并且給變量賦值的簡寫形式
變量類型 變量名 = 值;

注:=在這里并不是表示等于而是表示賦值


變量的基本數(shù)據(jù)類型

  1. 整數(shù)類型:int 只能存儲(chǔ)整數(shù),不能存儲(chǔ)小數(shù)
  2. 小數(shù)類型:double 既能存儲(chǔ)整數(shù),也能存儲(chǔ)小數(shù),小數(shù)點(diǎn)后的位數(shù) 15~16位。
  3. 金錢類型:decimal 用來存儲(chǔ)金錢,值后面需要加一個(gè)m。
  4. 字符串類型:string 用來存儲(chǔ)多個(gè)文本,也可以存儲(chǔ)空,字符串類型的值需被 雙引號(hào)引用。
  5. 字符類型:char 用來存儲(chǔ)單個(gè)字符,最多、最少只能存儲(chǔ)一個(gè)字符,不能存儲(chǔ)空,字符類型的值需被 單引號(hào)引用。
  6. 布爾類型:bool類型用來描述對(duì)或錯(cuò)。 b o o l bool bool類型的值只有truefalse兩個(gè)值。

變量的使用規(guī)則

如果你要是用變量的話,應(yīng)該先聲明再賦值最后使用。


變量的命名

首先要保證的就是這個(gè)變量的名字要有意義。

  1. 必須以“字母”、“_”、“@”開頭。(后兩個(gè)具有特殊意義)
  2. 后面可以跟任意“字母”、數(shù)字、下劃線,不能有特殊符號(hào)
  3. 以下劃線“_”的變量用于結(jié)構(gòu)中的字段、類中的字段。
  4. 符號(hào)“@”

注意

  1. 你起的變量名不要與C#系統(tǒng)中的關(guān)鍵字重復(fù)。
  2. 在C#中,大小寫是敏感的。
  3. 同一個(gè)變量名不允許重復(fù)定義(先這么認(rèn)為,不嚴(yán)謹(jǐn))

在滿足上面一系列的規(guī)則之外同時(shí)還要滿足這一系列的規(guī)范。
給變量起名字的時(shí)候要滿足兩個(gè)命名規(guī)范

  1. 駱駝(Camel)命名規(guī)范。要求變量名的首字母要小寫,其余每個(gè)單詞的首字母要大寫。多用于給變量命名。如:hightSchool
  2. Pascal 命名規(guī)范:要求每個(gè)單詞的首字母都要大寫,其余字母小寫。多用于類或者方法命名。

變量的作用域

??變量的作用域就是你能夠使用到這個(gè)變量的范圍。
??變量的作用域一般從聲明它的那個(gè)括號(hào)開始到那個(gè)括號(hào)所對(duì)應(yīng)的結(jié)束的括號(hào)結(jié)束。
??在這個(gè)范圍內(nèi),我們可以訪問并使用變量。超出這個(gè)范圍就訪問不到了。


C# 運(yùn)算符

由XX運(yùn)算符連接的表達(dá)式稱為XX表達(dá)式
如:由算術(shù)運(yùn)算符連接的表達(dá)式稱為算術(shù)表達(dá)式。

賦值運(yùn)算符

賦值運(yùn)算符中最常見的是等號(hào),除了等號(hào)以外還有很多賦值運(yùn)算符,它們通常都是與其他運(yùn)算符連用起到簡化操作的作用。

運(yùn)算符說明
=x = y,等號(hào)右邊的值賦值給等號(hào)左邊的變量,即把變量 y 的值賦給變量 x

注意:每個(gè)表達(dá)式我們都可以求解出一個(gè)定義,對(duì)于賦值表達(dá)式而言,等號(hào)左邊的變量的值,就是整個(gè)賦值表達(dá)式的值。


復(fù)合賦值運(yùn)算符

運(yùn)算符說明
+=x+=y,等同于 x=x+y
-=x-=y,等同于 x=x-y
*=x*=y,等同于 x=x*y
/=x/=y,等同于 x=x/y
%=x%=y,等同于 x=x%y

+號(hào)的作用

  1. 連接:當(dāng)+號(hào)兩邊有一邊是字符串的時(shí)候,+號(hào)就起到連接的作用。
  2. 相加:兩邊都是數(shù)字的時(shí)候。

算術(shù)運(yùn)算符

運(yùn)算符說明
+對(duì)兩個(gè)操作數(shù)做加法運(yùn)算
-對(duì)兩個(gè)操作數(shù)做減法運(yùn)算
*對(duì)兩個(gè)操作數(shù)做乘法運(yùn)算
/對(duì)兩個(gè)操作數(shù)做除法運(yùn)算
%對(duì)兩個(gè)操作數(shù)做取余運(yùn)算
++x ++++ x,等同于x = x + 1
--x ---- x,等同于x = x - 1

需要注意的是,++-- 運(yùn)算符放在操作數(shù)前和操作數(shù)后是有區(qū)別的,如果放在操作數(shù)前,需要先將操作數(shù)加 1 或減 1,然后再與其他操作數(shù)進(jìn)行運(yùn)算;如果放在操作數(shù)后,需要先與其他操作數(shù)進(jìn)行運(yùn)算,然后操作數(shù)自身再加 1。
前加加減減示例a = 2,b = ++a + 3 ? \longrightarrow ? a += 1, b = 3 + 3
后加加減減示例a = 2,b = a++ + 3 ? \longrightarrow ? b = 2 + 3, a += 1

對(duì)于像++、--這樣只需要一個(gè)操作數(shù)就能夠完成運(yùn)算的符號(hào),我們稱為一元運(yùn)算符。
對(duì)于+、-、*、/%這樣需要兩個(gè)或以上才能完成運(yùn)算的操作符,我們稱為二元運(yùn)算符
一元運(yùn)算符的優(yōu)先級(jí)要高于二元運(yùn)算符。
如果在一個(gè)表達(dá)式當(dāng)中,既有一元運(yùn)算符,又有二元運(yùn)算符,我們首先計(jì)算一元運(yùn)算符。


關(guān)系(比較)運(yùn)算符

關(guān)系運(yùn)算符是用來描述兩個(gè)事物之間的關(guān)系
關(guān)系表達(dá)式的結(jié)果是bool類型

運(yùn)算符說明
==表示兩邊表達(dá)式運(yùn)算的結(jié)果相等,注意是兩個(gè)等號(hào)
!=表示兩邊表達(dá)式運(yùn)算的結(jié)果不相等
>表示左邊表達(dá)式的值大于右邊表達(dá)式的值
<表示左邊表達(dá)式的值小于右邊表達(dá)式的值
>=表示左邊表達(dá)式的值大于等于右邊表達(dá)式的值
<=表示左邊表達(dá)式的值小于等于右邊表達(dá)式的值

邏輯運(yùn)算符

在使用邏輯運(yùn)算符時(shí)需要注意邏輯運(yùn)算符兩邊的表達(dá)式以及返回的結(jié)果都是布爾類型的

運(yùn)算符含義說明
&&邏輯與如果運(yùn)算符兩邊都為 True,則整個(gè)表達(dá)式為 True,否則為 False;如果左邊操作數(shù)為 False,則不對(duì)右邊表達(dá)式進(jìn)行計(jì)算,相當(dāng)于“且”的含義
||邏輯或如果運(yùn)算符兩邊有一個(gè)或兩個(gè)為 True,整個(gè)表達(dá)式為 True,否則為 False;如果左邊為 True,則不對(duì)右邊表達(dá)式進(jìn)行計(jì)算,相當(dāng)于“或”的含義
!邏輯非表示和原來的邏輯相反的邏輯

注:邏輯與的優(yōu)先級(jí)要高于邏輯或


三元運(yùn)算符

if-else的簡化寫法
語法

表達(dá)式1?表達(dá)式2:表達(dá)式3;

如果表達(dá)式1可以計(jì)算出true,那么表達(dá)式2的值就是整個(gè)三元表達(dá)式的值
如果表達(dá)式1可以計(jì)算出false,那么表達(dá)式3的值就是整個(gè)三元表達(dá)式的值
注意:表達(dá)式2的結(jié)果類型必須跟表達(dá)式3的結(jié)果類型一致,并且也要跟整個(gè)三元表達(dá)式的結(jié)果類型一致。


C# 占位符

使用方法:先挖個(gè)坑,再填個(gè)坑;挖坑就是“,”后變量的個(gè)數(shù),填坑就是占位符的使用。從0開始依次遞增。
使用占位符需要注意的地方

  1. 你挖了幾個(gè)坑,就應(yīng)該填幾個(gè)坑。如果你多填了,沒效果;如果你少填了,拋異常。
  2. 輸出順序:按照挖坑的順序輸出
Console.WriteLine('第一個(gè)數(shù)字是{0},第二個(gè)數(shù)字是{1},第三個(gè)數(shù)字是{2}', n1, n2, n3);

C# 轉(zhuǎn)義符

轉(zhuǎn)義符指的就是一個(gè)’ \ '+ 一個(gè)特殊的字符,組成了一個(gè)具有特殊意義的字符

轉(zhuǎn)義字符等價(jià)字符
\'單引號(hào)
\'雙引號(hào)
\\反斜杠
\0
\a警告(產(chǎn)生鳴笛音)
\b退格(放在字符串兩邊沒有效果)
\f換頁
\n換行
\r回車
\t水平制表符
\v垂直制表符

@符號(hào)

  1. 取消\在字符串中的轉(zhuǎn)義作用,使其單純的表示為一個(gè)\
  2. 將字符串按照原格式輸出
Console.WriteLine(@'今天天氣好清涼
                處處好風(fēng)光');

C# 類型轉(zhuǎn)換

隱式類型轉(zhuǎn)換(自動(dòng)類型轉(zhuǎn)換)

我們要求等號(hào)兩邊參與運(yùn)算的操作數(shù)的類型必須一致,如果不一致,滿足下列條件會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)化,或者稱之為隱式類型轉(zhuǎn)換。
滿足下面兩個(gè)條件才能發(fā)生隱式類型轉(zhuǎn)換

  1. 兩種類型相兼容。例如:intdouble兼容(都是數(shù)字類型)
  2. 目標(biāo)類型大于源類型。例如:double > int

顯式類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換)

滿足下面兩個(gè)條件才能發(fā)生顯式類型轉(zhuǎn)換

  1. 兩種類型相兼容。例如:intdouble兼容
  2. 目標(biāo)類型小于源類型。例如:int < double
int number = 10;
//int ---> double
//目標(biāo)類型 = 源類型
double d = number; //自動(dòng)類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換

double d1 = 303.6;
//double ---> int
//目標(biāo)類型 = (目標(biāo)類型)原類型
int n = (int)d1;//強(qiáng)制類型轉(zhuǎn)換,顯示類型轉(zhuǎn)換
Console.WriteLine(n); //303

Convert類型轉(zhuǎn)換

  1. 兩者不兼容的時(shí)候。例如:stringdouble、int不兼容。
  2. 面上必須要過得去。
    比如字符串'123'看起來就能夠轉(zhuǎn)成int類型,而字符串'abc'看起來就不能轉(zhuǎn)成int類型。
  3. 使用Convert進(jìn)行轉(zhuǎn)換,成功了就是成功了,失敗了就拋異常。

TryParse類型轉(zhuǎn)換

Convert底層就是使用Parse,所以Parse也會(huì)拋異常,而TryParse轉(zhuǎn)化失敗不會(huì)拋異常

int.Parse('123abc');
double.Parse('123abc');
decimal.Parse('123abc');

int.TryParse('123abc');
double.TryParse('123abc');
decimal.TryParse('123abc');

ToString類型轉(zhuǎn)換

所有類型都能夠轉(zhuǎn)換成string類型

//int n = 10;
//double n = 3.14;
//decimal n = 20000m;
QQstate n = QQstate.Busy;
string s = n.ToString();
Console.WriteLine(s);

C# 結(jié)構(gòu)劃分

??無論世界上有多少語言、又將出現(xiàn)多少語言,他們的骨架都是這三個(gè)結(jié)構(gòu)“順序結(jié)構(gòu)”、“選擇結(jié)構(gòu)”和“控制結(jié)構(gòu)”。
??順序結(jié)構(gòu):程序從Main函數(shù)進(jìn)入,從上到下一行一行的執(zhí)行,不會(huì)落下任何一行。
??選擇結(jié)構(gòu):if、if-else、if-else-if、switch-case
??循環(huán)結(jié)構(gòu):while、do-while、for、foreach


C# 分支結(jié)構(gòu)

if 語句

語法

if(判斷條件)
{
    代碼塊;
}

判斷條件:一般為關(guān)系表達(dá)式或者bool類型的值亦或是bool類型的變量。
執(zhí)行過程:當(dāng)判斷條件為 True 時(shí)執(zhí)行代碼塊中的內(nèi)容,否則不執(zhí)行并跳出if-else結(jié)構(gòu)。
if結(jié)構(gòu)的特點(diǎn):先判斷再執(zhí)行,最多執(zhí)行一條代碼。
作用:用于一種情況的判斷


if-else 語句

語法

if (判斷條件)
{
    代碼塊1;
} else {
    代碼塊2;
}

判斷條件:一般為關(guān)系表達(dá)式或者bool類型的值亦或是bool類型的變量。
執(zhí)行過程:上面語句的執(zhí)行過程是當(dāng) if 中的布爾表達(dá)式的結(jié)果為 True 時(shí)執(zhí)行代碼塊1,否則執(zhí)行代碼塊2。代碼塊1或者2執(zhí)行完之后,就跳出if-else結(jié)構(gòu)。
if-else結(jié)構(gòu)的特點(diǎn):先判斷再執(zhí)行,最少執(zhí)行一條代碼。else永遠(yuǎn)只跟離它最近的那個(gè)if配對(duì)。
作用:用于兩種情況的判斷


if-else-if 語句

語法

if (判斷條件1)
{
    代碼塊1;
} else if (判斷條件2){
    代碼塊2;
}
...
else {
    代碼塊n;
}

判斷條件:一般為關(guān)系表達(dá)式或者bool類型的值亦或是bool類型的變量。
執(zhí)行過程:先判斷條件1 的值是否為 True,如果為 True,執(zhí)行代碼塊 1,整個(gè)語句結(jié)束,否則依次判斷每個(gè)判斷條件的值,如果都不為 True,執(zhí)行else語句中的語句塊 n。
作用:用于處理多種情況的區(qū)間判斷

需要注意的是,在上面的語法中最后一個(gè) else{} 語句是可以省略的。如果省略了 else{} 語句,那么多分支的 if 語句中如果沒有判斷語句的值為 True 的語句,則不會(huì)執(zhí)行任何語句塊。


switch-case 語句

語法

switch(變量或者表達(dá)式的值)
{
	case1:要執(zhí)行的代碼;
	break;
	case2:要執(zhí)行的代碼;;
	break;
	case3:要執(zhí)行的代碼;
	break;
	......
	default:要執(zhí)行的代碼;
	break;
}

執(zhí)行過程:程序執(zhí)行到switch處,首先將括號(hào)中變量或者表達(dá)式的值計(jì)算出來,
然后拿著這個(gè)值依次跟每個(gè)case后面所帶的值進(jìn)行匹配,一旦匹配成功,則執(zhí)行該case所帶的代碼,執(zhí)行完成后,遇到break,跳出switch-case結(jié)構(gòu)。
如果跟每個(gè)case所帶的值都不匹配,就看當(dāng)前這個(gè)switch-case結(jié)構(gòu)中是否存在default,如果有default,則執(zhí)行default中的語句,如果沒有default,則該switch-case結(jié)構(gòu)什么都不做。
作用:用來處理多條件的定值判斷。只不過switch-case能夠處理的,if-else也能夠處理


C# 循環(huán)結(jié)構(gòu)

while 循環(huán)

語法

while (循環(huán)條件)
{
	循環(huán)體;
}

執(zhí)行過程: 程序運(yùn)行到while處, 首先判斷while所帶的小括號(hào)內(nèi)的循環(huán)條件是否成立,
如果成立的話, 也就是返回一個(gè)true, 則執(zhí)行循環(huán)體, 執(zhí)行完一遍循環(huán)體后, 再次回到
循環(huán)條件進(jìn)行判斷, 如果依然成立, 則繼續(xù)執(zhí)行循環(huán)體, 如果不成立, 則跳出while循環(huán)。
在while循環(huán)當(dāng)中, 一般總會(huì)有那么一行代碼, 能夠改變循環(huán)條件, 使之終有一天不再成立,
如果沒有那么一行代碼能夠改變循環(huán)條件, 也就是循環(huán)條件永遠(yuǎn)都成立, 我們稱之這種循環(huán)叫做死循環(huán)。
最簡單的最常用的死循環(huán)

while (true) {}

特點(diǎn):先判斷,再執(zhí)行,有可能一遍循環(huán)都不執(zhí)行


do-while循環(huán)

語法

do
{
	循環(huán)體;
}while(循環(huán)條件)

執(zhí)行過程: 程序首先會(huì)執(zhí)行do中的循環(huán)體, 執(zhí)行完成后, 去判斷do-while循環(huán)的循環(huán)條件, 如果成立, 則繼續(xù)執(zhí)行do中的循環(huán)體, 如果不成立, 則跳出do-while循環(huán)。
特點(diǎn): 先循環(huán), 再判斷, 最少執(zhí)行一遍循環(huán)體。


for 循環(huán)

語法

for(表達(dá)式 1; 表達(dá)式 2; 表達(dá)式3)
{
	循環(huán)體;
}

表達(dá)式1一般為聲明循環(huán)變量,記錄循環(huán)的次數(shù) (int i=0;)
表達(dá)式2一般為循環(huán)條件 (i<10)
表達(dá)式3一般為改變循環(huán)條件的代碼,使循環(huán)條件終有一天不再成立 (i++)。

執(zhí)行過程:程序首先執(zhí)行表達(dá)式1,聲明了一個(gè)循環(huán)變量用來記錄循環(huán)的次數(shù),
然后執(zhí)行表達(dá)式2 , 判斷循環(huán)條件是否成立,如果表達(dá)式 2 返回的結(jié)果為true,
則執(zhí)行循環(huán)體:當(dāng)執(zhí)行完循環(huán)體后,執(zhí)行表達(dá)式3,然后執(zhí)行表達(dá)式 2 繼續(xù)判斷循環(huán)條件是否成立,
如果成立則繼續(xù)執(zhí)行循環(huán)體,如果不成立,則跳出for循環(huán)。


C# 關(guān)鍵字

break關(guān)鍵字

  1. 可以跳出switch-case結(jié)構(gòu)
  2. 跳出當(dāng)前循環(huán)結(jié)構(gòu)

break一般不單獨(dú)的使用,而是跟著if判斷一起使用,表示當(dāng)滿足某些條件的時(shí)候,就不再循環(huán)了。


continue關(guān)鍵字

continue 會(huì)跳過當(dāng)前循環(huán)中的代碼,強(qiáng)制開始下一次循環(huán)。


C# 復(fù)雜數(shù)據(jù)類型

C# 常量(Constant)

與變量不同的是,常量在第一次被賦值后值就不能再改變。定義常量需要使用關(guān)鍵字 const 來完成。


常量的聲明

語法

const 變量語法 變量名 =;

需要注意的是,在定義常量時(shí)必須為其賦值,因?yàn)椴毁x值的話以后就再也不能賦值了。另外,也可以同時(shí)定義多個(gè)常量。


什么時(shí)候使用常量?

在程序中使用常量也會(huì)帶來很多好處,包括增強(qiáng)了程序的可讀性以及便于程序的修改。例如在一個(gè)計(jì)算率的程序中,為了保證程序中的稅率統(tǒng)一,設(shè)置一個(gè)名為 TAX 的常量來完成,如果需要修改稅率只修改該常量的值即可。


C# 枚舉(Enum)

枚舉就是一種變量類型。只是枚舉聲明、賦值、使用的方式跟那些普通的變量類型不一樣。

枚舉的作用:枚舉可以規(guī)范開發(fā)
舉個(gè)例子說明為什么會(huì)有枚舉這個(gè)東西?
比如說你現(xiàn)在和三個(gè)人共同做個(gè)某某大學(xué)管理系統(tǒng)。這是你們四個(gè)人都這些事情,并且都分配了不同的模塊,比如存儲(chǔ)性別,每個(gè)人的定義方法都不相同,你們這個(gè)時(shí)候我們可以共同定義性別的規(guī)范,這是就可以使用枚舉規(guī)范我們的開發(fā)。

語法

//聲明以及使用
[public] enum 枚舉名
{1,2,3,
	......
}

public:訪問修飾符。公開的公共的,哪都可以訪問。
enum:關(guān)鍵字,聲明枚舉的關(guān)鍵字
枚舉名:要符合Pascal命名規(guī)范


枚舉的聲明和使用

將枚舉聲明到命名空間的下面,類的外面,表示這個(gè)命名空間下,所有的類都可以使用這個(gè)枚舉。

public enum Season
{,,,}

Season s = Season.;

枚舉與基本數(shù)據(jù)類型之間的轉(zhuǎn)化

枚舉類型和int類型相互轉(zhuǎn)換
枚舉類型默認(rèn)是跟int類型相互兼容的,所以可以通過強(qiáng)制類型轉(zhuǎn)換的語法互相轉(zhuǎn)換。
當(dāng)轉(zhuǎn)換一個(gè)枚舉中沒有的值的時(shí)候,不會(huì)拋異常,而是直接將數(shù)字顯示出來。

枚舉類型和string類型相互轉(zhuǎn)換
枚舉同樣也可以跟string類型互相轉(zhuǎn)換,如果將枚舉類型轉(zhuǎn)換成string類型, 則直接調(diào)用ToString();
如果將字符串轉(zhuǎn)換成枚舉類型則需要下面這樣一行代碼:

(要轉(zhuǎn)換的枚舉類型)Enum.Parse(typeof(要轉(zhuǎn)換的枚舉類型), '要轉(zhuǎn)換的字符串');

如果轉(zhuǎn)換的字符串是數(shù)字,則就算枚舉中沒有,也不會(huì)拋異常。
如果轉(zhuǎn)換的字符串是文本,如果枚舉中沒有,則會(huì)拋異常。


C# 結(jié)構(gòu)

結(jié)構(gòu)作用:可以幫助我們一次性聲明多個(gè)不同類型的變量。

[public] struct 結(jié)構(gòu)名
{
	成員; //字段
}

變量在程序運(yùn)行期間只能存儲(chǔ)一個(gè)值,而字段可以存儲(chǔ)多個(gè)值。


C# 數(shù)組

數(shù)組作用:可以幫助我們一次性存儲(chǔ)多個(gè)相同類型的變量。
通過下標(biāo)或者索引去訪問和賦值數(shù)組中的元素。
語法

數(shù)組類型[] 數(shù)組名 = new 數(shù)組類型[數(shù)組長度];

數(shù)組的長度一旦固定了,就不能夠再改變了。


數(shù)組的排序

通過下方兩個(gè)操作可以實(shí)現(xiàn)數(shù)組的升序和降序。

Array.Sort(數(shù)組); //升序
Array.Reverse(數(shù)組); //反轉(zhuǎn)數(shù)組

C# 方法(函數(shù))

方法就是將一堆代碼進(jìn)行重用的一種機(jī)制
語法

[public] static 返回值類型 方法名([參數(shù)列表])
{
	方法體;
}

public:訪問修飾符,公開的, 公共的,哪都可以訪問
static:靜態(tài)的
返回值類型:如果不需要寫返回值,寫void
方法名:Pascal 每一個(gè)單詞的首字母都大寫,其余字母小寫
參數(shù)列表:完成這個(gè)方法所必須要提供給這個(gè)方法的條件。如果沒有參數(shù),小括號(hào)也不能省略。


方法調(diào)用

方法寫好后,如果想要被執(zhí)行,必須要在Main()函數(shù)中調(diào)用。
方法的調(diào)用語法

類名.方法名([參數(shù)]);

在某些情況下,類名是可以省略的,如果你寫的方法跟Main()函數(shù)同在一個(gè)類中,這個(gè)時(shí)候,類名可以省略。


關(guān)鍵字return

  1. 在方法中返回要返回的值。
  2. 立即結(jié)束當(dāng)前方法。

方法調(diào)用

我們?cè)?code>Main()函數(shù)中,調(diào)用Test()函數(shù),我們管Main()函數(shù)稱之為調(diào)用者,管Test()函數(shù)稱之為被調(diào)用者。

如果被調(diào)用者想要調(diào)用者的值:
1.傳遞參數(shù)
2.使用靜態(tài)字段來模擬全局變量
(CSharp沒有全局變量,但是可以用靜態(tài)字段模擬全局變量,靜態(tài)變量的作用域是聲明的類當(dāng)中)

如果調(diào)用者想要被調(diào)用者的值:
1.return 返回值;

方法需要注意的地方
1.不管是實(shí)參還是形參,都是在內(nèi)存中開辟空間。
2.方法的功能一定要單一。錯(cuò)誤示范:GetMax(int n1, int n2) //判斷閏年
3.方法中最忌諱的就是出現(xiàn)提示用戶輸入的字眼,所以你需要盡可能地不使用Console.WriteLine()方法來達(dá)到目的。


out參數(shù)

如果你在一個(gè)方法中,返回多個(gè)相同類型的值的時(shí)候,可以考慮返回一個(gè)數(shù)組。
但是,如果返回多個(gè)不同類型的值的時(shí)候,返回?cái)?shù)組就不行了,那么這個(gè)時(shí)候,我們可以考慮使用out參數(shù)。
out參數(shù)就側(cè)重于在一個(gè)方法中返回多個(gè)不同類型的值。
out參數(shù)要求在方法的內(nèi)部必須為其賦值。
out意思就是返回多余的值。


ref參數(shù)

能夠?qū)⒁粋€(gè)變量帶入一個(gè)方法中進(jìn)行改變,改變完成后,再講改變后的值帶出方法。
ref參數(shù)要求在方法外必須為其賦值,而方法內(nèi)可以不賦值。


params可變參數(shù)

將實(shí)參列表中跟可變參數(shù)數(shù)組類型一致的元素都當(dāng)作數(shù)組的元素去處理。
params 參數(shù)必須是形參表中最后一個(gè)參數(shù)。一個(gè)形參列表中只能有一個(gè)params參數(shù)。


方法的重載

方法的重載指的就是方法的名稱相同,但是參數(shù)不同。
參數(shù)不同,分為兩種情況
1.如果參數(shù)的個(gè)數(shù)相同,那么參數(shù)的類型就不能相同。
2.如果參數(shù)的類型相同,那么參數(shù)的個(gè)數(shù)就不能相同。
注:方法的重載跟返回值沒有關(guān)系


方法的遞歸

方法自己調(diào)用自己


C# 異常

異常是指 語法上沒有任何錯(cuò)誤,在程序運(yùn)行的過程當(dāng)中,由于某些原因出現(xiàn)了問題,使程序不能再正常的運(yùn)行。

異常捕獲

我們?cè)诔绦蛑薪?jīng)常會(huì)出現(xiàn)各種各樣的異常,你如果想要你的程序變得堅(jiān)強(qiáng)一些。
在你的代碼中應(yīng)該經(jīng)常性的使用try-catch來進(jìn)行異常捕獲。

哪行代碼有可能出現(xiàn)異常,你就try它一腳。
語法

try 
{
	可能會(huì)出現(xiàn)異常的代碼塊;
}
//try和catch之間不能有其它的代碼 
catch 
{
	出現(xiàn)異常后要執(zhí)行的代碼塊;
}

執(zhí)行過程:如果try中的代碼沒有出現(xiàn)異常,那么catch中的代碼不會(huì)執(zhí)行。
如果try中的代碼出現(xiàn)了異常,那怕這行出現(xiàn)異常的代碼后面還有一百行都不會(huì)執(zhí)行了。
而是直接跳到catch中執(zhí)行代碼。


產(chǎn)生隨機(jī)數(shù)

Random r = new Random();
int rNumber = r.Next(1, 11); //左閉右開

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品成人一区二区三区夜夜夜| 日韩一区欧美二区国产| 免费一级欧美大片免费看| 99久久精品午夜一区| 欧美日韩一级黄片免费观看| 国产成人精品国产亚洲欧洲| 五月婷婷六月丁香在线观看| 九九热在线免费在线观看| 九九九热视频免费观看| 激情中文字幕在线观看| 国产成人精品午夜福利| 亚洲中文字幕三区四区| 中文字幕一区二区三区中文| 丁香七月啪啪激情综合| 亚洲中文字幕在线综合视频| 国产精品激情在线观看| 人妻人妻人人妻人人澡| 国产成人综合亚洲欧美日韩| 日本免费一本一二区三区| 亚洲精品成人午夜久久| 精品国产成人av一区二区三区| 欧美不卡高清一区二区三区| 一本久道久久综合中文字幕| 四季av一区二区播放| 又黄又爽禁片视频在线观看| 偷自拍亚洲欧美一区二页| 国产av熟女一区二区三区四区| 日韩欧美综合中文字幕| 色综合视频一区二区观看| 福利新区一区二区人口| 九九热视频网在线观看| 亚洲美女国产精品久久| 国产日韩在线一二三区| 老熟女露脸一二三四区| 中文字幕无线码一区欧美| 欧美一级片日韩一级片| 中文字幕久久精品亚洲乱码| 粉嫩内射av一区二区| 午夜福利92在线观看| 久草视频在线视频在线观看| 日韩一区二区三区久久|