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

Тема в разделе "Visual Basic", создана пользователем Taandr, 19 окт 2008.

  1. Taandr

    Taandr Гость

    При попытке изменения размера динамического массива в классе получаю ошибку
    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

    Спасибо.
     
  2. Tanya

    Tanya Гость

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

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

    cl.setDim(2)

    cl.setDim(5)
    Возможно проблема не в этом?
     
  3. Taandr

    Taandr Гость

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

    ReDim arr(0)
    m_arr = arr
    End Sub
    ...
    End Class
    При создании экземпляра класса создается и инициализируется локальная переменная - массив, а потом ссылка на этот массив записывается в глобальную переменную класса.
    Так работает без ошибок.
    Спасибо за внимание.
     
Загрузка...

Поделиться этой страницей