|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Небольшая головоломка. Для развлечения. Вот пример Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Кажется всё просто, но разные результаты. В первом случае печатается "Hello", во втором "Hello World". На этом можно погореть. Кто знает, почему? Ответ прост. Но кто докопается? ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:57 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Joss, первом случае из-за скобок аргумент передаётся в процедуру по значению, второй случай правильно передается по ссылке ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:04 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
JossНа этом можно погореть.Ну ежели кто-то не умеет отличить переменную от выражения - пусть горит, жалко, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:07 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Всё верною «Самый простой способ превратить переменную в выражение - заключить ее в круглые скобки». на msdn.microsoft.com/en-us/library/aa263527(VS.60).aspx Либо вот Force an Argument to Be Passed by Value (Visual Basic) Но кто об этом помнит... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:37 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
JossНо кто об этом помнит...те кто отписался... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:43 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
... как сколько нас осталось мало... (с) Вот ещё примерчик. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:48 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Рано нажал Опубликовать . Когда str заключен в дополнительные круглые скобки в списке аргументов, setNewString процедура не может изменить его значение в вызывающем коде и MsgBox отображает "Cannot be replaced if passed ByVal" . Когда str не заключен в дополнительные круглые скобки, процедура может изменить его и MsgBox отображает "This is a new value for the inString argument." ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:55 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Joss, А чё нормально так. Не охото писать функцию возвращающую значение. А так в процедуре изменил значение входного параметр и передал его по ссылке (песня) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 13:09 |
|
Влияние скобок () при вызове функции/подпрограммы
|
|||
---|---|---|---|
#18+
Joss... как сколько нас осталось мало... (с) Вот ещё примерчик. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
У Гетца целая глава на эту тему как грамотно использовать ByRef и ByVal . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 13:14 |
|
|
start [/forum/topic.php?fid=45&msg=39678233&tid=1611296]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 183ms |
0 / 0 |