我有与传递参数 byRef 相关的问题,我有基于 VB.NET 的类库,其中一些函数是用 byref 参数类型定义的。这些参数是父类对象,当我尝试调用此函数并在 byref 参数中传递子类对象时,它在 VB.NET 中工作,但我无法在 C# 中做同样的事情
以下是我正在尝试的测试代码
Public Class Father
Private _Cast As String
Public Property Cast() As String
Get
Return _Cast
End Get
Set(ByVal value As String)
_Cast = value
End Set
End Property
End Class
Public Class Son
Inherits Father
Private _MyName As String
Public Property Myname() As String
Get
Return _MyName
End Get
Set(ByVal value As String)
_MyName = value
End Set
End Property
End Class
VB中的实现类
Public Class Parent
Public Function Show(ByRef value As Father) As Boolean
Dim test As String = value.Cast
Return True
End Function
// 这里我可以调用 Show 方法并将子对象传递给 ByRef 类型参数,它可以工作
Public Function Show2() As Boolean
Dim s As New Son
Dim result As Boolean = Show(s)
Return True
End Function
End Class
// 但是当我在 c# 中尝试同样的事情时
Parent p = new Parent();
Son s = new Son();
Father f = new Father();
p.Show(ref s);
我收到 Son 无法转换为父亲的错误,我已经测试过它可以在 VB 中工作,但我怎样才能让它在 c# 中工作?因为我有 dll 格式的类库
提前致谢