當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

C#:基本語法總結(jié)
2021-09-03 18:16:30

PS:最近學(xué)了C#,很多地方和原理和C以及C++是類似的,因此基本語法我只總結(jié)了一些相對于不同的定義方式以及一些新的概念。

這里也不再介紹相關(guān)編譯環(huán)境和工程的建立了。

一、Hello World

和其他語言一樣,都是從Hello World著手的。

代碼:

Console.Write("Hello World!");//不會換行
Console.WriteLine("Hello World!");//會自動(dòng)換行
Console.ReadKey();//相當(dāng)于在這里中斷

二、三種注釋方法

//:多用于給變量注釋

/*? ?*/:多用于大段文本注釋

///:多用于給類和方法注釋

三、變量

變量的概念、語法、使用規(guī)則和命名規(guī)則這里不在介紹了,和C以及C++幾乎是一樣的。

命名規(guī)范:駝峰命名法

要求變量名首單詞的首字母小寫,其余每個(gè)單詞的首字母大寫。

例如:?time, playerName, vipLevel,myNameIsMonkey

基本類型和C也差不多,但是區(qū)別在于:

float類型:單精度小數(shù)類型, 既能存儲整數(shù),又能存儲小數(shù),值后面需要加上一個(gè) f。

string類型:和C++幾乎一樣。

四、運(yùn)算符合表達(dá)式(和C、C++一樣,不再贅述)

五、占位符

用途:讓字符串與變量連接更舒服。

1.語法結(jié)構(gòu)
先挖坑{0},{1},{2}, 再填蘿卜(變量)進(jìn)坑。

2.注意事項(xiàng)
①你挖了幾個(gè)坑,就應(yīng)該填幾個(gè)蘿卜;
如果你多填了蘿卜,沒效果;
如果你少填了蘿卜,拋異常。
②輸出順序;
按照挖坑的順序輸出,另外蘿卜是有位置順序的。

例如:

Console.WriteLine("我的名字:{0},我今年:{1}", name, age);

六、用戶輸入與轉(zhuǎn)義符

用戶輸入:Console.ReadLine();

轉(zhuǎn)義符:

:表示換號
”:表示一個(gè)英文半角的雙引號
:表示一個(gè) tab 鍵的大空格
:表示一個(gè) BackSpace 退格鍵,會把前面的一個(gè)字符刪掉
\:表示一個(gè)
@:用在字符串的前面,有兩種用途。
①取消“”在字符串中的轉(zhuǎn)義作用,使其單純的就表示一個(gè)斜線[多用于路徑]
②將字符串按照原格式輸出

七、類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換和隱式轉(zhuǎn)換不再贅述。

Convert 類型轉(zhuǎn)換

兩個(gè)變量的類型如果相兼容,可以使用自動(dòng)類型轉(zhuǎn)換或者強(qiáng)制類型轉(zhuǎn)換。如果兩個(gè)變量的類型不兼容,比如 string 和 int,string 和 double。這個(gè)時(shí)候我們可以用 Convert 進(jìn)行轉(zhuǎn)換。

注意: 使用 Convert 進(jìn)行類型轉(zhuǎn)換,也需要滿足一個(gè)條件,條件就是“面子上要過得去”

Convert.ToInt32();
Convert.ToDouble();

八、分支結(jié)構(gòu)之 if和switch語句

不再贅述,和C、C++一樣

?九、循環(huán)語句

不再贅述,和C、C++一樣

十、數(shù)組的定義及遍歷(這里只介紹不同之處)

定義及初始化:

數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組長度];
數(shù)組初始化完成后,各種類型的數(shù)組的默認(rèn)值:
int[], 元素的值默認(rèn)都是 0;
float[], 元素的值默認(rèn)都是 0;
double[],元素的值默認(rèn)都是 0.0;
string[], 元素的值默認(rèn)都是 null;
bool[], 元素的值默認(rèn)都是 false;

for的遍歷方式和C一樣,這里介紹C#獨(dú)有的:foreach遍歷

foreach(數(shù)組數(shù)據(jù)類型 臨時(shí)變量 in 數(shù)組名)
{
Console.WriteLine(臨時(shí)變量);
}

十一、數(shù)組之內(nèi)存結(jié)構(gòu)

1.值類型與引用類型
值類型
int,float,double,bool,char
內(nèi)存:值類型的值存儲在內(nèi)存的
演示:int 類型變量間傳值 int a = 10; int b = a;
注意:這個(gè)時(shí)候單獨(dú)修改 b 的值,a 的值不會發(fā)生改變,這種傳遞叫做值傳遞。
這個(gè)時(shí)候變量之間的傳遞就是拷貝一個(gè)具體的值給對方。

