130得票10回答
为什么'ref'和'out'不支持多态性?

请看下面的例子: class A {} class B : A {} class C { C() { var b = new B(); Foo(b); Foo2(ref b); // <= compile-time e...

18得票6回答
“out”参数在哪些情况下有用(无法使用“ref”替代)?

据我所知,out参数的唯一用途是允许调用方从单个方法调用中获取多个返回值。但我们也可以使用ref参数来获得多个结果值!那么是否存在其他情况下,out参数可能会证明其有用性并且无法使用ref参数替代呢? 谢谢。

15得票4回答
为什么匿名方法中不允许使用输出参数?

这并不是在匿名方法中调用带有 ref 或 out 参数的方法的重复问题。 我想知道为什么匿名方法中不允许使用 out 参数。不允许使用ref参数对我来说有点有道理,但对于out参数,就不太清楚了。 你对此有什么想法吗?

14得票2回答
C#中的'out'或'ref'参数何时实际返回给调用者?

当我给一个 out 或 ref 参数分配一个值时,该值是否立即被分配给调用方提供的引用,还是在方法返回时将out和ref参数值分配给引用?如果方法抛出异常,值会被返回吗? 例如:int callerOutValue = 1; int callerRefValue = 1; MyMethod(...

11得票4回答
同行中的ref参数和赋值

我最近遇到了一个非常严重的 bug,简化后的代码如下:int x = 0; x += Increment(ref x); ...private int Increment(ref int parameter) { parameter += 1; return 1; } 调用增量...

9得票4回答
将显式转换作为 ref 参数传递(C#)

我有一个类,主要是包装了一个大数组和一些相关的管理工作。我有一个函数需要传递一个引用参数。当我将该类的实例传递到该函数时,我希望该数组被发送。 我考虑使用显式转换。假设我有一个函数,它有一个byte[]引用参数。 public void SomeFunction(ref byte[...

7得票3回答
如何将out/ref外部参数转换为F#

我有一个C#的extern声明,像这样: [DllImport("something.dll")] public static extern ReturnCode GetParent(IntPtr inRef, out IntPtr outParentRef); 如何将其...

7得票1回答
为什么 ref 参数不能像 out 参数一样被忽略?

为什么C# 7带来了内联out参数,但却没有ref参数?是否有特定的原因? 以下内容在C# 7上是有效的: int.TryParse("123", out _); 但这是无效的: public void Foo(ref int x) { } Foo(ref _); // error...