一:引數陣列
c#允許為函式指定乙個(只能指定乙個)特殊引數,這個引數必須是函式定義中的最後乙個引數,稱為引數陣列。引數陣列允許使用個數不定的引數呼叫函式,可以使用
params
關鍵字定義它們。例如:
static int sumval(params int vals)
return sum;
}static void main(string args)
", sum);
console.readkey();
}
二:傳值呼叫
c#和c/c++
一樣,預設的也是傳值呼叫函式
三:使用引用來傳遞函式引數
c++當中有引用的機制,
c#當中也有。在
c#當中使用
ref關鍵字來指定引數,使其成為引用。關於引用的好處,在學習
c++時就已經了解過。注意在
c#當中,在函式的定義和函式的呼叫時都得使用
ref關鍵字來指定。如下:
static void showdouble(ref int val)
", val);
}static void main(string args)
注意用作ref
引數的變數有兩個限制:
1,必須在函式呼叫中使用「非常量」。
2,變數必須是已經初始化過的。
四:輸出引數
使用out
關鍵字,所指定的引數是乙個輸出引數。
out關鍵字的使用方式與
ref相同。該引數的值將返回給函式呼叫中使用的變數。
out與
ref的區別如下:
把未賦值的變數作ref
引數是非法的,但可以將未賦值的變數用作
out引數
在函式使用out
引數時,必須把它看成是尚未賦值的。
注意:可以把已賦值的變數用作out
引數,但儲存在該變數中的值會在函式執行時丟失。
例如:
static int maxvalue(int intarray, out int maxindex)
}return maxval;
}
五:變數作用域
關於變數作用域,看乙個出錯的例子。**如下:
int i;
string text;
for (i = 0; i < 10; i++)
", text);
}console.writeline("last text output in loop: ", text);
出錯原因:必須在使用變數之前對其進行初始化,但text
只在for
迴圈中初始化。由於沒有在迴圈外進行初始化,付給
text
的值在迴圈塊退出時就丟失了。可以將程式改正如下即可。
int i;
string text = "";
for (i = 0; i < 10; i++)
", text);
}console.writeline("last text output in loop: ", text);
六:結構函式
結構函式與c++
當中帶函式的結構體是類似的。也即是在結構型別當中不僅可以包含資料,還可以包含函式。如下:
struct customername
}
七:函式的過載
函式的過載與c++
中的函式過載也類似。
八:委託(delegate)
委託是一種儲存函式引用的型別。
委託的宣告類似於函式,但不帶函式體,而且要使用關鍵字delegate
。委託的宣告指定了乙個返回型別和乙個引數列表。
定義了委託之後,就可以宣告該委託型別的變數。接著把這個變數初始化為與委託具有相同返回型別和引數列表的函式引用。之後,就可以使用委託變數呼叫這個函式,就像該變數是乙個函式一樣。
有了引用函式的變數之後,就可以執行不能用其他方式完成的操作。例如,可以把委託變數作為引數傳遞給乙個函式,這樣,該函式就可以使用委託呼叫它引用的任何函式,而且在執行之前不必知道呼叫的是哪個函式。如下面的例子:
static void main(string args)
else
console.writeline("result: ", process(param1, param2));
console.readkey();
}
學習筆記《C 入門經典 第6版 》C 語言 第4章
c 當中大部分的流程控制語句與 c c 中的流程控制語句都是一樣的。但也有新特性。一 布林邏輯 布林變數bool 在c 和c 得加上 stdbool.h 標頭檔案 當中也有。但是在 c 中的布林運算子有一些新的變化。1 處理布林值的布林運算子 運算子類別示例表示式結果!一元var1 var2 邏輯非...
《C 入門經典(第6版)》導讀
c 入門經典 第6版 祝賀您!當您閱讀到這裡時,離學習最重要的程式語言之一 c 又近了20秒。如果您再花23小時59分40秒,就將掌握c 程式語言的基本知識。只需24個課程 每個課程不超過1小時 就將學會重要的c 功能,如管理i o 建立迴圈和陣列 使用模板進行物件導向程式設計以及建立c 程式。每章...
《c 從入門經典》 第6版 c 簡介
1,net framework 是開發平台,包含兩大部分 龐大的 庫 類庫 可以在客戶語言 c vb 中來使用這些 common language runtime,負責管理應用程式的執行 2,使用.net framework編寫應用程式,就是使用.net 庫編寫程式。3,c 編寫在託管環境下 clr...