可能重複:
Difference between ref and out parameters in .NETC#中Out類型Vs Ref類型參數之間有什麼區別?
什麼是輸出型和C#.NET Ref類型參數之間有什麼不同?
當我們可以在什麼情況下使用?
可能重複:
Difference between ref and out parameters in .NETC#中Out類型Vs Ref類型參數之間有什麼區別?
什麼是輸出型和C#.NET Ref類型參數之間有什麼不同?
當我們可以在什麼情況下使用?
兩者都向調用者指示該方法可以修改參數的值。 out
參數必須在方法內初始化,而參數ref
可能在外部初始化。這基本上是一個合同。當你看到這需要一個out
參數的方法這意味着,調用者可以調用它不初始化值,並確保其內部就會被初始化:
Foo foo;
SomeMethod(out foo);
// at this stage we know that foo will be initialized
而與裁判:
Foo foo;
SomeMethod(ref foo); // compile time error
這是來電者的責任調用方法前初始化變量:
Foo foo = new Foo();
SomeMethod(ref foo); // ok
報價從here
out關鍵字導致參數通過引用傳遞。這是類似於ref關鍵字的 ,但ref需要變量 在傳遞之前被初始化。
一些方法,如Int32.TryParse()
使用out參數,因此將一個單位化變量傳遞給它。
顯示沒有研究工作。 – 2012-02-16 13:11:21