|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Есть статический класс, к примеру Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
где m - некоторая глобальная переменная для всех ф-ций класса, требующая присвоения значения. В случае с обычным классом я бы создал конструктор с этой переменной, и компилятор просто не дал бы создать объект без ее инициализации. А в статическом классе можно сделать как-то так, чтоб компилятор ругался "нефиг вызывать методы этого класса, не проинициализировав переменную", если перед вызовом любого метода не присвоить ей значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 05:32 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
1) Статики - зло; 2) Мембер класса всегда инициализируется автоматически значением по умолчанию. 3) Public fields - зло. Замени на свойство и поставь проверку что было присвоение. 4) Освой общепринятый стиль именования для C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 07:59 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsql Код: c# 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 08:37 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPublic fields - злоглобальные константы же. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 08:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsqlесли перед вызовом любого метода не присвоить ей значение?если инициализация перед вызовом метода, то помести ее параметром в метод. И все тебя поймут сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 08:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsql, Либо откажись от статического. Г.. код будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 08:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123iskatelsql Код: c# 1.
? Не. Как я понял, он хочет проверять, чтобы статик был явно инициализирован из внешнего кода перед тем как его вызывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsqlА в статическом классе можно сделать как-то так, чтоб компилятор ругался "нефиг вызывать методы этого класса, не проинициализировав переменную", если перед вызовом любого метода не присвоить ей значение? Любопытно узнать реальную задачу, а не вот это :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:13 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, "Перед вызовом" это уход от статического в обычный класс. Об этом я и написал. У него нет логики в постановке. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:17 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
В с++ нет статических классов, но есть макросы. В шарпе нет макросов, но есть статические классы. И оба мучаются)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123В с++ нет статических классов, но есть макросы. В обычных классах есть static методы и static переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Dima T, Есть обходные пути) . Но я про классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 10:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123В с++ нет статических классов, но есть макросы. В шарпе нет макросов, но есть статические классы. И оба мучаются)))) Вот и я ж говорю - хочется что-то расшарить между кодом - делайте просто синглетон, тем более, если есть DI контейнер, то он вам сам его сделает, и делать ничего не надо Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatделайте просто синглетонмного букв которые не написать по памяти. Global.param = "глобальная константа"; Короче и запоминать не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:07 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Какой DI в десктопе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Какой DI в десктопе.а что мешает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:09 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Какой DI в десктопе.а что мешает?израт делать? Хороший вкус мешает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:10 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Кто тут еще не юзал static class))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:12 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProPetro123Какой DI в десктопе.а что мешает? Лень ему мешает разобраться в том, что такое dependency injection. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухЛень ему мешает разобраться в том, что такое dependency injection.не, он вроде знает, только не понимает, что контейнер необязательно может быть из коробки )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:19 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий МухЛень ему мешает разобраться в том, что такое dependency injection.не, он вроде знает, только не понимает, что контейнер необязательно может быть из коробки )) для этого даже не надо книжку покупать, или скачивать достаточно прям на странице содержание пролистать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.Pro, вам все потрындеть вместо ответа на простой вопрос. Если программист, то приходилось ли вам использовать глобальные переменные или статик классы? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
А писатели про DI вместо темы про static class идите лесом в другую тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:27 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, Какой DI в десктопе. Чо? У меня все консольные утилиты и те с DI пишутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:27 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, Какой DI в десктопе. Чо? У меня все консольные утилиты и те с DI пишутся. А у меня в квартире Газ! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:28 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Shocker.Pro, вам все потрындеть вместо ответа на простой вопрос. Если программист, то приходилось ли вам использовать глобальные переменные или статик классы? Парни, я может слепой, но где он выше этот вопрос задавал и мы уходили от ответа на него? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:30 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123А писатели про DI вместо темы про static class идите лесом в другую тему. Да тема так-то не твоя. Заведи свою, и устанавливай там свои правила ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:30 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123А писатели про DI вместо темы про static class идите лесом в другую тему. Да тема так-то не твоя. Заведи свою, и устанавливай там свои правила это совет был, а не приказ). У тебя и репозиторий свой написан. Теперь что? Статический класс не использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий МухЛень ему мешает разобраться в том, что такое dependency injection.не, он вроде знает, только не понимает, что контейнер необязательно может быть из коробки )) Хм.. А что, все контейнеры "из коробки" работают только для серверов? Я ни одного такого контейнера еще не видел. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:33 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123А писатели про DI вместо темы про static class идите лесом в другую тему. Чудак не понимает как связана регистрация синглтона в контейнере с данной темой. Объясните ему :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:33 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProДмитрий МухЛень ему мешает разобраться в том, что такое dependency injection.не, он вроде знает, только не понимает, что контейнер необязательно может быть из коробки )) Он как тот, что "угадал все буквы, но не смог прочитать слово". В каждой теме "слышал звон, да не знаю где он" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:35 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, да, да, пообсуждайте что я ем и завтракаю на завтрак. Продолжайте! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:37 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatShocker.Proпропущено... не, он вроде знает, только не понимает, что контейнер необязательно может быть из коробки )) Он как тот, что "угадал все буквы, но не смог прочитать слово". В каждой теме "слышал звон, да не знаю где он" И до сих пор сидит на Java 1.3, судя по тому, что про non-blocking I/O не слышал Или его вообще с Java выгнали давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:43 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Пришёл к нам :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:43 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatХм.. А что, все контейнеры "из коробки" работают только для серверов? Я ни одного такого контейнера еще не видел.А ты сможешь выковырять контейнер из ASP.NET Core и использовать в декстопе? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProfkthatХм.. А что, все контейнеры "из коробки" работают только для серверов? Я ни одного такого контейнера еще не видел.А ты сможешь выковырять контейнер из ASP.NET Core и использовать в декстопе? Зачем выковыривать? Просто добавить ссылку на NuGet-пакет. Сказать какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 12:56 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, да, да, пообсуждайте что я ем и завтракаю на завтрак. Продолжайте! Я на завтрак завтракаю завтрак ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProfkthatХм.. А что, все контейнеры "из коробки" работают только для серверов? Я ни одного такого контейнера еще не видел.А ты сможешь выковырять контейнер из ASP.NET Core и использовать в декстопе? А в чем проблема? Microsoft.Extensions.DependencyInjection - это отдельный пакет, который от ASP.NET вообще никак не зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatShocker.Proпропущено... А ты сможешь выковырять контейнер из ASP.NET Core и использовать в декстопе? А в чем проблема? Microsoft.Extensions.DependencyInjection - это отдельный пакет, который от ASP.NET вообще никак не зависит. Всю интригу испортил :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:07 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Ну я на форуме для того и сижу, чтобы новые знания получать ) Иногда для этого достаточно задать глупый вопрос ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:09 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, да, да, пообсуждайте что я ем и завтракаю на завтрак. Продолжайте! Я на завтрак завтракаю завтрак уже лучше.) А то я обобщу про тебя что ты только консоль пишешь)). На вопрос про классы ведь не ответил. Крутые профи собрались. Детский сад превалирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProНу я на форуме для того и сижу, чтобы новые знания получать ) Иногда для этого достаточно задать глупый вопрос ) А, ну тогда знай, что .NET Core можно использовать ещё и для создания приложений для различных устройств и интернета вещей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухИли его вообще с Java выгнали давно. Он, наверное, в Java разбирался так же, как сейчас в .Net )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, С тобой хорошо деньги пилить. Там где надо несколько простых проектов, ты предлагаешь замутить общий мега интерфейс одинаковый на всю больницу. Его пилили долго, но зато одинаковый. Ни у кого такого репозитория нет така как не нужен. Но у тебя есть. И ты страшно обиделся что тебя не поняли. У тебя проблема в простых решениях. Они у тебя сдожные. Сейчас вот тебя с DI на личности понесло. Автору скажи - выкинь класс и возьми DI!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:30 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatДмитрий МухИли его вообще с Java выгнали давно. Он, наверное, в Java разбирался так же, как сейчас в .Net ))я поржал выше над твоим конструктором в статик классе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:32 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatДмитрий МухИли его вообще с Java выгнали давно. Он, наверное, в Java разбирался так же, как сейчас в .Net )) Вполне вероятно. Предлагаю ещё модульные (unit) тесты обсудить. Спорим, пациент зачвит, что хороший вкус мешает ему их писать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:32 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthatпропущено... Он, наверное, в Java разбирался так же, как сейчас в .Net ))я поржал выше над твоим конструктором в статик классе. Над чем он поржал? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:35 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatОн, наверное, в Java разбирался так же, как сейчас в .Net ))три чела отсюда приходят в java периодически. Но ведут себя очень скромно. Там флуд не по теме не то что невозможен. Он неинтересен никому там. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:46 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123А то я обобщу про тебя что ты только консоль пишешь)). ASP.NET Core так-то это и есть консольное приложение. Сюрприз? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123А то я обобщу про тебя что ты только консоль пишешь)). ASP.NET Core так-то это и есть консольное приложение. Сюрприз? :)) А я разве про core? Я про десктоп. Флудить перестанешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:57 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:57 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Автору скажи - выкинь класс и возьми DI!!! Так я это ему уже сказал. Выкинь статик и сделай синглетон. А чтобы не морочится с синглетоном используй DI. Или у него все настолько просто, что все приложение из одного этого класса, который два целых складывает? Ты сам-то вообще синглетон корректно сможешь написать? С ленивой инициализацией, потокобезопасностью и отсутствием лишних оверхедов на блокировки (double null check)? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123Автору скажи - выкинь класс и возьми DI!!! Так я это ему уже сказал. Выкинь статик и сделай синглетон. А чтобы не морочится с синглетоном используй DI. Или у него все настолько просто, что все приложение из одного этого класса, который два целых складывает? Ты сам-то вообще синглетон корректно сможешь написать? С ленивой инициализацией, потокобезопасностью и отсутствием лишних оверхедов на блокировки (double null check)? Ни написать, ни нагуглить, ни в исходники посмотреть не сможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:00 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Попроси Дмитрий Мух тебя в java сводить. Он пытается что там сказать, но неполучается. Попробуйте вдвоем, про DI там ляпнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:00 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatТак я это ему уже сказал.нет. Ты начал мне доказывать и в глаза смотреть. Зачем? Я считаю оверхедом. А ты бутылку полез меня обсуждать как шантропа. Вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, Попроси Дмитрий Мух тебя в java сводить. Он пытается что там сказать, но неполучается. Попробуйте вдвоем, про DI там ляпнуть. А зачем мне жава - я ей не занимаюсь и не планирую заниматься. Ты еще предложи мне в ФоксПро сходить )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Не нужна java - не пипикай про не как тут дети лейтенанта шмидта. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, Не нужна java - не пипикай про не как тут дети лейтенанта шмидта. А где я про вашу джабу что-то говорил? :-O Я, в отличии от тебя, рулю, в чем я разбираюсь, а в чем нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 14:43 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЯ, в отличии от тебяв отличии от меня ты профессор по распилу. Ты прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 15:30 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatрулю, в чем я разбираюсь, а в чем нет.полез учить статик классам, никогда не писавший ГУИ. Да у тебя от ASP подходов давно мозк ничего не видит кроме main() {} Нужна глобальная, а он конструктор воткнул и флаг инициализации. Ты еще фабрику сюда подгони. Утомил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 15:50 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Теперь что? Статический класс не использовать? да ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 15:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ИзопропилPetro123Теперь что? Статический класс не использовать? да молодец. Один кто тут не флудит). Кто ещё скажет что не использует у себя в проектах? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:02 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123полез учить статик классам, никогда не писавший ГУИ. Да-да, подучи. А то тебя даже возможность наличия у него конструктора удивляет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsqlЕсть статический класс, к примеру тут есть мнение что нельзя его использовать.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, Какой DI в десктопе. Чо? У меня все консольные утилиты и те с DI пишутся. ещё раз - ты джун в больших ГУИ-Десктоп приложениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthatу него конструктора удивляет меня нет. Я знаю об этом. А вот ты джун в десктопе. В рисовании форм на Дельфи? Дай-то бог таким же джуном и дальше оставаться ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatВ рисовании форм на Дельфи?ты про Java пофлудил. Теперь про дельфи. Так держать. Не отличающий Core от десктопа и консоль от десктопа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:10 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, А как тебе удаётся ООП продвигать в консольных утилитах. Расскажи) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:11 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, А как тебе удаётся ООП продвигать в консольных утилитах. Расскажи) Милейший, скажите, вы дурак? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:23 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, А как тебе удаётся ООП продвигать в консольных утилитах. Расскажи) Угомонись уже. Ты своей глупостью зафлудил уже все темы, и весь скуль превратил в один большой ПТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ИзопропилPetro123Теперь что? Статический класс не использовать? да+1 кстати Статические классы только для методов расширения. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:37 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProСтатические классы только для методов расширения. а как же математика? Пересчет координат? Или всё таки есть исключения? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Статические классы это замена макросов из С++ Милые мои дети. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123, ООП как-то зависит от использования в вебе,консоли или десктопе? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:49 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Статические классы это замена макросов из С++ Милые мои дети. серьёзно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:52 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ИзопропилPetro123, ООП как-то зависит от использования в вебе,консоли или десктопе? Конечно. В десктопе, например, нельзя DI, а в консоли нельзя ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 16:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123а как же математика? Пересчет координат? Да точно так же. Тебе есть разница вызывать ".Sin(x)" как статический метод статического класса, или как обычный метод объекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 17:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Изопропил, Да. А ты серьезно ни ни статический? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 17:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Мальчик иди гуляй со своей консолью. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 17:17 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, А как тебе удаётся ООП продвигать в консольных утилитах. Расскажи) Интересно, если пациенту рассказать про внедрение зависимостей и модульное тестирование PowerShell утилит, то ему совсем поплохеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 17:54 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Изопропил, Да. А ты серьезно ни ни статический? ну почему ни-ни математика, логгеры... а вот MessageBox.Show - только по приговору суда... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
skyANAPetro123fkthat, А как тебе удаётся ООП продвигать в консольных утилитах. Расскажи) Интересно, если пациенту рассказать про внедрение зависимостей и модульное тестирование PowerShell утилит, то ему совсем поплохеет? DI выяснилось, все-таки в консоли можно. Его только в десктопных приложениях нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Изопропилматематика, логгеры... Для математики тоже имеет смысл нестатика. Хочу, например, экспоненту вычислять двумя разными способами (напр. таблица с нтерполяцией и ряд Тейлора), и способ этот в рантайме выбирать из списка, и точность при этом задавать из конфига. Наш Маг Десктопа тут, наверняка, просто возьмет и switch нарисует на полдюжины экранов. Ему так чувство прекрасного велит, или что там ему DI никак не дает использовать, уже не упомню. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Изопропила вот MessageBox.Show - только по приговору суда...поподробнее. Не понял. У меня на нем просто обертка чтобы покороче было. А макросов нету). Длинные тексты строковые константы тоже в статик классе. Расшифровка сфероида координат в виде строки. Константа. Изопропилну почему ни-ни математика, логгеры...у вас своей математики нету? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:19 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, У тебя в каждом сообщении Petro. Срочно прими успокоительные. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:23 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Изопропил, Мне кажется MessageBox все модифицируют от минимума до полного переписывания. У меня минимум в виде статик метода в своем статическом. Внутри метода вызов его родного и нативного. Либо с кнопкой подробности из расширения винды дллки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 18:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123Изопропил, Мне кажется MessageBox все модифицируют от минимума до полного переписывания. У меня минимум в виде статик метода в своем статическом. Внутри метода вызов его родного и нативного. Либо с кнопкой подробности из расширения винды дллки. А у тебя никаких мыслей нет, зачем MessageBox имело бы смысл делать нестатическим? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 19:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123Изопропил, Мне кажется MessageBox все модифицируют от минимума до полного переписывания. У меня минимум в виде статик метода в своем статическом. Внутри метода вызов его родного и нативного. Либо с кнопкой подробности из расширения винды дллки. А у тебя никаких мыслей нет, зачем MessageBox имело бы смысл делать нестатическим? Человек занят разработкой больших ГУИ-Десктоп приложений. Зачем ему о какой-то фигне думать? В больших ГУИ-Десктоп приложених много кнопок, а, следовательно и баттонкликов, по которым надо много-много логики размазать. Всё остальное оверхед и плохой вкус. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 19:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Иди гуляй. Или садомазохист приставать? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 19:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, Какой DI в десктопе. Чо? У меня все консольные утилиты и те с DI пишутся. di контейнеры зло ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 09:50 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВdi контейнеры зло Ты дженерики уже выучил? Или тоже зло? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 09:57 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatИзопропилматематика, логгеры... Для математики тоже имеет смысл нестатика. Хочу, например, экспоненту вычислять двумя разными способами (напр. таблица с нтерполяцией и ряд Тейлора), и способ этот в рантайме выбирать из списка, и точность при этом задавать из конфига. Наш Маг Десктопа тут, наверняка, просто возьмет и switch нарисует на полдюжины экранов. Ему так чувство прекрасного велит, или что там ему DI никак не дает использовать, уже не упомню. А как ты без статики вызовешь например эту прекрасную функцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 10:00 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВdi контейнеры зло Ты дженерики уже выучил? Или тоже зло? При чем тут дженерики? ДИ контейнеры очередная модная тема и все ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 10:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВДИ контейнеры очередная модная тема и все Много у тебя видать времени ушло чтобы проспаться. Этой "модной" теме уже лет 15 как, не меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 10:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthatпропущено... Для математики тоже имеет смысл нестатика. Хочу, например, экспоненту вычислять двумя разными способами (напр. таблица с нтерполяцией и ряд Тейлора), и способ этот в рантайме выбирать из списка, и точность при этом задавать из конфига. Наш Маг Десктопа тут, наверняка, просто возьмет и switch нарисует на полдюжины экранов. Ему так чувство прекрасного велит, или что там ему DI никак не дает использовать, уже не упомню. А как ты без статики вызовешь например эту прекрасную функцию? Статический DllImport плюс нестатическая обертка к нему. В чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 10:27 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123В с++ нет статических классов, но есть макросы. В шарпе нет макросов, но есть статические классы. И оба мучаются)))) Куда пропали ? https://ideone.com/Mp07ks DI выглядит как Барон Мюнхгаузен, кусающий себя за жо вытаскивающий себя за волосы. Далеко не везде нужно ЭТО совать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 13:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglDI выглядит как Барон Мюнхгаузен, кусающий себя за жо вытаскивающий себя за волосы. Далеко не везде нужно ЭТО совать. Не надо там, где не надо. Свежий взгляд, Кэп. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 14:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProИзопропилпропущено... да+1 кстати Статические классы только для методов расширения.почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 21:33 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyShocker.Proпропущено... +1 кстати Статические классы только для методов расширения.почему? "Наша песня хороша, начинай сначала" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 22:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatAntonariyпропущено... почему? "Наша песня хороша, начинай сначала" (с) Ага, это зачем ввели? https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8#static-local-functions ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 22:36 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВАга, это зачем ввели? https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8#static-local-functions Слышал звон. Static local functions не имеюют никакого отношения к статическим классам или методом. Это просто локальные функции не имеющие доступа к замыканию. Для гарантии отсутствия их побочных эффектов. А статический класс это по сути самая что ни на есть глобальная переменная, которая прямо-таки тянет на то эти самые побочные эффекты наплодить. Но, лично мне, достаточно уже того, что со всем, что использует статические классы, возникает полная жоппа с юнит-тестированием. Тут уже на пяти страницах это обсуждалось, надоело повторяться. Код: c# 1. 2. 3. 4. 5. 6.
А теперь давай, расскажи, как ты будешь писать тесты на свойство "Age" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2019, 23:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
На пяти страницах был срач с Петей, полный уныния и неочевидности. Точно так же не очевидна жопа с юнит-тестированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 06:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Antonariy, Да пусть не используют. Джунам глобальные переменные использовать нельзя). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 07:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjДжунам глобальные переменные использовать нельзя). Только начиная с синьора. А лиды, так те вообще пишут все только на статических классах. Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 08:22 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Вообще меня объяснения Шокера интересовали, он-то адекватно свои слова обосновывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 13:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatА теперь давай, расскажи, как ты будешь писать тесты на свойство "Age"mock сборка. с датами и без статики гемороя много. и DateTime это не статический класс, даже не класс, по этому к чему он в этой теме? Поля статически у него имеются. автор А статический класс это по сути самая что ни на есть глобальная переменная, которая прямо-таки тянет на то эти самые побочные эффекты наплодить. абсолютно любой тип, статический или нет, после инициализации является глобальным объектом, в котором хранится его TypeHandler, ссылки на методы и поля, у него есть адрес и т.д. По этому, любой тип по сути является глобальной переменной, не только статический. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:40 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman Mejtesmock сборка. с датами и без статики гемороя много. Какая еще мок-сборка? Все давно уже готовыми мок-фреймворками пользуются. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот и все, никаких каких-то сборок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman Mejtesабсолютно любой тип, статический или нет, после инициализации является глобальным объектом, в котором хранится его TypeHandler, ссылки на методы и поля, у него есть адрес и т.д. По этому, любой тип по сути является глобальной переменной, не только статический. Ога. И вообще любой объект (reference type) хранится в куче, котрая является одним огромным глобальным объектом. Этак можно вообще до единой теории всего дофилософствоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:17 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatRoman Mejtesmock сборка. с датами и без статики гемороя много. Какая еще мок-сборка? Все давно уже готовыми мок-фреймворками пользуются. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот и все, никаких каких-то сборок. Скайна как-то это обозвал, уродством, кажется ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachfkthatпропущено... Какая еще мок-сборка? Все давно уже готовыми мок-фреймворками пользуются. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот и все, никаких каких-то сборок. Скайна как-то это обозвал, уродством, кажется Это вообще-то тупо тест. А вот зачем понадобился интерфейс ISystemClock в реальном проекте - так и не ответили в тот раз. Сложилось впечатление, что сначала напроектировали фигни, а потом с ней героически боролись. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
И виновником помнится оказались не static-и, а люди, кто применял их фиг пойми как и зачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухЭто вообще-то тупо тест. А вот зачем понадобился интерфейс ISystemClock в реальном проекте - так и не ответили в тот раз. Сложилось впечатление, что сначала напроектировали фигни, а потом с ней героически боролись. Понадобился в основном как раз для того, чтобы покрыть тестами весьма критическую часть проекта. Код все это совершенно не усложняет, ибо везде DI Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вот и весь код. Полдюжины строчек кода, которые решают кучу проблем с тестами. Под такую же херь, кстати, попадает еще всякая шляпа, типа Guid.New(), Random.Next() и т.п. - в общем вся хрень, результат которой ты никак не можешь в случае надобности контролировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 16:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Random имеет Seed, можно получить заданную последовательность псевдослучайных чисел, которая будет всегда постоянной... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 16:22 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman MejtesRandom имеет Seed, можно получить заданную последовательность псевдослучайных чисел, которая будет всегда постоянной... Это да. Но все равно через seed не получить какую-то предопределенную последовательность для теста. Впрочем, в крайних версиях фреймворка и коре рандом уже сделали с виртуальными методами. Примерно так же как в свое время сделали с HttpContext для тех же целей. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 16:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Потом еще такая шляпа. Вполне может захотется сменить Random на секьюрный RandomNumberGenerator. Или вообще в одних местах использовать обычный, а в других секьюрный. С инжекцией это можно сделать букально за минуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 17:00 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyShocker.Proпропущено... +1 кстати Статические классы только для методов расширения.почему?AntonariyВообще меня объяснения Шокера интересовали, он-то адекватно свои слова обосновывает.Ну, по большей части, уже объяснили конкретно. Это как взрослый на основе своего опыта говорит ребенку "не носись", но сложно объяснить конкретно... потому что упадет и расквасит нос, потому что может попасть под машину, потому что собака рядом бегает без намордника.... В общем, поначалу вроде кажется, что нормально, а потом, спустя время, при рефакторинге натыкаешься на грабли ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 19:55 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.Pro В общем, поначалу вроде кажется, что нормально, а потом, спустя время, при рефакторинге натыкаешься на грабли Что грабли? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 09:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВ, "Суслика видишь?") ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 09:54 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... почему?AntonariyВообще меня объяснения Шокера интересовали, он-то адекватно свои слова обосновывает.Ну, по большей части, уже объяснили конкретно. Это как взрослый на основе своего опыта говорит ребенку "не носись", но сложно объяснить конкретно... потому что упадет и расквасит нос, потому что может попасть под машину, потому что собака рядом бегает без намордника.... В общем, поначалу вроде кажется, что нормально, а потом, спустя время, при рефакторинге натыкаешься на граблиВ общем, я понял: Дмитрий МухИ виновником помнится оказались не static-и, а люди, кто применял их фиг пойми как и зачем. Ложная тревога, все в порядке со статиками. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 11:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyВ общем, я понял: А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 13:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВAntonariyВ общем, я понял: А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. Повернутые на оптимизации? Я в жизни не видал, чтобы проблемы с перформансом были именно из-за использования нестатиков вместо статиков. Вот из-за чего угодно видал, но только не из-за этого. Ты еще начни сравнивать сколько процессорных тактов на тот или иной вызов уходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:01 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Зато много раз видал, как из-за статиков утечки памяти возникают. Утечки памяти на платформе со сборкой мусора, Карл. Собственно, статик это фактически, наверное, единственный способ утечку памяти вызвать. Хотя, если, честно, то с синглетоном тоже такую бяку легко сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВ, Зато много раз видал, как из-за статиков утечки памяти возникают. Утечки памяти на платформе со сборкой мусора, Карл. Собственно, статик это фактически, наверное, единственный способ утечку памяти вызвать. Хотя, если, честно, то с синглетоном тоже такую бяку легко сделать. А ну ка друг мой, приведи работающий пример утечки памяти из за статиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВпропущено... А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. Повернутые на оптимизации? Я в жизни не видал, чтобы проблемы с перформансом были именно из-за использования нестатиков вместо статиков. Вот из-за чего угодно видал, но только не из-за этого. Ты еще начни сравнивать сколько процессорных тактов на тот или иной вызов уходит. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
callvirt - Карл! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВAntonariyВ общем, я понял: А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам.А я от них и не бегал) Наоборот, заметил панику в этой теме - "только для расширений!!11". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Плюс Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthatЕвгенийВ, Зато много раз видал, как из-за статиков утечки памяти возникают. Утечки памяти на платформе со сборкой мусора, Карл. Собственно, статик это фактически, наверное, единственный способ утечку памяти вызвать. Хотя, если, честно, то с синглетоном тоже такую бяку легко сделать. А ну ка друг мой, приведи работающий пример утечки памяти из за статиков. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Наиболее часто встречающаяся ситуация сродни этой - это подписаться на какой-нибудь статический ивент, а потом от него не отписаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Проще говоря вызов через инстанц. 1. Создание объекта - выделение памяти. 2. Сохранение ссылки на него в памяти. 3. Извлечение ссылки из памяти в стек (this передается первым параметром в метод) 4. Поиск ссылки на метод в таблице виртуальных методов 5. Вызов метода 6. GC собирает объект Это те пункты, которых не будет при вызове статик метода. Не нужен в методе this - делай статик! Нужен простой публичный утилитный метод - суй его в статик класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 14:59 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Ты привел очень сложный пример, попробуй так Код: c# 1.
Не путай нехватку памяти и утечку памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:03 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВ callvirt - Карл! Что мне твой машинный код - ты приведи реальный пример из жизни, когда бы статик/нестатик реально влиял на производительность. Так и представил себе какое-нибудь десктопное приложение тормозящее из-за того что там вместо статиков нестатики. А сallvirt ничего не означает - он используется для вызова любого инстанс-метода, хоть виртуального, хоть нет. Вызываются они при этои по разному. Иначе все методы были бы виртуальными, как в Java, кажись - кстати, что-то не слышал, чтобы они из-за этого изстрадались. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВНе нужен в методе this - делай статик! Нужен простой публичный утилитный метод - суй его в статик класс. И пиши все на статиках, блеат. Ога. :- D ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Смахивает на юношеский максимализм\нигилизм. Все полезно в меру. Мне кажется проблема больше не в статических методах, а в статических полях, а какой метод, статический или нет, это дело десятое ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВНе путай нехватку памяти и утечку памяти. Там и есть именно утечка памяти. Но, поскольку, судя по твоему прошлому сообщению ты имеешь очень слабое представление о том как на самом деле в .NET работает выделение памяти и GC, то объяснять тебе тут это получится слишком долго. Начни лучше с чтения Рихтера, что ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:10 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman MejtesСмахивает на юношеский максимализм\нигилизм. Все полезно в меру. Мне кажется проблема больше не в статических методах, а в статических полях, а какой метод, статический или нет, это дело десятое Нет, не десятое. Статический метод означает что все что от него зависит должно его вызывать напрямую и, значит, зависеть от него напрямую. Есть принципы SOLID, и это их нарушает (тот, что "D"). Эти принципы придумали люди, которые намного умнее и опытнее и меня и тебя вместе взятых - мне этого уже достаточно, чтобы стараться им следовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВ callvirt - Карл! Что мне твой машинный код - ты приведи реальный пример из жизни , когда бы статик/нестатик реально влиял на производительность. Так и представил себе какое-нибудь десктопное приложение тормозящее из-за того что там вместо статиков нестатики. А сallvirt ничего не означает - он используется для вызова любого инстанс-метода, хоть виртуального, хоть нет. Вызываются они при этои по разному. Иначе все методы были бы виртуальными, как в Java, кажись - кстати, что-то не слышал, чтобы они из-за этого изстрадались. HttpClient ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:42 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatRoman MejtesСмахивает на юношеский максимализм\нигилизм. Все полезно в меру. Мне кажется проблема больше не в статических методах, а в статических полях, а какой метод, статический или нет, это дело десятое Нет, не десятое. Статический метод означает что все что от него зависит должно его вызывать напрямую и, значит, зависеть от него напрямую. Есть принципы SOLID, и это их нарушает (тот, что "D"). Эти принципы придумали люди, которые намного умнее и опытнее и меня и тебя вместе взятых - мне этого уже достаточно, чтобы стараться им следовать. под нагрузкой IoC добавляет тормозов. лично я на затыки тут не натыкался, но, теоретически, они могут быть ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatRoman MejtesСмахивает на юношеский максимализм\нигилизм. Все полезно в меру. Мне кажется проблема больше не в статических методах, а в статических полях, а какой метод, статический или нет, это дело десятое Нет, не десятое. Статический метод означает что все что от него зависит должно его вызывать напрямую и, значит, зависеть от него напрямую. Есть принципы SOLID, и это их нарушает (тот, что "D"). Эти принципы придумали люди, которые намного умнее и опытнее и меня и тебя вместе взятых - мне этого уже достаточно, чтобы стараться им следовать.Эти принципы придумали люди, исходя из собственной конкретной практики, которая может в значительной мере отличаться от любой другой практики. Слепое и маниакальное следование всем этим принципам превращает хэлло ворлд в многослойное говно, в котором абстракция на абстракции едет и абстракцией погоняет, в результате чего вообще непонятно, как это работает, и куда заныкана реализация. А если еще и DI прикручено - вообще туши свет. Как раз с таким хелловорлдом я на днях мучался. Тот, кто его писал, по-моему применил все принципы, паттерны и бест-кейсы, которые знал. Казалось бы, тривиальная задача - сохранить дюжину настроек в xml: формочка + save/load, да еще до сервера достучаться, чтобы логин/пароль проверить. И задача эта разбита на 4 (четыре, карл!) проекта. В одном модели и абстракции для UI, в другом модели и абстракции для хранилища, 3 и 4, соответственно UI (из одной формочки) и хранилище. В результате workflow этого говна совершенно невразумительно. Не говоря уж о том, что на все 4 кучки нужны ссылки в основном проекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachfkthatпропущено... Нет, не десятое. Статический метод означает что все что от него зависит должно его вызывать напрямую и, значит, зависеть от него напрямую. Есть принципы SOLID, и это их нарушает (тот, что "D"). Эти принципы придумали люди, которые намного умнее и опытнее и меня и тебя вместе взятых - мне этого уже достаточно, чтобы стараться им следовать. под нагрузкой IoC добавляет тормозов. лично я на затыки тут не натыкался, но, теоретически, они могут быть да, да, ребята из stackoverflow по этой причине и не используют DI правда нам до их нагрузок как пешком до Луны, но это же мелочи, правда? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 15:55 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyЭти принципы придумали люди, исходя из собственной конкретной практики, которая может в значительной мере отличаться от любой другой практики. А инженеры Тойоты придумали что надо заправлять её 98-м бензином, потому что им это во сне приснилось. Но мы-то умнее их и лучше их машину знаем - так что будем экономить и в соседнем колхозе заливать 76-й. Вот же белять, российский менталитет. Напиши человеку аршинным капсом, что сюда лезть нельзя, потому что током долбанет, но, он все равно решит, что ему виднее, чем тому, кто это писал и обязательно туда полезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman MejtesСмахивает на юношеский максимализм\нигилизм. Все полезно в меру. Мне кажется проблема больше не в статических методах, а в статических полях, а какой метод, статический или нет, это дело десятое Статические поля - сразу же возможная засада с thread-safety. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:27 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachHttpClient Cерьезно? HttpClient потенциально тормозной не из-за того что в интернет лезет, а из-за того, что он не статический? Ты хоть понял, что ты за бугагос сейчас написал? Кстати, это еще один класс, который у нас везде завернут в обертку с интерфейсом. Ибо писать и гонять юнит-тесты, которые зависят от каких-то других сетевых сервисов, это было бы вообще писец. Точнее это были бы вообще даже близко не юнит тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachлично я на затыки тут не натыкался Первый же запрос к i/o (БД, хттп, файловая система) накроет все дополнительные расходы на виртуальные вызовы, DI и подобное, как бык овцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatAntonariyЭти принципы придумали люди, исходя из собственной конкретной практики, которая может в значительной мере отличаться от любой другой практики. А инженеры Тойоты придумали что надо заправлять её 98-м бензином, потому что им это во сне приснилось. Но мы-то умнее их и лучше их машину знаем - так что будем экономить и в соседнем колхозе заливать 76-й.А я тоже могу придумать якобы аналогию, которая на самом деле нифига не аналогия, и выставить себя дураком. Но я-то умнее, поэтому делать этого не буду. Автомобиль не поставляется в виде конструктора "сделай сам", в отличие от нашей предметной области. fkthatВот же белять, российский менталитет. Напиши человеку аршинным капсом, что сюда лезть нельзя, потому что током долбанет, но, он все равно решит, что ему виднее, чем тому, кто это писал и обязательно туда полезет.Глупость, написанная капсом, умностью не становится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatlove_bachHttpClient Cерьезно? HttpClient потенциально тормозной не из-за того что в интернет лезет, а из-за того, что он не статический? Ты хоть понял, что ты за бугагос сейчас написал? Кстати, это еще один класс, который у нас везде завернут в обертку с интерфейсом. Ибо писать и гонять юнит-тесты, которые зависят от каких-то других сетевых сервисов, это было бы вообще писец. Точнее это были бы вообще даже близко не юнит тесты. Ну вашето это не я только натыкался. Народ юзал Статик, и МС пошёл навстречу страждущим и сделал фабрику - тот же Статик, только с интеллигентным лицом ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 16:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyГлупость, написанная капсом, умностью не становится. AntonariyНо я-то умнее ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 17:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatlove_bachлично я на затыки тут не натыкался Первый же запрос к i/o (БД, хттп, файловая система) накроет все дополнительные расходы на виртуальные вызовы, DI и подобное, как бык овцу. ну, есть же поддержка async в проваедерах БД, хттп... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 18:29 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
короче, я против статиков, я за IoC, но, есть же случаи, когда у кого-то, когда это не подходит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 18:32 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachно, есть же случаи, когда у кого-то, когда это не подходит :) причины неиспользования срорее другие ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 18:35 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachкороче, я против статиков, я за IoC, но, есть же случаи, когда у кого-то, когда это не подходит :) А как вы напишете это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 18:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjlove_bachкороче, я против статиков, я за IoC, но, есть же случаи, когда у кого-то, когда это не подходит :) А как вы напишете это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
скорее всего не на C# ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 19:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatА сallvirt ничего не означает - он используется для вызова любого инстанс-метода, хоть виртуального, хоть нет. Кстати, нет. Вызов прямо на результате конструктора приводит к использованию call вместо callvirt: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Оппонент просто какбы намекает, что если вдруг с какого-то мегаперепоя корвалолом все инстанстные вызовы заменятся на статики, то будет массовая замена вызовов callvirt на call. Цена замены - несколько тиков. В масштабах страны, сами понимаете результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 19:37 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachfkthatпропущено... Первый же запрос к i/o (БД, хттп, файловая система) накроет все дополнительные расходы на виртуальные вызовы, DI и подобное, как бык овцу. ну, есть же поддержка async в проваедерах БД, хттп... Асинк как-то ускорит выполнение самого запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 19:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatlove_bachпропущено... ну, есть же поддержка async в проваедерах БД, хттп... Асинк как-то ускорит выполнение самого запроса?Не, только если на Go переписать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 19:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Ололо, оптимизаторы тактов вызова метода. Объясняйте мне тогда вот это: Код: 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.
Код: powershell 1. 2.
И так не на одном запуске, а раз за разом. Нестатический метод вызывается быстрее чем статический. Причем и в дебажной и релизной сборке. Честно говоря, для меня это тоже полный сюрприз. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:01 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Добавим жару. Код: c# 1. 2. 3.
Код: powershell 1. 2. 3.
Даже виртуальный метод имеет статика в хвост и гриву ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatОбъясняйте мне тогда вот это Зачем? Мне это вообще по барабану. Моя деятельность оценивается несколько по-другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachWebPrjпропущено... А как вы напишете это: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
скорее всего не на C# А я думал Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:09 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
И даже так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: powershell 1. 2. 3. 4.
Статик самый медленный. Причем, что интересно, что вызовы виртуального метода и метода интерфейса быстрее чем обычного. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныfkthatОбъясняйте мне тогда вот это Зачем? Мне это вообще по барабану. Моя деятельность оценивается несколько по-другому. Ну тогда можешь скипать. Просто тут был пассажир, который объяснял что статик метод лучше, потому что его вызов быстрее. Даже какой-то машинный код тут в доказательство писал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мухfkthatпропущено... Асинк как-то ускорит выполнение самого запроса?Не, только если на Go переписать :) а чем там то он поможет у го свои тараканы все издали кажется красиво ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:18 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjА я думал Код: sql 1. 2.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 20:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Вундербар fkthatWebPrjА я думал Код: sql 1. 2.
Код: 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.
Главное, в процессе создания такой нетленки не забыть вот про Вундербар fkthatWebPrjА я думал Код: sql 1. 2.
Код: 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.
Главное, в процессе создания такой нетленки не забыть вот про это . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 21:29 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Ну ты не сравнивай "Hello factorial" и приложения, которые по десятку лет пишут, развивают и дорабатывают. Я бы мог кучу преимуществ своего примера кода привести над твоим static Consts, но, судя по твоей ссылке у тебя представление о разработке как раз такими "Hello factorial" и ограничивается, т.ч. тебе это все равно будет без пользы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 21:43 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
кто победил, потом отпишитесь ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 22:59 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatСон Веры Павловны Ну ты не сравнивай "Hello factorial" и приложения, которые по десятку лет пишут, развивают и дорабатывают . Я бы мог кучу преимуществ своего примера кода привести над твоим static Consts, но, судя по твоей ссылке у тебя представление о разработке как раз такими "Hello factorial" и ограничивается, т.ч. тебе это все равно будет без пользы. чо то ты запизделси ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 23:02 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
love_bachчо то ты запизделси Иди себе с миром писать еще один факториал на статиках :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 23:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Да блин, задал я вопросик... Семь страниц. одного заблокировали... Я вас уже что-то боюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 00:13 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
iskatelsqlДа блин, задал я вопросик... Семь страниц. одного заблокировали... Я вас уже что-то боюсь. не бойся... это от хорошой жизни, ну и с возрастом... на словоблудие тянет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 00:35 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
buser, С возрастом на максимализм и нравоучения тянет)) Это нельзя, этому лоботомию, этот с***а, тут я бы уволился и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 09:13 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatAntonariyГлупость, написанная капсом, умностью не становится. AntonariyНо я-то умнее Кажется, ты что-то осмысленное хотел написать, но хватило лишь на смайлик. А впрочем, правильный подход. Смайликами очередную глупость не ляпнешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 12:40 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
AntonariyКажется, ты что-то осмысленное хотел написать, но хватило лишь на смайлик. А впрочем, правильный подход. Смайликами очередную глупость не ляпнешь. Да я и не спорю. Тут один ты у нас умный. Даже сам об этом написал. AntonariyНо я-то умнее Забыл, наверное, дописать "всех". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 14:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatAntonariyКажется, ты что-то осмысленное хотел написать, но хватило лишь на смайлик. А впрочем, правильный подход. Смайликами очередную глупость не ляпнешь. Да я и не спорю. Тут один ты у нас умный. Даже сам об этом написал. AntonariyНо я-то умнее Забыл, наверное, дописать "всех".Ну вот, перешел на буквы, и опять облажался, аж дважды. Вернись к смайликам, не позорься. Ну или к коду, к нему тоже претензий нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 17:49 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatИ даже так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: powershell 1. 2. 3. 4.
Статик самый медленный. Причем, что интересно, что вызовы виртуального метода и метода интерфейса быстрее чем обычного. Бред какой то. Протестируй нормально. В любом случае, при такой разнице в пределах погрешности, скорость не аргумент. {C# и скорость ахах....} ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 01:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglБред какой то. Протестируй нормально. Код я привел. Можешь сам его собрать, запустить и посмотреть SiemarglВ любом случае, при такой разнице в пределах погрешности, скорость не аргумент. Я тоже самое писал. Только некоторые стали тут доказывать что разница в несколько тактов на вызове метода это писец как важно. SiemarglC# и скорость ахах. Есть ряд случаев, когда нетовский рантайм может уделать по производительности unmanaged языки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 04:07 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemargl, Да. Скорость не аргумент в данной теме. Только как дымовая завеса при обсуждении. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 08:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjSiemargl, Да. Скорость не аргумент в данной теме. Только как дымовая завеса при обсуждении. Мне, однако, все-таки, пипец любопытно стало - как так выходит, что статический метод по вызову самый медленный. Релизная сборка, чистый запуск из командной строки - и он стабильно отстаёт по скорости от любого другого вызова в полтора раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 09:15 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, вы жо умный посмотрите во что скомпилилось... происки оптимизатора? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 10:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, вот тут простым языком немного общих рассуждений на эту тему... х.з. ни когда не приходилось биться за микросекунды... в основном исходят из здравого смысла, семантики самой задачи, а не тупо следуют скрижалям... так что спор инстанс вс статик - это спор между "тупоконечниками и остроконечниками" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:02 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
buserfkthat, вы жо умный посмотрите во что скомпилилось... происки оптимизатора? Оптимизация дефолтная. Для чистоты эксперимента поставил еще аттрибуты Код: c# 1.
и даже попробовал сделать наоборот Код: c# 1.
Результаты одни и те же, причем аттрибуты эти, похоже, вообще никак не влияют (м.б. в нынешней версии компилятора они вообще игнорируются) Собирал под .net core 3 и под обычный .net 4.6 и никакой разницы - везде статик тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, Не знаю. Никогда не интересовало. Как тут сказали, мне платят за другие вопросы) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
buserfkthat, вот тут простым языком немного общих рассуждений на эту тему авторIn theory, a static method should perform slightly better than an instance method Ну вот в том-то и дело, что "in theory", а вот я смотрю и вижу сейчас, что все совсем наоборот. Разница, конечно, совершенно ерундовая, как я уже говорил я бы даже внимания обращать на неё не стал бы никогда, но мне вот интересно, почему все-таки так получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВAntonariyВ общем, я понял: А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 11:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухЕвгенийВпропущено... А потом, если продукт взлетит, упрешься в перфоманс и вернешься к статикам. ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? мазохист ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:46 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мухпропущено... ваш взлетел? что за продукт? любопытно, какую архитектура и принципы разработки используете? мазохист Мазохизм - склонность получать удовольствие, испытывая унижения, насилие или мучения . Что же из вышеперечисленного нас ожидает? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, счас будет тебе делать мозги, а ты получишь от этого кайф ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 16:59 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мух, счас будет тебе делать мозги, а ты получишь от этого кайф Что мне будут делать? Выражайся, если можно, понятным языком. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, е***ь мозг всякими лаунчерами ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:28 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosДмитрий Мух, е***ь мозг всякими лаунчерами ЕвгенийВ - это же не ВМоисеев. Я надеюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухViPRosДмитрий Мух, е***ь мозг всякими лаунчерами ЕвгенийВ - это же не ВМоисеев. Я надеюсь :) ааааааааааа перепутал, блин :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2019, 17:51 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВпропущено... А ну ка друг мой, приведи работающий пример утечки памяти из за статиков. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Наиболее часто встречающаяся ситуация сродни этой - это подписаться на какой-нибудь статический ивент, а потом от него не отписаться. Этот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 02:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatSiemarglБред какой то. Протестируй нормально. Код я привел. Можешь сам его собрать, запустить и посмотреть Проверил, добавил тестирование вызова стат.класса, попробовал убрать накладные от лямбды, исключить выбрасывание кода оптимизатором. У меня в виртуалке (VS2017, release, NET4.6) Not static: 00:00:00.3894198 Virtual: 00:00:00.5584478 Interface Call: 00:00:00.3800740 Static: 00:00:00.3692603 В ideone https://ideone.com/qTPeHC Not static: 00:00:00.1811481 Virtual: 00:00:00.2084212 Interface Call: 00:00:00.1812678 Static: 00:00:00.1848647 Собственно, только виртуальный вызов заметно медленнее, остальное в пределах погрешностей ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 03:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglЭтот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. Объекты Foo никогда освобождены не будут, потому что указатели на них сохранены в статической (т.е. глобальной переменной). Пока их оттуда руками не уберешь, то они так и будут там висеть, пока приложение не завершится. Если такая шляпа происходит, например в веб-приложении, то в итоге будет жопа - я на практике такое наблюдал и даже не раз. А так-то можно сказать, что, типа, да, утечек вообще никогда не бывает, потому что из приложения, типа, все равно когда-нибудь выйдем и память при этом освободится, по-твоему так, что ли? Есть еще более смешная известная шляпа, называется "воскрешение объекта" ("object resurrection"). Правда, это уже из разряда извращений. Код: c# 1. 2. 3. 4. 5. 6. 7.
Объект, уже идя под сборку мусора, сам себя вытягивает за волосы. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 03:55 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatSiemarglЭтот не утечка памяти. Здесь все указатели на выделенную память сохранены и могут быть освобождены в любой момент. Утечка - это выделенная память, на которую нет указателей и программа потеряла над ней контроль. Объекты Foo никогда освобождены не будут, потому что указатели на них сохранены в статической (т.е. глобальной переменной). Пока их оттуда руками не уберешь, то они так и будут там висеть, пока приложение не завершится. Если такая шляпа происходит, например в веб-приложении, то в итоге будет жопа - я на практике такое наблюдал и даже не раз. А так-то можно сказать, что, типа, да, утечек вообще никогда не бывает, потому что из приложения, типа, все равно когда-нибудь выйдем и память при этом освободится, по-твоему так, что ли? Именно это и нужно программисту при статик. Освобождение памяти при завершении процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 07:52 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemargl, Результаты тестирования отменяются, оптимизатор выкинул _ВСЁ_ Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Хотя нет, показалось с непросыпу Дебажная сборка тоже самое распределение Not static: 00:00:02.1452922 Virtual: 00:00:02.2355484 Interface Call: 00:00:01.3028084 Static: 00:00:01.5658457 NNNs - 502500001, 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:23 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
>ViPRos, вчера, 17:28 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312102&msg=21882180][21882180] >е***ь мозг всякими лаунчерами <Интересно, чем же тебя так достал пускач. У меня инфосистема реализуется многими приложениями, а к ним надо иметь доступ, их надо запускать, надо смотреть за их изменениями. Этим и занимается лаунчар. Что здесь плохого - то? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 09:37 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjИменно это и нужно программисту при статик. Освобождение памяти при завершении процесса. А серверных приложений у нас не бывает вообще? Или ты уроки, где про них рассказывали, прогулял? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 11:16 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrj, А насчет десктопа, вот, вполне себе жизненный пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Пользователь стопиццот раз откроет и закроет эту форму и все стопиццот экземпляров её объекта останутся висеть в памяти до конца работы приложения. Но это ведь тоже не утечка памяти, так ведь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 14:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, На оба твоих поста короткий ответ 1. Веб обсуждается в другой ветке. 2. Я глобальный таймер не ставлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 18:17 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjfkthatпропущено... Объекты Foo никогда освобождены не будут, потому что указатели на них сохранены в статической (т.е. глобальной переменной). Пока их оттуда руками не уберешь, то они так и будут там висеть, пока приложение не завершится. Если такая шляпа происходит, например в веб-приложении, то в итоге будет жопа - я на практике такое наблюдал и даже не раз. А так-то можно сказать, что, типа, да, утечек вообще никогда не бывает, потому что из приложения, типа, все равно когда-нибудь выйдем и память при этом освободится, по-твоему так, что ли? Именно это и нужно программисту при статик. Освобождение памяти при завершении процесса.повторяю. Это десктоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 18:19 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrj, У тебя очень странные понятия о том, что такое "утечка памяти". Ладно, бог с тобой, переубеждать не буду - мне за это денег не платят. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 18:38 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 19:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrj, Предлагаю тогда обратиться к разработчикам .NET c предложением вообще убрать оттуда GC - зачем там этот лишний оверхед. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 19:07 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatWebPrj, Предлагаю тогда обратиться к разработчикам .NET c предложением вообще убрать оттуда GC - зачем там этот лишний оверхед.оверхед это когда нет баланса преимущества - недостатки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 19:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjfkthatWebPrj, Предлагаю тогда обратиться к разработчикам .NET c предложением вообще убрать оттуда GC - зачем там этот лишний оверхед.оверхед это когда нет баланса преимущества - недостатки. перечитал пять раз, ни фига не понял фразы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 19:43 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Перевожу. Нет баланса, это например, преимуществ не имеем или не требуется, а недостатки в наличии. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 19:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ВМоисеев>ViPRos, вчера, 17:28 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312102&msg=21882180][21882180] >е***ь мозг всякими лаунчерами <Интересно, чем же тебя так достал пускач. У меня инфосистема реализуется многими приложениями, а к ним надо иметь доступ, их надо запускать, надо смотреть за их изменениями. Этим и занимается лаунчар. Что здесь плохого - то? да ничего просто мы это уже давно знаем а тут Мух спросил именно про это (мне показалось) оказалось вопрос был обращен не к тебе ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 20:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatWebPrjИменно это и нужно программисту при статик. Освобождение памяти при завершении процесса. А серверных приложений у нас не бывает вообще? Или ты уроки, где про них рассказывали, прогулял? :)) так и хотся бипнуть мало того что фигни морозит, да еще и других пытается прибить ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 20:08 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjДмитрий Мух, Перевожу. Нет баланса, это например, преимуществ не имеем или не требуется, а недостатки в наличии. Дак найдите себе этот самый баланс, в чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 20:50 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, У меня нет проблемы). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2019, 21:25 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий МухWebPrjпропущено... оверхед это когда нет баланса преимущества - недостатки. перечитал пять раз, ни фига не понял фразыЕсть ручное управление, есть ARC, есть GC. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 00:09 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatWebPrj, А насчет десктопа, вот, вполне себе жизненный пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Пользователь стопиццот раз откроет и закроет эту форму и все стопиццот экземпляров её объекта останутся висеть в памяти до конца работы приложения. Но это ведь тоже не утечка памяти, так ведь? Именно так. Это не утечка, это архитектурный про*б. У тебя проблема с терминологией. Есть еще <memory hog> ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 00:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjоверхед - это когда нет баланса между преимущества ми и недостатк ам и если куча преимуществ - оверхед если множество недостатков - оверхед у вас, говорите, нет проблем? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 12:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
SiemarglИменно так. Это не утечка, это архитектурный про*б. Это ошибка программирования которая приводит к утечке памяти. Есть инструменты, которые препятствуют допущению ошибок, а есть, которые нет. И статики, это как раз то, что не препятствует. SiemarglУ тебя проблема с терминологией. Есть еще <memory hog> Давай, без всякой оруелловщины обходиться, назови это как хочешь, но есть просто факт, что через статик можно легко получить ситуацию, когда уже ненужный объект остаётся в памяти и никогда не идёт в мусорку, пока процесс не завершается. Три раза за свою жизнь расследовал такую херь, и все три раза дело было в статиках. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 13:47 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Кстати, статикофилы, если вы их так хорошо знаете, то сможете без гугла сказать, в чем отличие Код: c# 1. 2. 3.
и Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 14:01 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrj2. Я глобальный таймер не ставлю. Я понял. Ты герой-одиночка, что сам без команды пишет свою никому не нужную нетленку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 14:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatТы герой-одиночка, что сам без команды пишет свою никому не нужную нетленку. Как быстро ты съехал на личности. Буквально на 4-м ходу в шахматы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 15:42 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Если вы сказали что непонимаете, зачем вы пытаетесь понять? Siemargl все понял сразу). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 15:45 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatWebPrj2. Я глобальный таймер не ставлю. Я понял. Ты герой-одиночка, что сам без команды пишет свою никому не нужную нетленку. когда так отвечает ни разу не писавший десктоп, это смешно). Продолжайте вдвоем. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 15:56 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
WebPrjSiemargl все понял сразу).Крочавчег. Зачастую случается угадывать то, что подразумевает человек, даже если он полную фигню говорит Вот опять, что за забавный вопрос:WebPrjЕсли вы сказали что непонимаете, зачем вы пытаетесь понять?"Если вы сказали что непонимаете, зачем вы пытаетесь понять? Я написал, что не понимаю именно за тем, чтобы получить объяснение. Вы с логикой вообще дружите? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 16:34 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123когда так отвечает ни разу не писавший десктоп, это смешно). Куда уж нам, дилетантам, до вашего десктопа и вашего "Button-click Driven Development". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 16:41 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthatпропущено... Я понял. Ты герой-одиночка, что сам без команды пишет свою никому не нужную нетленку. когда так отвечает ни разу не писавший десктоп, это смешно). Продолжайте вдвоем. Неделю в бане с нетерпением ждал, чтобы как попугай продолжить: "Ты десктоп не писал, десктоп не писал..." :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2019, 16:45 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#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 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Siemargl, Во, даже такое есть. Но для этого, чтобы увидеть, наверное FxCop надо прикручивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:24 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВfkthat, Код: c# 1.
Сравнение будет некорректное потому что будет сравниваться не вызов с вызовом а создание объекта + вызов с просто вызовом. Еще будет напрягаться GC. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:40 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВЕще будет напрягаться GC. Ну, GC работает с очень низким приоритетом, т.ч. даже когда он напрягается, то старается не сильно напрягать само приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:54 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Petro123fkthat, ОК. Будешь вторым балаболом на всем sql.ru. Петро, ты расскажи лучше почтенной публике, за что тебя из Жавы выгнали - ты там тоже везде статические баттон-клики внедрить пытался? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВЕще будет напрягаться GC. Ну, GC работает с очень низким приоритетом, т.ч. даже когда он напрягается, то старается не сильно напрягать само приложение. тебе самое время почитать про сборку мусора :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:06 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВтебе самое время почитать про сборку мусора :) Что не так? Сборщик мусора просыпается, когда приложение простаивает. Для тебя это секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:14 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
мирные жители ложатся спать, мафия просыпается ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:18 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman Mejtesмирные жители ложатся спать, мафия просыпается))) +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:26 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatPetro123fkthat, ОК. Будешь вторым балаболом на всем sql.ru. Петро, ты расскажи лучше почтенной публике, за что тебя из Жавы выгнали - ты там тоже везде статические баттон-клики внедрить пытался? я тебя после фильтра вижу только квадратиком. Без текста)). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 12:28 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthatЕвгенийВтебе самое время почитать про сборку мусора :) Что не так? Сборщик мусора просыпается, когда приложение простаивает. Для тебя это секрет? Сборщик мусора запускается только когда система не может выделить память, если все сделать на статиках, он не запустится ни разу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:20 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
зачем вообще думать о том, когда запускается GC? это не ваша проблема, думать об этом не нужно, думать нужно о другом, о высоком ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:31 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Roman Mejtesзачем вообще думать о том, когда запускается GC? это не ваша проблема, думать об этом не нужно, думать нужно о другом, о высоком Например пишешь экранное видео с 60 FPS, 1920 * 1080 * 4 * 60 = 497664000 байт/сек нужно переработать. При чем на каком нибудь целероне с 2 гигами оперативки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:45 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
5 страниц о милисекундах. Теперь о сборщике. Продолжайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:45 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВпишешь экранное видеовсегда можно найти задачу где потребуется затачивать свой код под ограниченные ресурсы. Тема разве про это? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВ если все сделать на статиках что это означает? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 13:54 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВСборщик мусора запускается только когда система не может выделить память, если все сделать на статиках, он не запустится ни разу. Это не сборщик мусора запускается, это у тебя в голове все очень запущено. Почитать про GC следует как раз тебе. Как я уже писал - попробуй с Рихтера начать "CLR via C#" или "Applied Microsoft .NET Framework". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 14:13 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ViPRosЕвгенийВ если все сделать на статиках что это означает? Примерно это. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 14:49 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВПримерно это. Тебе, по-моему, бесполезно объяснять, что объекты подобных классов никто не станет создавать каждый раз, а сделают синглтоном. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 14:55 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
С инициализацией статиков есть еще одна интересная засада, я как-то сейчас даже забыл про неё упомянуть. Что будет, если инициализация кинет ексепшен? А будет вот что CLR больше не будет предпринимать попытки снова инициализировать этот статический класс, заставить его это сделать тоже никак нельзя, т.ч. класс так и будет висеть неинициализированным до завершения приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 07:11 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat, А ты попробуй. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 09:21 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Я сейчас вместо этого попробовал вот так: Код: 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.
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Поведение оказалось даже более забавное, чем я ожидал. Похоже, что после того как один ексепшен выкидывается из конструктора, обращение к какому-то статическому методу или свойству автоматом кидает TypeInitializationException, даже не пытаясь снова этот конструктор выполнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 09:44 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat Поведение оказалось даже более забавное, чем я ожидал. Похоже, что после того как один ексепшен выкидывается из конструктора, обращение к какому-то статическому методу или свойству автоматом кидает TypeInitializationException, даже не пытаясь снова этот конструктор выполнить. Нормальное поведение. Если тип не инициализован, использовать его нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:48 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
Код: c# 1.
Exception thrown: System.TypeInitializationException Код и результаты выполнения не совпадают :D кстати, если в блоке catch {} (без указания типа исключения) остановить отладчик, то можно посмотреть значение исключения через "переменную" $exception в QuickWatch (Shift+F9), но только в режиме отладки ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:58 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthatПоведение оказалось даже более забавное, чем я ожидал. Похоже, что после того как один ексепшен выкидывается из конструктора, обращение к какому-то статическому методу или свойству автоматом кидает TypeInitializationException, даже не пытаясь снова этот конструктор выполнить. Нормальное поведение. Если тип не инициализован, использовать его нельзя.скажу больше. Не рекомендуют райзе в конструкторе во многих ЯП, а не только в шарпе). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:04 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВНормальное поведение. Если тип не инициализован, использовать его нельзя. Это естественно, засада в том, что его после первой неудачи никак уже нельзя попытаться инициализировать повторно. Например, Lazy<T> имеет специальный параметр в конструкторе, который как раз позволяет то или иное поведение при неуспешной инициализации выбрать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:05 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
fkthat Например, Lazy<T> имеет специальный параметр в конструкторе, который как раз позволяет то или иное поведение при неуспешной инициализации выбрать. Удивительное рядом. Это какой такой параметр? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:34 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthat Например, Lazy<T> имеет специальный параметр в конструкторе, который как раз позволяет то или иное поведение при неуспешной инициализации выбрать. Удивительное рядом. Это какой такой параметр? Функционал Lazy к данному топику вообще притянут за уши. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:39 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВfkthat Например, Lazy<T> имеет специальный параметр в конструкторе, который как раз позволяет то или иное поведение при неуспешной инициализации выбрать. Удивительное рядом. Это какой такой параметр? LazyThreadSafetyMode - If the mode is LazyThreadSafetyMode.ExecutionAndPublication or LazyThreadSafetyMode.None , there is no second chance to initialize the Lazy<T> instance . If an exception occurs and is unhandled in the initialization function, that exception is cached and rethrown on subsequent accesses of the Lazy<T>.Value property. No value is created if an exception is thrown, so in such cases IsValueCreated returns false. - If the mode is LazyThreadSafetyMode.PublicationOnly , the first thread that succeeds in running the initialization function (or the default constructor) creates the value for the Lazy<T> instance. If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy<T> instance . Until the value is created, the IsValueCreated property returns false. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:53 |
|
Инициализация статического класса
|
|||
---|---|---|---|
#18+
ЕвгенийВЭто какой такой параметр? Сложно самому в референс заглянуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 15:54 |
|
|
start [/forum/search_topic.php?author=goggs&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
128ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
300ms |
get tp. blocked users: |
1ms |
others: | 442ms |
total: | 935ms |
0 / 0 |