我不明白如何在VB.NET中通过how传递一个论点。
我试过这个:
Private m_Form As frmMain
Public WriteOnly Property MyForm() As Form
Set(ByRef value As Form)
m_Form = value
End Set
End Property但是VB.NET不喜欢"Byref“参数。有人能帮忙吗?
谢谢!
发布于 2014-03-09 17:55:15
您不能通过引用与设置传递事物。一定是ByVal。来自VB.NET规范:
§9.7.2如果指定了参数列表,则必须有一个成员,该成员必须除ByVal以外没有任何修饰符,而且其类型必须与属性的类型相同。
我不认为在属性设置器中使用ByRef特别有意义。使用ByRef意味着您可能希望更改调用setter的引用。
Form是一个引用类型(类),因此您希望通过值传递它。否则,您将传递引用类型的引用。
发布于 2014-03-09 18:14:54
不能在属性设置程序中使用ByRef修饰符。
它只能在方法和构造器的签名中声明。在这里,它指定可以在被调用的方法中修改参数的基础变量。
在下面的示例中,ByRef修饰符将导致名为"underlyingVariable“的字段接受新值。通过按值传递变量,它将不会被修改,因此为null:
Private underlyingVariable As Object
Public Sub New()
MyMethod(underlyingVariable)
End Sub
Public Sub MyMethod(ByRef o As Object)
o = New Object()
End Subhttps://stackoverflow.com/questions/22285737
复制相似问题