2015-08-04 2 views
2

Я кодирую программу, в которой у меня есть класс внутри другого класса. Мне нужно знать, могу ли я получить доступ к свойствам внешнего класса из внутреннего.Доступ к параметру объекта из объекта внутри него

Что-то вроде этого:

Module mod1 

    Public Class c1 
     Public var1 As Integer = 3 

     Public Class c2 

      Public Sub doSomething() 
       'I need to access var1 from here. Is it possible? 
      End Sub 

     End Class 

    End Class 

End Module 

Большое спасибо заранее за вашу помощь!

EDIT: Пример того, что я хочу сделать

Dim obj1 As New c1 'Let's suppose that the object is properly initialized 
Dim obj2 As New obj1.c2 'Let's suppose that the object is properly initialized 

obj2.doSomething() 'Here, I want to affect ONLY the var1 of obj1. Would that be possible? 
+0

Для доступа к 'var1' нужен экземпляр' c1', или вам нужно сделать его общей переменной. – Saragis

+0

@Saragis Я не могу сделать это Shared, потому что каждый экземпляр c1 будет иметь другое значение, и я не могу ни одного экземпляра c1, потому что мне не нужен новый объект, а тот, который находится внутри c2-объекта. В случае, если я не объясню себя должным образом, я добавил пример в исходное сообщение – Psicomanchester

ответ

1

Вы все еще будете нуждаться, чтобы создать связь между этими двумя объектами где-то. Вот пример того, как вы могли это сделать.

Dim obj1 As New c1 
Dim obj2 As New c2(obj1) 

obj2.doSomething() 

йоЗотеЬЫпд теперь могут влиять как переменные, определенные в c1 и c2. Выполнение проекта:

Public Class c1 
    Public var1 As Integer = 3 
End Class 

Public Class c2 
    Private linkedC1 As c1 

    Public Sub New(ByVal linkedC1 As c1) 
     Me.linkedC1 = linkedC1 
    End Sub 

    Public Sub doSomething() 
     'I need to access var1 from here. Is it possible? 
     linkedC1.var1 += 1 
    End Sub 

End Class 
+0

Тогда это то, что я собираюсь сделать. Спасибо огромное! – Psicomanchester

 Смежные вопросы

  • Нет связанных вопросов^_^