|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Чем по сути отличаются декларации: Код: vbnet 1.
и Код: vbnet 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 12:33 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
1 по сути массив, 2 по сути что угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 13:16 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Первое - неинициализированный динамический массив элементов типа Variant. Второе - одиночная переменная типа Variant. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 14:30 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
по сути - способом проверки допустимости типа присваиваемого значения ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 16:14 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
boobyпо сути - способом проверки допустимости типа присваиваемого значенияхорошо сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 16:58 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Я понимаю, что "2 по сути что угодно". Переформулирую вопрос. Чем по сути отличаются конструкции: Код: vbnet 1. 2.
и Код: vbnet 1. 2.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 09:49 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
тем, что во втором случае ты не сможешь написать Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 10:06 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
скукотища, да нет, лучше всего ответил booby. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 11:03 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Shocker.Pro, после ReDim я смогу написать Let a2(0) = 1 точно также как Let a1(0) = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 12:49 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
... а до ReDim - точно также - не смогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 12:51 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Иван FXSShocker.Pro, после ReDim я смогу написать Let a2(0) = 1 точно также как Let a1(0) = 1написать-то ты сможешь, а скомпилировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 13:03 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Иван FXSЯ понимаю, что "2 по сути что угодно". Переформулирую вопрос. Чем по сути отличаются конструкции: Код: vbnet 1. 2.
и Код: vbnet 1. 2.
? тем что в первом случае производится несанкционированная попытка изменения типа переменной. Тип элемента массива не может быть заменен при динамическом переразмещении массива, если переменная была объявлена как переменная, ссылающаяся на массив однажды (и навсегда) заявленного типа. Этот код не сможет скомпилироваться, т.к. заявленный тип элемента массива a1 не может быть динамически заменен в данном случае. Во втором случае компилятор считает, что базовый тип a2 не меняется - был вариант и остался вариант. Просто после выполнения Redim этот вариант стал содержать массив. Поэтому, как в последующем redim-е массив может быть пересоздан с заменой типа элемента, так и волшебно вообще перестать быть массивом и превратиться - хочешь в дату, а хочешь - в строку - по велению писателя, а потом опять в массив, пока не видно, с каким типом элемента, т.к. программист не успел еще написать этот кусок кода. Все эти действия вообще не меняют (базового) типа переменной a2, а меняют только ее "подтип". Поэтому все они последовательно допустимы. Вообще стоит справку почитывать. конкретно этот вопрос детально освещен в справке на redim: [You can use the ReDim statement repeatedly to change the number of elements and dimensions in an array. However, you can't declare an array of one data type and later use ReDim to change the array to another data type, unless the array is contained in a Variant. If the array is contained in a Variant, the type of the elements can be changed using an As type clause, unless you’re using the Preserve keyword, in which case, no changes of data type are permitted. --- Note To resize an array contained in a Variant, you must explicitly declare the Variant variable before attempting to resize its array. ] ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 22:17 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Господа, спасибо за ваше терпение. Попробую третью попытку. Будет ли код, начинающийся с Код: vbnet 1. 2.
более "эффективен", чем код, начинающийся с Код: vbnet 1. 2.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 16:00 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Иван FXS, еще раз - до эффективности у этого кода Код: vbnet 1. 2.
нет шансов скомпилироваться. про "эффективен": становится откровенно скучно. Придайте этому "слову" набор конкретных смыслов, пригодных к обсуждению. Может быть и про "эффективность" тогда поговорим. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 16:10 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2.
- это была ошибка, я её признаю, написал впопыхах. Но с кодом Код: vbnet 1. 2.
всё в порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 16:35 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Я, собственно, почему спрашиваю - вторая конструкция позволяет легко проверять, инициирован ли массив: Код: vbnet 1. 2. 3. 4.
... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 19:18 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Первая тоже позволяет Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 07:42 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
hclubmk, это фантастика! Я реально выпал в осадок!! Кто-нибудь может объяснить, на каком основании код Код: vbnet 1. 2.
- является корректным? При том что код Код: vbnet 1. 2.
- вполне ожидаемо (для меня по крайней мере) является некорректным. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:33 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Наверно потому, что условие под if MSDNRequired. Expression. Must evaluate to True or False , or to a data type that is implicitly convertible to Boolean ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 11:35 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
MSDNRequired. Expression. Must evaluate to True or False , or to a data type that is implicitly convertible to Booleanне подходит. Тогда бы работало без Not, а также CBool(a), ан нет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 11:58 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Иван FXSКто-нибудь может объяснить, на каком основании код Код: vbnet 1. 2.
- является корректным? . На том основании: авторNot Operator Performs logical negation on a Boolean expression, or bitwise negation on a numeric expression. result: Required. Any Boolean or numeric expression. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:07 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
Shocker.Proа также CBool(a) Круто! а такое преобразование типов (я имею ввиду массив) допустимо вообще? Да и без Not к bool явно не преобразовывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:08 |
|
Dim a1() vs Dim a2
|
|||
---|---|---|---|
#18+
hclubmkShocker.Proа также CBool(a) Круто! а такое преобразование типов (я имею ввиду массив) допустимо вообще? Да и без Not к bool явно не преобразовывается.так о чем и речь. Почему CBool(a1) нельзя, а Not a1 можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:15 |
|
|
start [/forum/topic.php?fid=60&msg=39021442&tid=2155838]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 466ms |
0 / 0 |