Asp.net Net、EventArgs、ByRef和ByVal
在VB.Net中,我有一个名为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
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。。。这回答了我的问题。谢谢大家。