Как обращатся "вышестоящему" ?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

solarx
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.12.2004 (Чт) 17:37

Как обращатся "вышестоящему" ?

Сообщение solarx » 20.01.2005 (Чт) 18:36

По ходу дела возник вопрос. Пример:

Код: Выделить всё
public class One
  sub new()
    Public var As Integer = 1
    Dim two as New two
  end sub
end class

public class two
  sub new()
    Dim three as New three
  end sub
end class

public class three
  sub new()
    var = ???   
  end sub
end class


Как в результате в конкретном инстансе класса Three получить значение переменной из инстанса класса One, родившего этот Three?

Обязательно нужно передавать ссылку на него в каждый нижестоящий конструктор или можно без этого обойтись?[/code]

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 20.01.2005 (Чт) 19:02

public class One
sub new()
Public var As Integer = 1
Dim two as New two
end sub
public function getVar() as integer
return var
end sub
end class

public class three
sub new()
dim one as new One
var = one.getVar
end sub
end class
Моя дверь всегда открыта, если она не закрыта.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 20.01.2005 (Чт) 19:05

Желательно и почти обязательно передавать ссылку. Создайте поле Parent и помещайте в енего ссылку. Конечно, есть один обходной путь, но это уже из серии шаманства и размахивания руками и годится лишь для некоторых специфичных объектов.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

solarx
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 16.12.2004 (Чт) 17:37

Сообщение solarx » 21.01.2005 (Пт) 13:09

Если не затруднит, очень интересно было бы узнать про этот обходной путь.

Еще - я тут рылся в msdn, наткнулся там на некий указатель MyBase, который вроде как похож на искомоею, судя по описанию, но честно говоря я так и не понял как оно работает.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 21.01.2005 (Пт) 13:34

MyBase позволяет работать с методами базового класса из наследованного класса. Тебе это не подойдёт. Наследование реализации должно использоваться только в одном случае: когда есть неопровержимая связь "родитель-потомок" ("вид-подвид" и т.д.) между классами (например, класс "автомобиль" можно объявить производным от "транспортного средства", а от класса "программист" - нельзя!) 8)
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44

    TopList  
cron