一周學(xué)會C#(函數(shù)一)
發(fā)表時間:2024-06-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一周學(xué)會C#(函數(shù)一)C#才鳥(QQ:249178521)1.前言· C#不支持全局函數(shù) w 所有的函數(shù)必須在類內(nèi)部聲明· 無源文件和頭文件之分 w 所有的函數(shù)必須聲明的時候被實現(xiàn)int NotAllowed() /...
一周學(xué)會C#(函數(shù)一)
C#才鳥(QQ:249178521)
1.前言
· C#不支持全局函數(shù)
w 所有的函數(shù)必須在類內(nèi)部聲明
· 無源文件和頭文件之分
w 所有的函數(shù)必須聲明的時候被實現(xiàn)
int NotAllowed() //錯誤,C#沒有全局函數(shù)
{
...
}
sealed class Methods
{
void Inline()
{ ...
}
void Error()
{ ...
}; //錯誤,函數(shù)不能有結(jié)尾分號
int AlsoError(); //錯誤,函數(shù)必須聲明的時候被實現(xiàn)
}
和Java一樣,C#不允許有全局函數(shù)。所有的函數(shù)必須在類或結(jié)構(gòu)內(nèi)實現(xiàn)。函數(shù)是類或結(jié)構(gòu)的成員,函數(shù)也被稱為方法。
C#允許可以在類的聲明中加入結(jié)尾分號,例如:
sealed class Methods
{
...
};//可以有結(jié)尾分號
但是,C#不允許在函數(shù)的聲明中加入結(jié)尾分號,例如:
sealed class Methods
{
void NotAllowed() {...} ; //錯誤,函數(shù)不能有結(jié)尾分號
}
2.聲明函數(shù)
· 函數(shù)參數(shù)列表
w 各參數(shù)以逗號隔開
w 參數(shù)必須命名
w 沒有參數(shù)時括號不能省略
sealed class Methods
{
void Error(float) //錯誤,參數(shù)沒有命名
{ ...
}
void NoError(float delta)
{ ...
}
int Error(void) //錯誤,無參數(shù)時不允許使用void
{ ...
}
int NoError()
{ ...
}
}
3. 值型參數(shù)
· 一般的函數(shù)參數(shù)是實參的一個拷貝
w 實參必須預(yù)先被賦值
w 實參可以是常量類型
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ù)”這個詞均指函數(shù)參數(shù),也就是所謂的形參)
沒有被ref 或 out修飾的函數(shù)參數(shù)是一個值型參數(shù)。值型參數(shù)只有在該參數(shù)所屬的函數(shù)被調(diào)用的時候才存在,并且用調(diào)用時所傳遞的實參的值來進(jìn)行初始化。當(dāng)函數(shù)調(diào)用結(jié)束時,值型參數(shù)不復(fù)存在。
只有被預(yù)先賦值的實參才能被傳遞給值型參數(shù),例如:
int arg; // arg沒有被賦初值
Method(arg);//錯誤,實參必須預(yù)先賦初值
傳遞給函數(shù)的實參可以是純粹的數(shù)而不是變量,例如:
Method(42);
Method(21 + 21);