Свойство класса - параметр функции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Свойство класса - параметр функции

Сообщение Nicky » 08.06.2006 (Чт) 8:19

Class1
Код: Выделить всё
Option Explicit

Public s As String


Module1
Код: Выделить всё
Option Explicit

Sub p1()
  Dim c As New Class1
 
  c.s = "tututu"
  MsgBox c.s
 
  p2 c.s
  MsgBox c.s
End Sub

Sub p2(s As String)
  s = "nanana"
End Sub


Хотелось бы "tututu" "nanana" :)
Есть только "tututu" "tututu" :(

Делаю не совсем правильно или совсем неправильно?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.06.2006 (Чт) 8:23

Совсем неправильно.

Такие вещи (вызов property let в том случае, когда свойство передано по ссылке и изменено) появились только в .net.
И то сильно запутывает, по-моему.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 08.06.2006 (Чт) 8:31

Спасибо за ответ, еще и столь оперативный :)

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 08.06.2006 (Чт) 10:36

Код: Выделить всё
Option Explicit

Sub p1()
  Dim c As New Class1
 
  c.s = "tututu"
  MsgBox c.s
 
  c.s = p2(c.s)
  MsgBox c.s
End Sub

Function p2(s As String)
  p2 = "nanana"
End Function


А так не подходит ? :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.06.2006 (Чт) 10:43

Конечно нет.
Это всё равно что написать c.s = "nanana" прямо внутри p1.
Вопрос был о другом.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 08.06.2006 (Чт) 13:31

2 ALX_2002
То что "Свойство класса - параметр функции" в твоем посте в каком-то виде присутствует - это, конечно, радует ;) Но какую роль здесь играет передача параметра?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 08.06.2006 (Чт) 21:19

Всё понял. Сильно не бейте :D :oops:


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 14

    TopList  
cron