2011-03-17 68 views

回答

1

必須首先初始化傳遞給參數 的參數。將 與輸出參數進行比較,其 參數不必爲 ,而是在將 傳遞給輸出參數之前顯式初始化。

1

out參數必須先分配,然後才能讀取它,然後函數返回。

A ref參數在讀取或函數返回之前不需要分配給它。

因此,可變必須在將它作爲一個ref參數之前被分配,而一個out參數可以通過它在之前被初始化。

1

ref參數允許在數據傳遞到你的功能除了發送外,還有

out參數函數不能看到參數的初始值(在編譯器將認爲它未初始化)

1

指定參數作爲out意味着函數需要一個值在返回之前分配給它。將參數指定爲ref意味着功能可以爲其分配值,但不是必需的。

請注意,這只是一個C#約定,運行時沒有區分這兩者。

0

ref當進入該方法的變量的值被認爲是被初始化並準備使用時被使用。一個例子是字符串解析系統中的一個索引:一個方法可以有一個ref int index,它將根據該方法讀取的內容遞增。

out類似於多個返回值。在調用方法之前,變量不必被初始化,變量必須在被調用的方法中設置爲,然後才返回。