C# 局部函數(shù)
從Main(string[] aigs)函數(shù)中提取出代碼的原因在于,可在同一程序中復(fù)用這些提取出的代碼,而不必多次編寫它們。在此想要強調(diào)的是,在大多數(shù)情況下設(shè)計和創(chuàng)建程序時,應(yīng)該都要遵循這種思維方式。
注意隨著時間的流逝,人們期望程序做的事情越來越多,所以程序會變得越來越復(fù)雜。隨著程序功能不斷增加,會導(dǎo)致開發(fā)人員在程序中添加更多函數(shù)。而程序擁有的函數(shù)越多,對其他開發(fā)人員而言,修改(如修復(fù)bug或添加新功能)的難度就會越大。這不僅是因為函數(shù)量的增加,還因為函數(shù)的最初意圖被遺忘。這樣一來,有些函數(shù)就可能不按創(chuàng)建者的最初意圖,被用于其他目的,這樣在錯誤修改它們后就會導(dǎo)致嚴(yán)重問題。
如果發(fā)現(xiàn)需要對他人所編寫的函數(shù)進行修改,可以考慮使用局部函數(shù)。局部函數(shù)允許在另一個函數(shù)的上下文中聲明一個函數(shù),這樣做有助于提高程序的可讀性,讓他人快速理解程序的目的。
以下面的代碼為例:
class Program
{
static void Main(string[] args)
{
int myNumber = 5;
WriteLine($"Main Function = {myNumber}");
DoubleIt(myNumber);
ReadLine();
void Doublelt(int val)
{
val *= 2;
WriteLine($"Local Function - val = {val}");
}
}
}
注意,DoubleIt()函數(shù)存在于Main(striiig[]args)函數(shù)中,不能從Program類中的其他函數(shù)中調(diào)用該函數(shù)。
最后要記住的是,在函數(shù)聲明的前面添加async關(guān)鍵字可以編寫異步局部函數(shù)。異步編程是一個高級話題,它的功能是非常強大的。
點擊加載更多評論>>