C#和参数中的部分方法

时间:2017-08-03 16:31:32

标签: c# ref out partial-methods

Ref和out可以改变函数参数的行为。有时我们希望将变量的实际值复制为参数。其他时候我们想要一个参考。这些修饰符影响明确的赋值分析。

我的问题是:C#中的部分方法可以有ref,out,可选的输入参数吗?

1 个答案:

答案 0 :(得分: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指出:

  

部分方法可以有参考但不能输出参数。