【发布时间】:2015-12-18 17:22:17
【问题描述】:
我正在将一些旧的 VB.NET 转换为 C#。我遇到的更小的问题之一是如何处理将大对象传递给方法。在 VB 中,我们会使用 ByRef 关键字,如下所示:
Friend Sub New(ByRef Parent As WorkSheet)
'INITIALIZE OBJECT
Me.WS = Parent
pColorId = 64
pZoomScale = 100
End Sub
但在 C# 中,有一长串限制使这成为不可能。例如,refs 不能有默认值,不能传入常量、null 或 this,因为它们是只读的。
有没有简单的解决方案?还是您只是忽略它并在没有限定符的情况下传递所有内容并且编译器只是做正确的事情?
【问题讨论】:
-
请出示正文。
-
大约 600 行。有什么特别需要的吗?
-
@MauryMarkowitz 你真的知道
ByRef是什么意思吗?如果你想为它分配一个在函数外也可见的值,你只需要传递ByRef。 -
也许可以展示这些参数是如何使用的
-
你不需要传递对象为
ref,所有的类都是引用类型,不需要传递ref
标签: c# pass-by-reference