out(C#中的out)

示例

當希望方法返回多個值時,聲明 out方法很有用。使用 out參數的方法仍然可以將變數用作返回類型(請參見 return),但它還可以將一個或多個對象作為 out參數返回給調用方法。此示例使用 out在一個方法調用中返回三個變數。請注意,第三個參數所賦的值為 Null。這樣便允許方法有選擇地返回值

基本介紹

  • 中文名out
  • 外文名out
  • 所屬類別:軟體開發 程式語言
  • 語言:C#
  • 用途:聲明 out方法
  • 含義:方法返回多個值
  • 原理:參數通過引用來傳遞
操作介紹
out關鍵字會導致參數通過引用來傳遞。這與 ref關鍵字類似,不同之處在於 ref要求變數必須在傳遞之前進行初始化。若要使用 out參數,方法定義和調用方法都必須顯式使用 out關鍵字。例如:
classOutExample{staticvoidMethod(outinti){i=44;}staticvoidMain(){intvalue;Method(outvalue);//valueisnow44}}
儘管作為 out參數傳遞的變數不需要在傳遞之前進行初始化,但需要調用方法以便在方法返回之前賦值
refout關鍵字在運行時的處理方式不同,但在編譯時的處理方式相同。因此,如果一個方法採用 ref參數,而另一個方法採用 out參數,則無法重載這兩個方法。例如,從編譯的角度來看,以下代碼中的兩個方法是完全相同的,因此將不會編譯以下代碼:
classCS0663_Example{//compilererrorCS0663:"cannotdefineoverloaded//methodsthatdifferonlyonrefandout"publicvoidSampleMethod(outinti){}publicvoidSampleMethod(refinti){}}
但是,如果一個方法採用 refout參數,而另一個方法不採用這兩類參數,則可以進行重載,如下所示:
classRefOutOverloadExample{publicvoidSampleMethod(inti){}publicvoidSampleMethod(outinti){}}
屬性不是變數,因此不能作為 out參數傳遞。
classOutReturnExample{staticvoidMethod(outinti,outstrings1,outstrings2){i=44;s1="I'vebeenreturned";s2=null;}staticvoidMain(){intvalue;stringstr1,str2;Method(outvalue,outstr1,outstr2);//valueisnow44//str1isnow"I'vebeenreturned"//str2is(still)null;}}

相關詞條

熱門詞條

聯絡我們