一周學(xué)會(huì)C#(函數(shù)一)
發(fā)表時(shí)間:2024-02-24 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一周學(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);