Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Размер типиз. динамич. масива Добавлено: 09.07.02 10:08  

Автор вопроса:  Evard

Спасибо за предложения но ни один меня не удовлетворил

Использование механизма On Error слишком дергает всю OS систему. По этой причине стараюсь по возможности избегать его

UBound() использовать нельзя из за пустого массива. При пустом массиве он вызовет ошибку.

Можно использовать счётчик элементов в массиве но при имплеминтации интерфейсов это не удобно.  Обязательно должен возвращать не пустой массив

Думаю что решение без последнего высказывания нету.

Если всё же кто найдёт решение буду очень благодарен

Многие не поняли вопроса наверно из за недостаточной  ясности

Поэтому напишу немного детальнее

Основная задача

Имеется группа объектов имплиментирующих некий интерфейс IString

В него входит функция, возвращающая массив строк

Придется в каждом объекте использовать или счетчик или On Error

Что очень непрактично и неудобно. Другими инструментами языка

По видимому нельзя, не предусмотрели наверное.

Пример:

Dim ar() As String

Ar = GetStrArray()

Function GetStrArray() As String()

Dim a() As String

….

GetStrArray = a

End Function

 

Ответить

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

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



Вопросов: 9
Ответов: 112
 Профиль | | #1 Добавлено: 09.07.02 12:31

Ты хочешь сказать что у тебя в коде нет ни одного блока On Error Goto EH или On Error Resume Next ?Как же у тебя программа работает ? Она должна вылететь после первой же ошибки ...

Ответить

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



Вопросов: 0
Ответов: 12
 Профиль | | #2 Добавлено: 10.07.02 13:49

Ты , Evard, тут всё прaвильнo нaписaл.
Решения для твoегo кoнкретнoгo примерa
крoме On Error нету. Нo есть вoзмoжнoсть
нaписaть этo пo другoму,испoльзуя тип
Variant. Не знaю,пoдoйдёт ли этo тебе -
чтo тaкoе Variant все знaют,нo в дaннoм
случaе oн единственный пoзвoляет избежaть
испoльзoвaние On Error и счётчикoв.
Пример:

Dim varStr As Variant

varStr = GetStrArray

'1)мoжнo тaк прoверить

If IsEmpty(varStr) Then
    MsgBox "Array was not initialized"
Else
    MsgBox "UBound: " & UBound(varStr)
End If

2)a мoжнo эдaк

If IsArray(varStr) Then
    MsgBox "UBound: " & UBound(varStr)
Else
    MsgBox "Array was not initialized"
End If

'Твoя функция

Public Function GetStrArray() As Variant
Dim varrString As Variant

'Fill varrString
ReDim varrString(1)
varrString(0) = "Gaga"
varrString(1) = "Lala"

GetStrArray = varrString
End Function

Ответить

Страница: 1 |

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



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