ОБСУЖДЕНИЕ

Массив произвольного размера в классе

2 ответов 4,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
При попытке изменения размера динамического массива в классе получаю ошибку
Use the "new" keyword to create an object instance.

[codebox]Public Class C
Private m_arr() As Integer
...
Public Sub setDim(ByVal cnt As Integer)
ReDim m_arr(cnt)
End Sub
...
End Class
[/codebox]

Где я должен сделать
Dim m_arr
чтобы исключить ошибку?

В инете ответ не нашел.
Про класс ArrayList знаю.
Объект класса С создается new.
Использую VS 2005

Спасибо.
 
Приведенный код сработал без ошибок.

Вызов:
Код:
Dim cl As New C

cl.setDim(2)

cl.setDim(5)

Возможно проблема не в этом?
 
Да, действительно.
В Виндовом приложении этот код срабатывает без ошибок! ;)
Дело в том, что я разрабатываю приложение для Windows Mobile
Видимо тут другие правила. :(
Поборол эту ошибку так:
Код:
Public Class Class1
...
Public Sub New()
Dim arr() As Integer

ReDim arr(0)
m_arr = arr
End Sub
...
End Class

При создании экземпляра класса создается и инициализируется локальная переменная - массив, а потом ссылка на этот массив записывается в глобальную переменную класса.
Так работает без ошибок.
Спасибо за внимание.
 

Ещё по теме