3.3 輸出引數
與參考引數類似,輸出引數不會開啟新的記憶體區域。 與引用引數的區別在於:
在呼叫方法之前,無需初始化變數。
輸出型別引數用於傳遞方法返回的資料。
呼叫包含引用引數的方法時,在傳遞引數時,需要使用 out 關鍵字將引數宣告為輸出引數。 方法返回後,傳遞的變數被視為已初始化。
我們以引數和輸出引數為例進行比較。
static void squareref( ref int x )
x = x * x;
static void squareout( out int x )
x = 8;
x = x * x;
static void main()
int i = 3, j ;
squareref(ref i);
squareout(out j);
console.writeline("i = , j = ", i, j);
該函式的輸出為:
i = 9, j = 64
分析。 從上面的例子中,我們可以看到參考引數和輸出引數之間的區別。 squareref 方法使用引用引數方法,而 squareout 方法使用輸出引數方法,兩種方法都做完全相同的事情,都是平方的。 只需在 squareout 方法中將 x 的值初始化為 8 即可。
3.4 陣列引數
陣列也可以用作方法的引數,這些方法用於表示稱為陣列引數的引數,陣列引數只能放在引數列表的末尾,陣列引數只能是一維陣列。
宣告陣列引數需要使用 params 關鍵字
using system;
class test;
console.writeline("thesum:"+sum(var));console.writeline("the sum:"+sum(10,20,30,40,50));
程式被編譯並執行輸出:
the sum:15 the sum:150
3.5. 變數:作用持續時間和範圍
變數的持續時間是指變數在記憶體中存在的時間量。
變數的作用域是指程式中可以引用變數的位置。 某些變數可以在整個程式中引用,而其他變數只能在程式的有限部分中引用。
以下示例說明了例項變數和區域性變數的作用域:
using system;
class test
public int s = 1;
public void methoda()
int s = 23;
console.writeline("s in methoda is :"+ s+"after entering methoda" );
s;console.writeline("s in methoda is :"+ s+"before le**ing methoda" );
public void methodb()
static void main()
程式的輸出如下:
s in methoda is :23after entering methoda
s in methoda is :24before le**ing methoda
s in methodb is :1after entering methodb
s in methodb is :10after entering methodb
3.6 遞迴
遞迴是乙個重要的概念,在現實生活中,我們可能會遇到這樣的問題:乙個複雜的問題可以分解成簡單的問題,乙個簡單問題的解決方法和複雜問題的解決方法是一樣的,我們知道乙個簡單問題的解決方法,這就是為什麼我們可以用遞迴來解決乙個複雜的問題。
我們知道數學中的階乘表示為 n!,計算公式為:
n! = n * n-1)*(n-2)*…1
現在讓我們用遞迴的思想來考慮因子求值,因子可以寫成:
n! = n *(n-1)!
3.7 方法過載
在C語言中,可以在乙個類中定義多個同名的方法,只要它們具有不同的引數即可,這稱為方法過載。
在下面的示例中,方法過載用於計算 int 和 double 資料的平方。
public int square(int x)
return x*x;
public double square(double x)
需要強調的是,過載方法必須至少滿足以下條件之一:
引數的數量不同。
引數型別不同。
引數的順序不同。
4. C 命名空間
命名空間提供了一種組織相關類和其他型別的方法。 與檔案或元件不同,命名空間是邏輯組合,而不是物理組合。 不在同一檔案中的多個類可以共同包含在命名空間中,從而建立邏輯結構。
若要建立命名空間,需要使用 namesapce 關鍵字
4.1 命名空間的使用
雖然命名空間的使用使類組織得更好,但也引入了類全名很長的問題,使用起來非常不方便。 C 允許簡寫類的全名,C 宣告在使用類之前,需要在檔案頂部列出類所在的命名空間,並且命名空間名稱需要在 using 關鍵字前面,以便可以使用相對名稱來引用類而不是其絕對名稱。 在以下兩個示例中,第乙個示例使用類的全名,第二個示例使用類的相對名稱:
system.int32 a;使用您的全名。
using system;
int32 a;
4.2 命名空間的別名
using 關鍵字的另乙個用途是給類和命名空間賦值別名,如果命名空間名稱很長,在 **中已經用過好幾次了,但是命名空間的名稱包含在 using 指令中,可以給命名空間賦值乙個別名,語法如下:
using alias = 命名空間名稱;
5. 類方法的使用
5.1 控制台類方法
控制台類表示控制台應用程式的標準輸入、輸出和錯誤流。
5.2 數學方法
我是技術創造者