Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Новое сообщение без темы Добавлено: 03.09.03 14:42  

Автор вопроса:  boevik | Web-сайт: www.hypertech.ru | ICQ: 137392264 
Имею два указателя на класс. Как узнать или это указатели на один instance или на два разных instances этого класса?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 USA



Вопросов: 1
Ответов: 184
 Профиль | | #1 Добавлено: 04.09.03 08:55

Привет, boevik!

Ты же МАСТЕР!?

У разных классов наверняка есть различные свойства или методы. Остается только обработать ошибку: если "этот" метод не поддерживается, значит это объект не "этого" типа.

Хотя есть, наверно, что-то оригинальное.

Ответить

Номер ответа: 2
Автор ответа:
 USA



Вопросов: 1
Ответов: 184
 Профиль | | #2 Добавлено: 04.09.03 08:56

Что-то я лебедя загнал. Проверить на равенство свойств надо.

Ответить

Номер ответа: 3
Автор ответа:
 Malyav



ICQ: 8440085 

Вопросов: 15
Ответов: 117
 Web-сайт: malyav.narod.ru
 Профиль | | #3
Добавлено: 04.09.03 09:49
Можно поменять какое-нить свойство объекта, используюя первый указатель, а потом глянуть его во втором. Если изменилось - он родимый.

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 04.09.03 10:57

Блин, уже почти удалил топик, из-за неуказанности темы. Но увидел, что автор - завсегдатай сайта и решил посмотреть, что же внутри...

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

Ответить

Номер ответа: 5
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #5
Добавлено: 04.09.03 12:54

Спасибо всем за ответы.

2USA: Спасибо за МАСТЕР. :)

Могут быть два различных instances у которых все свойства равны.

2Malyav: Не плохая идея, но слишком много хлопотни. Сначало изменить какое то свойство, потом проверить, потом его надо и назад изменить. Хлопотно.

2Павел: Склероз, склероз - забыл тему написать. Может сделать поверку на заполнение темы и просить юзера заполнить тему.

Вопрос по VB6.

 

Проблему решаю следующим образом.

В модуле определил public variable Counter

В классе созадал property Index, который содержит значение counter.Counter увеличивается на единицу в  Class_Initialize.

И проверка происходит по индексу класса.

Выглядит таким образом:

в классе

Public Index As Integer

Private Sub Class_Initialize()
Counter = Counter + 1
Index = Counter
End Sub

 

проверка

Dim a1 As New Class1
Dim a2 As New Class1

If a1.Index = a2.Index Then
    MsgBox "true"
Else
    MsgBox "false"
End If


 

Ответить

Номер ответа: 6
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 04.09.03 15:24
А лучше генерить при создании класса уникальный идентификатор (GUID)

Ответить

Номер ответа: 7
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #7
Добавлено: 04.09.03 15:59

Павел дал отличный ответ.

Использовать оператор Is

Dim a1 As New Class1
Dim a2 As New Class1

If a1 Is a2 Then
    MsgBox "true"
Else
    MsgBox "false"
End If

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам