Пользовательский тип данных в качестве возвращаемого значения свойством - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день. Подскажите в чем проблема. Есть процедура, которая должна возвращать пользовательский тип данных, но компилятор выдает ошибку с сообщением: Compile error: Only public user defined types in public object modules can be used as parametrs or return types for public procedures of class modules or as fields of public user defined types. При этом текст процедуры, которая содержится в модуле класса:
Листинг программы
  1. Public Property Get Item(ByVal Index As Long) As StdModule.TypeOfCollection
  2. Select Case mlngPositionInCollection
  3. Case Is = 0
  4. VBA.Information.Err.Raise conErrCollectionIsEmpty, "clsCollection", _
  5. "Êîëëåêöèÿ Г*ГҐ ñîäåðæèò ýëåìåГ*òîâ."
  6. Case Is < Index - 1
  7. VBA.Information.Err.Raise conErrIndexDoesntExist, "clsCollection", _
  8. "Г€Г*äåêñ ГўГ*ГҐ äèГ*ïîçîГ*Г*."
  9. End Select
  10. If Index <= 0 Then VBA.Information.Err.Raise conErrIndexDoesntExist, "clsCollection", _
  11. "Г€Г*äåêñ ГўГ*ГҐ äèГ*ïîçîГ*Г*."
  12. Item.TextBoxName = mudtArrayOfData(Index - 1).TextBoxName
  13. Item.TextColor = mudtArrayOfData(Index - 1).TextColor
  14. End Property
А непосредственно возвращаемый пользовательский тип данных объявлен в стандартном модуле:
Листинг программы
  1. Public Type TypeOfCollection
  2. TextBoxName As VB.TextBox
  3. TextColor As Long
  4. End Type
Можно, конечно, передавать не инициализированный udt в качестве аргумента, чтобы процедура его модифицировала, но как-то не изящно.

Решение задачи: «Пользовательский тип данных в качестве возвращаемого значения свойством»

textual
Листинг программы
  1. Friend Property Get Item(ByVal Index As Long) As StdModule.TypeOfCollection

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы