|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsqlДа блин, задал я вопросик... Семь страниц. одного заблокировали... Я вас уже что-то боюсь. Просто вопросики надо толком формулировать. Тогда будут обсуждать их, а не фигню всякую :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 16:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухНеделю в бане с нетерпением ждал, чтобы как попугай продолжить: "Ты десктоп не писал, десктоп не писал..." :) Ну, в десктопе, там особые подходы нужны. DI там запрещен, паттерны запрещены, м.б. в какой-нибудь будующей версии и ООП запретят, весь винформс на статических классах перепишут. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 17:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухНеделю в бане с нетерпением ждал, чтобы как попугай продолжитьтак WebPrj - это ж клон, не узнал по стилю? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 19:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий МухНеделю в бане с нетерпением ждал, чтобы как попугай продолжитьтак WebPrj - это ж клон, не узнал по стилю? А "Web" к никнейму добавлен для пущей конспирации? :-))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 20:18 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.Pro, А ты узнал по стилю рассуждающих про десктоп, ни разу не писавших form.show(); )) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 20:18 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Зачем тебе конспирация. Ты на третьем шаге пустился в рассуждения про мембера а не глобальный эвент)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 20:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglfkthatWebPrj, А насчет десктопа, вот, вполне себе жизненный пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Пользователь стопиццот раз откроет и закроет эту форму и все стопиццот экземпляров её объекта останутся висеть в памяти до конца работы приложения. Но это ведь тоже не утечка памяти, так ведь? Именно так. Это не утечка, это архитектурный про*б. У тебя проблема с терминологией. Есть еще <memory hog> Читайте по чайной ложке на ночь этого мембера. Дети мои. Его стиль - профессионализм. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 20:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Я так понимаю, на вопрос, в чем разница между статиком без конструктора и статиком с конструктором (даже пустым), никто из поклонников статиков ответить так и не может? Как же вы так свой основной инструмент не знаете? Спойлер Статик без конструктора метится компилятором флагом "beforefieldinit". Поэтому его поля будут инициализированы только тогда, когда одно из них действительно понадобится. У статика с конструктором такого флага нет, поэтому поля проинитятся при любом первом вызове класса, даже если этому вызову ни одно поле не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 20:49 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Читайте по чайной ложке на ночь этого мембера. Дети мои. Его стиль - профессионализм. Тоже твой клоун, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 21:01 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123Читайте по чайной ложке на ночь этого мембера. Дети мои. Его стиль - профессионализм. Тоже твой клоун, что ли? тебя тоже в игнор поставить? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 21:18 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123тебя тоже в игнор поставить? Да ты чо, я же этого не переживу ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 21:56 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, ОК. Будешь вторым балаболом на всем sql.ru. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 23:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЯ так понимаю, на вопрос, в чем разница между статиком без конструктора и статиком с конструктором (даже пустым), никто из поклонников статиков ответить так и не может? Как же вы так свой основной инструмент не знаете? Спойлер Статик без конструктора метится компилятором флагом "beforefieldinit". Поэтому его поля будут инициализированы только тогда, когда одно из них действительно понадобится. У статика с конструктором такого флага нет, поэтому поля проинитятся при любом первом вызове класса, даже если этому вызову ни одно поле не требуется. Только я не понял практической разницы или объяснения: - нет конструктора - объект инициализируется при обращении к любому полю (но не методу ???) - есть конструктор - при обращении в т.ч к любому методу, даже если метод пустой И ? ЗЫ. Я не сторонник глобальных объектов и в т.ч стат.классов С№. Но каждый гвоздь бывает нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 23:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglПрикольно. Есть в оф.документации ? Только я не понял практической разницы или объяснения: - нет конструктора - объект инициализируется при обращении к любому полю (но не методу ???) - есть конструктор - при обращении в т.ч к любому методу, даже если метод пустой Да, есть где-то. Можно погуглить по "beforefieldinit flag". Вот пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Т.е. в первом случае поле _bar так и не проинициализировалось, т.к. оно не требовалось, а во втором случае это все равно произошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 00:12 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, два предмета (с) анекдот - практическое значение - описанность в документации а ты полотенце принес..... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 00:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemarglfkthat, два предмета (с) анекдот - практическое значение - описанность в документации а ты полотенце принес..... Практическое значение - "lazy" инициализация. В документации описан этот флаг, который я упоминал. Про то, как компилятор его проставляет, я так сразу ссылку дать не могу, но на эту тему было много статей, потому что при переходе с .NET 2 на 4 это поведение поменялось и некоторых это немного удивило. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 06:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий МухНеделю в бане с нетерпением ждал, чтобы как попугай продолжитьтак WebPrj - это ж клон, не узнал по стилю? Были подозрения, но ник вроде в 2010-м зареган, поэтому сомневаюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 08:42 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, ОК. Будешь вторым балаболом на всем sql.ru. fkthat, тебе оказана большая честь, теперь ты второй после Пети ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 08:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 10:29 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Добавь еще Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 10:33 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthat, Код: c# 1.
Сравнение будет некорректное потому что будет сравниваться не вызов с вызовом а создание объекта + вызов с просто вызовом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 10:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВДобавь еще Код: c# 1. 2. 3. 4. 5.
Да чо уж там мелочиться - давай сразу туда добавим разложение стопитисотзначного числа на простые множители, типа, наша лошадь проигрывает - привяжем тогда сопернику гирю двухпудовую к хвосту ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 10:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatSiemarglfkthat, два предмета (с) анекдот - практическое значение - описанность в документации а ты полотенце принес..... Практическое значение - "lazy" инициализация. В документации описан этот флаг, который я упоминал. Про то, как компилятор его проставляет, я так сразу ссылку дать не могу, но на эту тему было много статей, потому что при переходе с .NET 2 на 4 это поведение поменялось и некоторых это немного удивило. А теперь правильный ответ. https://docs.microsoft.com/ru-ru/visualstudio/code-quality/ca1810-initialize-reference-type-static-fields-inline?view=vs-2019 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 10:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:00 |
|
|
start [/forum/topic.php?fid=20&msg=39812271&tid=1398948]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 530ms |
0 / 0 |