|
Как правильно ?
|
|||
---|---|---|---|
#18+
Привет. Код: c# 1. 2. 3. 4. 5. 6. 7.
Нужно ли выносить определение обеих переменных из цикла ? Мне припоминается, что я встречал противоположные рекомендации. Одни говорили, что компилятор сам с этим справится, а другие рекомендовали выносить. Так что же лучше ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 17:34 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
И где же здесь замыкание? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 17:49 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
РостигайНужно ли выносить определение обеих переменных из цикла ? Мне припоминается, что я встречал противоположные рекомендации. Одни говорили, что компилятор сам с этим справится, а другие рекомендовали выносить. Так что же лучше ? в данном случае ничего не нужно. нет захвата внешней переменной, обычная передача параметра функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 17:51 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
ок ок. Вообще вопрос не про замыкание. А про то, где лучше вставить объявление переменных :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 17:53 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
Ростигайок ок. Вообще вопрос не про замыкание. А про то, где лучше вставить объявление переменных :) там где их используешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 17:59 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
hVostt, Т.е. таки внутри цикла можно написать Код: c# 1.
да ? Просто вроде бы встречал рекомендацию выносить. Как по мне - я считаю, что компилятор наверняка сам этим займется. Но я вопрос задал, чтобы точно выяснить как нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 18:11 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
РостигайТ.е. таки внутри цикла можно написать Код: c# 1.
да ? Просто вроде бы встречал рекомендацию выносить. Как по мне - я считаю, что компилятор наверняка сам этим займется. Но я вопрос задал, чтобы точно выяснить как нужно. разницы нет, компилятор оптимизирует конечно. а вот что касается замыканий, то да, значение итератора желательно сохранять в локальной переменной, чтобы предотвратить захват. хотя решарпер, допустим, об этом сам скажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 19:35 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
hVosttразницы нет, компилятор оптимизирует конечно. а вот что касается замыканий, то да, значение итератора желательно сохранять в локальной переменной, чтобы предотвратить захват. хотя решарпер, допустим, об этом сам скажет.Да, .Net в этом плане очень тупой - никогда не можешь быть уверен, что то, что ты передал в замыкание реально будет в нем использовано. Java в этом плане умно сделала - хочешь что-то отдать в замыкание, объяви final, и ни о чем не думай. Поэтому разработчики .Net срут крипичами, и упрашивают изменить эту бодягу (особенно с foreach веселуха). Вроде бы в 5й версии будет исправлено отчасти. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 19:58 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
cdtyjvДа, .Net в этом плане очень тупой - никогда не можешь быть уверен, что то, что ты передал в замыкание реально будет в нем использовано. Java в этом плане умно сделала - хочешь что-то отдать в замыкание, объяви final, и ни о чем не думай. Поэтому разработчики .Net срут крипичами, и упрашивают изменить эту бодягу (особенно с foreach веселуха). Вроде бы в 5й версии будет исправлено отчасти. ты вообще какую-то тупорылую хрень понёс не по теме, как обычно. речь вообще не шла о замыканиях. мозги себе купи уже наконец. а C# 5.0 уже вышла пицот лет назад, дурачёк. не лезь, малыш, куда не дотягиваешься, ножки коротки. П.С. заипал, уже даже не смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 23:23 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
mikron closure and variable capture in foreach vs. for Как выше было сказано, нет в коде ТС никакого замыкания. А пример по ссылке - для C#5.0, в более старших версиях всё вполне предсказуемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 07:37 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
Что-то не понял зачем там может понадобиться промежуточная переменная? Поясните, в чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 10:38 |
|
Как правильно ?
|
|||
---|---|---|---|
#18+
ultra_alexЧто-то не понял зачем там может понадобиться промежуточная переменная? Поясните, в чем может быть проблема? Код: c# 1. 2. 3. 4. 5.
в итоге высока вероятность, что отправится лишь одно (последнее) сообщение, из-за захвата переменной цикла. для C# 5 и выше, в каждой итерации создаётся новая переменная, так что проблем не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 10:53 |
|
|
start [/forum/topic.php?fid=20&msg=38733050&tid=1402529]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 466ms |
0 / 0 |