明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

一周學(xué)會(huì)C#(函數(shù)一)

[摘要]一周學(xué)會(huì)C#(函數(shù)一)C#才鳥(QQ:249178521)1.前言· C#不支持全局函數(shù) w 所有的函數(shù)必須在類內(nèi)部聲明· 無源文件和頭文件之分 w 所有的函數(shù)必須聲明的時(shí)候被實(shí)現(xiàn)int NotAllowed() /...
一周學(xué)會(huì)C#(函數(shù)一)

C#才鳥(QQ:249178521)

1.前言

· C#不支持全局函數(shù)

w 所有的函數(shù)必須在類內(nèi)部聲明

· 無源文件和頭文件之分

w 所有的函數(shù)必須聲明的時(shí)候被實(shí)現(xiàn)

int NotAllowed() //錯(cuò)誤,C#沒有全局函數(shù)

{

...

}

sealed class Methods

{

void Inline()

{ ...

}

void Error()

{ ...

}; //錯(cuò)誤,函數(shù)不能有結(jié)尾分號(hào)

int AlsoError(); //錯(cuò)誤,函數(shù)必須聲明的時(shí)候被實(shí)現(xiàn)

}

和Java一樣,C#不允許有全局函數(shù)。所有的函數(shù)必須在類或結(jié)構(gòu)內(nèi)實(shí)現(xiàn)。函數(shù)是類或結(jié)構(gòu)的成員,函數(shù)也被稱為方法。

C#允許可以在類的聲明中加入結(jié)尾分號(hào),例如:

sealed class Methods

{

...

};//可以有結(jié)尾分號(hào)

但是,C#不允許在函數(shù)的聲明中加入結(jié)尾分號(hào),例如:

sealed class Methods

{

void NotAllowed() {...} ; //錯(cuò)誤,函數(shù)不能有結(jié)尾分號(hào)

}

2.聲明函數(shù)

· 函數(shù)參數(shù)列表

w 各參數(shù)以逗號(hào)隔開

w 參數(shù)必須命名

w 沒有參數(shù)時(shí)括號(hào)不能省略

sealed class Methods

{

void Error(float) //錯(cuò)誤,參數(shù)沒有命名

{ ...

}

void NoError(float delta)

{ ...

}



int Error(void) //錯(cuò)誤,無參數(shù)時(shí)不允許使用void

{ ...

}

int NoError()

{ ...

}

}

3. 值型參數(shù)

· 一般的函數(shù)參數(shù)是實(shí)參的一個(gè)拷貝

w 實(shí)參必須預(yù)先被賦值

w 實(shí)參可以是常量類型

sealed class ParameterPassing

{

static void Method(int parameter)

{

parameter = 42;

}

static void Main()

{

int arg = 0;

Console.Write(arg); //結(jié)果為0

Method(arg);

Console.Write(arg); //結(jié)果為0

}

}

(注:為了敘述的方便,以后所出現(xiàn)的“參數(shù)”這個(gè)詞均指函數(shù)參數(shù),也就是所謂的形參)

沒有被ref 或 out修飾的函數(shù)參數(shù)是一個(gè)值型參數(shù)。值型參數(shù)只有在該參數(shù)所屬的函數(shù)被調(diào)用的時(shí)候才存在,并且用調(diào)用時(shí)所傳遞的實(shí)參的值來進(jìn)行初始化。當(dāng)函數(shù)調(diào)用結(jié)束時(shí),值型參數(shù)不復(fù)存在。

只有被預(yù)先賦值的實(shí)參才能被傳遞給值型參數(shù),例如:

int arg; // arg沒有被賦初值

Method(arg);//錯(cuò)誤,實(shí)參必須預(yù)先賦初值

傳遞給函數(shù)的實(shí)參可以是純粹的數(shù)而不是變量,例如:

Method(42);

Method(21 + 21);