Asp.net Net、EventArgs、ByRef和ByVal

Asp.net Net、EventArgs、ByRef和ByVal,asp.net,vb.net,byref,eventargs,byval,Asp.net,Vb.net,Byref,Eventargs,Byval,在VB.Net中,我有一个名为WorkflowButtonEventArgs的对象,它继承自System.EventArgs WorkflowButtonEventArgs类包含两个ByRef属性。这些是内存中的对象,我不希望以任何方式复制它们 我是否可以在VB.Net中传递WorkflowButtonEventArgs对象ByVal,并让它仍然保留WorkflowButtonEventArgs中的两个ByRef定义 具体地说,如果我通过了它: Dim e As New WorkflowButt

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

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

我是否可以在VB.Net中传递
WorkflowButtonEventArgs
对象
ByVal
,并让它仍然保留
WorkflowButtonEventArgs
中的两个
ByRef
定义

具体地说,如果我通过了它:

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

RaiseEvent SomeEventName(e) ' e is passed ByVal
e
WorkflowButtonEventArgs
类)中的
ByRef
属性/成员是否不在内存中复制

长话短说:我可以传递
e
ByVal
,还是需要传递
ByRef
,因为它包含
ByRef
属性

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


对。引用指向的对象将不会被复制,即使您的
EventArgs
被val传递。

引用对象不会在内存中复制。参数上的
ByRef
关键字仅意味着您可以更改调用代码中作为参数基础的变量的值。

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

“ByRef”属性是指引用类型(如类)的属性吗?什么是“ByRef”属性?据我所知,ByRef关键字不适用于属性,也不能在声明属性时使用。你能说得更具体些吗?对所有人:我为原帖中的错误道歉。属性用于引用类型变量(特别是类/对象)。听起来我可以传递事件arg“ByVal”,并且事件arg中的引用类型属性不会在内存中重复。听起来对吗?参考对象不会在内存中重复。ByVal或ByRef不重要Rok。。。这回答了我的问题。谢谢大家。