Как обнулить массив и определить на то что он инициализирова

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Как обнулить массив и определить на то что он инициализирова

Сообщение EXIS » 31.08.2007 (Пт) 0:49

При создании компанента наткнулся на проблемку...

Допустим есть массив

Dim m() As String
я его инициализирую ReDim m(0) а как его обнулить что-бы он опять стал m().

И еще есть не инициальзированный массив как проверить был он уже инициализирован или нет например

If массив инициализирован
работаем с массивом
Else
массив не инициализированн работать не с чам
End If

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Сообщение 1Steps » 31.08.2007 (Пт) 3:13

Код: Выделить всё
        Dim m() As String = New String() {a, b, c, d, e, f, g}
        'Do Something
        m = Nothing
Удалена за ненадобностью.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.08.2007 (Пт) 7:18

Код: Выделить всё
If m Is Nothing Then
     ' Массив не инициализирован
Else
    ' Массив инициализирован
End If
Весь мир матрица, а мы в нем потоки байтов!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 31.08.2007 (Пт) 8:48

Dim m() As String = new string(){}

и работай с массивом не думая есть он или нет
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Сообщение EXIS » 31.08.2007 (Пт) 21:28

1Steps
Viper
Sebas
Спасибки.

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Сообщение EXIS » 31.08.2007 (Пт) 22:19

Еще вопросик а как спомощью Array удалить элемент из середины массива.

массив элементов 1-2-3-4-5-6 размер 6

удаляем 3 элемент и массив станет

массив элементов 1-2-4-5-6 размер 5

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 01.09.2007 (Сб) 6:16

Никак. Либо удалять вручную, либо использовать другой способ хранения данных, например ArrayList.
Весь мир матрица, а мы в нем потоки байтов!

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Сообщение EXIS » 01.09.2007 (Сб) 21:03

Я решил сделать так

Код: Выделить всё
Array.Copy(Array, Index + 1, Array, Index, Array.Length - Index - 1)
Array.Resize(Array, Array.Length - 1)

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Сообщение EXIS » 01.09.2007 (Сб) 22:03

Код: Выделить всё

        Private Dim MData As Integer

        Dim sz As Integer

        If MData Is Nothing Then 'Вот сдесь возникает ошибка
            sz = 1
        Else
            sz = MData.Length + 1
        End If
        Array.Resize(MData, sz)
        MData(MData.Length - 1) = MDataWrite


Пишу компанент в указанном месте возникает ошибка NullReferenceException was unhandled, раньше не возникала, а сейчас почему-то есть. В чем причина... что за исключение?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 01.09.2007 (Сб) 23:15

Кхм.. А за чем ты сравниваешь переменную с Nothing???
Чего ты вообще хочешь от этого куска кода? Как он по твоему должен работать?
label:
cli
jmp label

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 01.09.2007 (Сб) 23:17

Private MData() As Integer
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

EXIS
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 02.05.2006 (Вт) 17:16

Сообщение EXIS » 02.09.2007 (Вс) 10:30

Nord777 Уладил

iGrok чтобы определить инициализированн массив или нет.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 02.09.2007 (Вс) 11:39

Кхм.. Так это был массив.. )))
Черт, я похоже действительно болен.. ))
label:
cli
jmp label


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83

    TopList