任何人都可以建議我確切使用out關鍵字作為引數,以及它如何連線從函式返回多個值,如在post中,我與變數與正常變數混淆.任何人都可以幫助我.
解決方法:
這經常令人困惑,我認為msdn文件實際上有點「只有在已知的情況下才會清楚」.也就是說,它是正確的,但只有你已經理解了這個概念才真正有意義.
這是我如何看待它.
常規引數生成引數值的副本.當你說:
static int m(int z)
int x = 123;
int y = m(x);
就像你說的那樣:
int x = 123;
int z = x; // make a copy of x
z = z + 1;
int y = z;
ref或out引數為現有變數建立別名.當你說
static void n(ref int q)
int x = 123;
n(x);
這跟說:
int x = 123;
// magic: q is now an another name for variable x
q = q + 1;
q和x是兩個不同的名稱,它們指的是同乙個變數.遞增q也會增加x,因為它們是相同的.前乙個示例中的z和x是兩個不同的名稱,它們指的是兩個不同的變數.增加z不會改變x.
總結:「out」和「ref」只是表示「不要建立新變數;而是暫時為現有變數建立第二個名稱」.
那現在清楚了嗎?
更新:我沒有說「out」和「ref」之間的區別是什麼.區別很簡單.在「呼叫方」一側,在呼叫方法之前,「ref」必須是明確賦值的變數. 「出局」不一定是.在「被呼叫方」一側,可以在寫入之前讀取「ref」,但必須在讀取之前寫入「out」.此外,必須在控制正常離開方法之前寫入「out」.
標籤:c,net,keyword,out
在C 中使用 Params 關鍵字
有時方法可能需要接受可變個數的引數。為了達到這個目的c 提供了 params 關鍵字。使用 params 關鍵字的語法 params datatype argument name 為了使用 params 關鍵字必須宣告乙個一維陣列作為引數。在引數前面新增了 params 關鍵字,c 將可以接收任意個...
VB中Byval關鍵字的使用。
在visual basic中,按值傳遞方式通過關鍵字 byval by value 來實現。也就是說,在定義通用過程時,如果形參前面有關鍵字byval,則該引數用傳值方式傳送,否則即以引用 即按位址 方式傳遞。這裡的形參x前有關鍵字byval,呼叫時以按值方式傳遞實參。也就是說,外部的變數數值不會因...
C 關鍵字使用
關鍵字就是c 中被規定了用途的一些單詞。關鍵字都是小寫字母組成的,在c 中嚴格區分大小寫。using 匯入命名空間要使用的類關鍵字 namespace 命名空間關鍵字 class 類關鍵字 static 靜態的 void 無返回值 資料型別 char 字元型別,儲存用單引號 括起來的字元,char ...