2011-12-15 42 views
1

在VB.Net中,我有一个名为WorkflowButtonEventArgs的对象,它继承自System.EventArgsVB.Net,EventArgs,ByRef和ByVal

WorkflowButtonEventArgs类包含两个ByRef属性。这些是内存中的对象,我不希望它们以任何方式复制或复制。

我可以在VB.Net中通过WorkflowButtonEventArgs对象ByVal并且仍然保留WorkflowButtonEventArgs中的两个ByRef定义吗?

具体来说,如果我通过它BYVAL:

Dim e As New WorkflowButtonEventArgs(...) ' e has some ByRef properties 

RaiseEvent SomeEventName(e) ' e is passed ByVal 

将在eWorkflowButtonEventArgs类)的ByRef属性/会员不得复制或在内存复制?

长故事短:我可以通过eByVal,或者我需要通过它ByRef,因为它包含ByRef属性?

+0

“ByRef”属性,你的意思是一个引用类型的属性,如类? – rskar 2011-12-15 19:50:36

+0

什么是“ByRef”属性?据我所知,ByRef关键字不适用于属性,也不能用于声明属性。你可以说得更详细点吗? – 2011-12-15 21:02:48

回答

1

我可以通过e“ByVal”,还是我需要传递它“ByRef”,因为它包含“ByRef”属性?

是的。即使您的EventArgs已通过ByVal,引用指向的对象也不会被复制。

1

参考对象不会在内存中复制。参数ByRef关键字仅表示您可以更改调用代码中参数的潜在变量值。

0

实现您的目标的另一种方法是创建一个存储这两个属性的单例。