Возвращаемое свойство

Я хочу получить несколько значений из свойства только для чтения. Ниже приведен мой код

Public Class Class1
            ReadOnly Property Ca As New Class2
End Class





Public Class Class2

        ReadOnly Property getass(q As Integer, ww As String) As Integer
            Get
                Codes that return q And ww

            End Get

        End Property
End Class


Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim a As New Class1
        Dim ret As Integer
        Dim qq As Integer = Nothing
        Dim qqq As String = Nothing
        ret = a.Ca.getass(qq, qqq)
    End Sub
End Class

Я хочу, наконец, получить qq=q и qqq=ww... спасибо

1 ответ

Решение

Вы не хотите использовать недвижимость для этой цели.

Вместо этого просто объявите Sub, который изменяет переданные параметры следующим образом:

Public Class Class2
    Sub getass(ByRef q As Integer, ByRef ww As String)
        Dim _q as Integer
        Dim _w as String

        'do whatever you want 
        'then assign the final values and end sub
        q = _q
        ww = _ww
    End Sub
End Class

Затем используйте подпрограмму следующим образом:

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim a As New Class1
        Dim qq As Integer = Nothing
        Dim qqq As String = Nothing
        a.Ca.getass(qq, qqq)
        'At this point your local qq and qqq will have the value setted by the getass Sub
    End Sub
End Class

Пожалуйста, учтите, что это не очень хороший шаблон для вашего окончательного намерения иметь студенческий билет и имя.

Подумайте о создании класса "Student" со всеми необходимыми свойствами и сделайте так, чтобы Class2 (я могу предположить, что это классная комната или что-то в этом роде) возвращал объект "Student".

Или вы можете использовать структуру KeyValuePair

РЕДАКТИРОВАТЬ: Если вы все еще хотите сделать это через интерфейс, попробуйте это:

Public Class Class2
    Public ReadOnly Property getass(ByRef q As Integer, ByRef ww As String) as Integer
      Get
        Dim _q as Integer
        Dim _w as String

        'do whatever you want 
        'then assign the final values and end sub
        q = _q
        ww = _ww

        return ID 'ID is what you want (Integer)
      End Get
    End Property
End Class
Другие вопросы по тегам