在VB.Net中,我有一个名为WorkflowButtonEventArgs
的对象,它继承自System.EventArgs
。
WorkflowButtonEventArgs
类包含两个ByRef
属性。这些是内存中的对象,我不希望它们以任何方式复制或复制。
我是否可以在VB.Net中传递WorkflowButtonEventArgs
对象ByVal
并让它保留ByRef
中的两个WorkflowButtonEventArgs
定义?
具体来说,如果我把它传递给ByVal:
Dim e As New WorkflowButtonEventArgs(...) ' e has some ByRef properties
RaiseEvent SomeEventName(e) ' e is passed ByVal
ByRef
(e
类中的WorkflowButtonEventArgs
属性/成员是否不会被复制或复制到内存中?
长篇简短:我可以通过e
ByVal
,还是我需要传递ByRef
,因为它包含ByRef
属性?
答案 0 :(得分:1)
我可以通过e" ByVal",或者我是否需要通过它" ByRef"因为它包含" ByRef"特性
是。即使您的EventArgs
传递了ByVal,也不会复制引用指向的对象。
答案 1 :(得分:1)
参考对象不会在内存中重复。参数上的ByRef
关键字仅表示您可以更改调用代码中参数的变量值。
答案 2 :(得分:0)
实现目标的另一种方法是创建一个存储两个属性的单例。