引用類型
數(shù)組,字符串
內(nèi)存:引用類型的值存儲在內(nèi)存的
演示:int 數(shù)組類型變量間傳值 int[] intA = new int[]{00,111,222,444};
int[] intB = intA;
注意:這個(gè)時(shí)候單獨(dú)修改 intB 中元素的值,intA 的值是會發(fā)生改變,這種傳遞
叫做引用傳遞。
這個(gè)時(shí)候變量之間的傳遞就是拷貝一個(gè)地址給對方。

2.數(shù)組的內(nèi)存結(jié)構(gòu)
數(shù)組在內(nèi)存中是一塊連續(xù)的存儲空間存儲的。
最低的地址對應(yīng)第一個(gè)元素,最高的地址對應(yīng)最后一個(gè)元素。

十二、數(shù)組之二維數(shù)組

1.二維數(shù)組基本語法
1.聲明與初始化
聲 明:數(shù)據(jù)類型[,] 數(shù)組名;
初始化:數(shù)組名 = new 數(shù)據(jù)類型[行數(shù),列數(shù)];
聲明,初始化二合一格式:
數(shù)據(jù)類型[,] 數(shù)組名 = new 數(shù)據(jù)類型[行數(shù),列數(shù)];
2.賦值與取值
賦值:數(shù)組名[下標(biāo),下標(biāo)] = 值;
取值:數(shù)組名[下標(biāo),下標(biāo)];

3.聲明初始化賦值三合一:
數(shù)據(jù)類型[,] 數(shù)組名 = new 數(shù)據(jù)類型[,] { {0,0,0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1,1,1} };

2.二維數(shù)組的遍歷
for 循環(huán)嵌套
數(shù)組名.GetLength(軸向下標(biāo)); //可以獲取某個(gè)軸向的元素個(gè)數(shù)。

int[,] a = new int[3,4] {{0,0,0,0},{1,1,1,1},{2,2,2,2} };
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for(int j = 0;j < a.GetLength(1); j++)
                {
                    Console.WriteLine(a[i, j]);
                }
            }
        }

十三、函數(shù)

這里概念不再贅述了。。。

函數(shù)的聲明與調(diào)用

1.Pascal 命名法
帕斯卡命名規(guī)范,要求每個(gè)單詞的首字母都要大寫,其余字母小寫。
用途:多用于給類或者函數(shù)(方法)命名。
例如:ReadLine,ReadKey,ToDouble,ToInt32

2.函數(shù)的聲明(語法)

static 返回值類型 函數(shù)名([參數(shù)列表])
{
函數(shù)代碼體;
}

說明:
static:靜態(tài)標(biāo)識符;
返回值類型:如果不需要返回值就寫 void,就是無返回值的意思;
函數(shù)名:當(dāng)前功能函數(shù)的名字,要符合 Pascal 命名規(guī)范;
參數(shù)列表:如果不需要參數(shù),小括號中可以直接留空;
如果需要參數(shù),要以:參數(shù)類型 參數(shù)名 的形式書寫;

函數(shù)的調(diào)用:函數(shù)名([實(shí)際參數(shù)]);

注意:如果函數(shù)只聲明不調(diào)用,則函數(shù)中的代碼不會被執(zhí)行。

函數(shù)的參數(shù)與返回值:不再贅述。

函數(shù)重載

概念:函數(shù)的名稱相同,但是參數(shù)列表不同。調(diào)用該函數(shù)的時(shí)候,會根據(jù)不用的參數(shù),自動(dòng)選擇合適的函數(shù)重載形式。

參數(shù)不同的情況
①如果參數(shù)的個(gè)數(shù)相同,那么參數(shù)的類型就不能相同;
②如果參數(shù)的類型相同,那么參數(shù)的個(gè)數(shù)就不能相同。
注意:函數(shù)的返回值和重載沒有關(guān)系

ref參數(shù)

1.作用
將一個(gè)變量傳入一個(gè)函數(shù)中進(jìn)行“處理”,“處理”完成后,再將“處理”后的值帶出函數(shù)。

2.要求
函數(shù)外必須為變量賦值,而函數(shù)內(nèi)可以不賦值。

3.語法
形參和實(shí)參前面都要加 ref 關(guān)鍵字。
例如:Add(ref num); static void Add(ref int num);

out 參數(shù)

一個(gè)函數(shù)中如果返回多個(gè)不同類型的值,就需要用到 out 參數(shù)。

2.要求
函數(shù)外可以不為變量賦值,而函數(shù)內(nèi)必須為其賦值。

3.語法
形參和實(shí)參前面都要加 out 關(guān)鍵字。
例如:

Number(a,b, out max, out min);
static void Number(int a, int b, out int max, out int min);

?

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >