如何从C#partial方法返回值?

use*_*291 13 .net c#

有没有办法这样做,因为似乎部分方法必须返回void(我真的不明白这个限制,但让它成为)?

Fré*_*idi 10

好吧,从技术上讲,你可以从部分方法"返回"一个值,但它必须通过一个ref参数,所以它很尴尬:

partial void Foo(ref int result);

partial void Foo(ref int result)
{
    result = 42;
}

public void Test()
{
    int i = 0;
    Foo(ref i);
    // 'i' is 42.
}
Run Code Online (Sandbox Code Playgroud)

在该示例中,i如果Foo()未实现,则值不会更改.


RPM*_*984 8

来自MSDN:

  • 部分方法声明必须以contextual关键字partial开头,并且方法必须返回void.

  • 部分方法可以有ref但不能输出参数.

所以答案是否定的,你不能.

也许如果你更多地解释一下你的情况(为什么你需要返回一个值,为什么这个类是部分的),我们可以提供一个解决方法.


Joh*_*ers 5

您无法从部分方法返回值.

部分方法可能会也可能不会实施.如果允许从这种方法返回一个值,那么调用者会收到什么?