2017-08-03 76 views
-6

Ref和Out可以更改函數參數的行爲。有時我們希望將一個變量的實際值作爲參數進行復制。其他時候我們想要參考。這些修飾符影響明確的賦值分析。C#中的部分方法和參數

我的問題是:可以在C#中的部分方法有ref,out,可選的輸入參數?

+1

你試過了嗎? :) – Felipe

+0

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods#partial-methods – user6144226

+1

從上面的鏈接文檔:*部分方法可以參考,但不能輸出參數。* –

回答

1

通過與代碼實驗中this example好像你可以發現,這是可以使用refparams,並且默認參數值,但不out

partial class A 
{ 
    partial void OnSomethingHappened(string s); 
    partial void useRef(ref string s); 
    partial void useOpt(string s1, string s2 = null); 
    partial void useArgs(params string [] s); 
} 

// This part can be in a separate file. 
partial class A 
{ 
    // Comment out this method and the program 
    // will still compile. 
    partial void OnSomethingHappened(String s) 
    { 
     Console.WriteLine("Something happened: {0}", s); 
    } 
} 

此外,由@由the docs linked解釋user6144226並由@marc_s指出:

部分方法可以有ref但不能輸出參數。

+2

downvotes的提示說:「這個問題沒有顯示任何研究工作;它不清楚或沒有用。」那麼,你有它。 – EJoshuaS

+0

這很公平。 – Felipe

+0

部分方法不支持OUT參數有什麼具體原因嗎? – Tony