Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.Литература вторым постом1. Ресурсы:- https://metanit.com/sharp/- https://stackoverflow.com/questions/tagged/c%23- https://www.tutorialspoint.com/csharp/- https://professorweb.ru- https://habr.com/ru/hub/csharp/2. Онлайн-компиляторы:- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.- https://ideone.com/- https://www.tutorialspoint.com/compile_csharp_online.php- https://rextester.com/l/csharp_online_compiler3. WinForms или WPF?Шо то хуйня, шо то - все пацаны на электроне ебашат. Еще есть Avalonia, но пока она сырая. Но если уж хочешь гуй на шарпе, то читай:Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?Да, он совершенно прав. Даже микрософт постепенно переходит с шарпа на тайпскрипт. К сожалению, самые крутые языки никому не нужны. Неправда. C# кое-как развивается, недавно вышла седьмая версия шарпа, и уже активно разработывается восьмая. в ней pattern matching прям как в хацкеле будет! Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.5. Какую ИДЕ выбрать?Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополненийДля мака и никсов самый юзабельный вариант -Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )Rider - платная IDE от JetBrains со всем функционалом решарпера и кроссплатформенностю. Если ты богат и сидишь на линуксе/маке, то это отличная замена VS.Для vim/emacs можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.6. С# для мобильной разработкиЕсли нужны инструменты для разработке под мобилы, ставь сразу VS2017 и при установке выбирай все нужные компоненты.Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspxИз актуальной литературы- Xamarin Mobile Application Development- Xamarin Essentials7. Дополнительные инструменты для разработки на C#LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данныхdnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студииdotPeek - бесплатный декомпилятор от JetBrainsscriptcs - для запуска C# кода как скриптов, возможность использовать как REPL8. Расширения для студииReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентовSupercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по нимIndent Guides - показывает вертикальные линии на каждом уровне отступов.Format document on Save - форматирует код каждый раз при сохранении документаCode alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечисленияхОбзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20OverviewНовые возможности C# 8.0: https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕКод старой шапки: https://pastebin.com/cKKXYArsКод этой шапки: https/://pastebin.com/cKKXYArsПрошлый тред тонет здесь: https://2ch.hk/pr/res/1366885.html
>>1378307 (OP)9. Что почитать?- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.10. Более хардкорный материал- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.- CLR via C# (Jeffrey Richter) - это классика, это знать надо.11. Хочу еще хардкорней- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам12. Литература по WPFИз более-менее актуального можно выделить пару книг:- Pro WPF 4.5 in C# (Matthew MacDonald)- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)13. Литература по ASP.NET- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)- Pro ASP.NET MVC 5 Platform (Adam Freeman)- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)14. Литература по асинхронности, параллелизму и всему такому- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная- Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg15. Литература не по шарпу, но так или иначе связанная с языкомC# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под UnityIntroduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.16. Но я не знаю английский, как я буду это все читать?На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"17. Что еще нужно знать, чтобы взяли работать за еду?- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID18. Я не умею читать, что посмотреть?- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
>>1378303>я серьезно говорю. У нас тут лес, электрика и все. Софт или сайты никто не делает, максимум их заказывают из братской компании.Другово ответа не будет. Отрывай жопу от дивана и бегай в поиске вакансий обновляя линкедин.
>>1378312У тебя просто настрой странный. Никто не прилетит к тебе домой на крыльях и не ебанёт тебя мешком с долларами по голове. Пробуй Москву, пробуй ASP, вакансий по теме - жопой жуй. Причём с релокейшном каждая четвёртая!
>>1378313Хоть и странно звучит, но я особо не тяготею к москве, мне быть переехать в Новосибирск или какой-нибудь еще большой город, а там уже видно куда дальше
>>1378317я тоже вкатывальщик но в мск не особо хочувладивосток или питер если во владе не найдумск только самый край
>>1378316Синьёр C#, ASP, JS, Angular, React programmer. Это со стажем приходит. Чтобы совсем не ебануться и головой не поехать приходится прибегать к нестандартным методам программирования.
>>1378320У нас было 4 репозитория, 75 микросервисов, 5 различных бандлов юнит тестов, 75000 строк кода на C#, ASP core2 и всего такого, всех версий, а ещё JS, немного React, BD на Oracle, бутсрап и SASS. Не то, чтобы это всё было нужно в вебморде, но раз начал кодить на макбуке, то иди в своём увлечении до конца. Единственное, что меня беспокоило — это NodeJS. В мире нет никого более беспомощного, безответственного и безнравственного, чем человек который кодит для этого дерьма. И я знал, что довольно скоро мы в это окунёмся.
Двач, объясни дауну, что такое .Net? В Википедии написано:программная платформа , а что это собственно такое? И чем оно отличается от фреймворка? И как тут привязан язык c#? А программист с# и программист .Net Core это разные люди? А есть другие платформы? А какие примеры есть в других языках? Я просто в силу своей недоразвитости понимаю только что такое компилятор и что такое ide, но очень хотел бы понять почему всегда всегда при упоминании c# пишут рядом ещё и .Net . Почему в других языках я этого не наблюдаю? Заранее спасибо.
>>1378307 (OP)А давайте допилим/перепилим - вот этот клиент нанобороды, написанный на С#: https://github.com/nanoboard/nanoboard/releasesПо большей части баги клиента нанобороды 3.0 - исправлены тут: https://github.com/username1565/nanoboard/releasesКоммиты - здесь: https://github.com/username1565/nanoboard/networkМожет ещё чё-нить добавить, удалить, исправить?В общем, нужны прогеры (C#, JS), и тестеры, а также ваши предложения/пожелания,а то с 2016-го года, на этой НЕУБИВАЕМОЙ И НЕМОДЕРИРУЕМОЙ борде - и ни одного коммита!!!
>>1378351фреймворк - это набор функционала, делающий Х. обычно гораздо бОльший, чем один публичный метод (что делает его, собственно, фреймворком, а не рофлолибой)платформа .net - это некая нёх, которая позволяет написать тебе на любом (условно) языке что-то и запустить это под любой (условно) средой. ибо .net - это и CLR (рантайм) и IL(язык)/JIT(компилер) для этого рантайма, и BCL (набор либ, фреймворка, и вообще кодовой базы), и статический компилятор, и GAC, и вообще дохуя всего
>>13790409. Что почитать?- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.>Английский не очень знаюПиздуй учить. Английский - даже ссаные третьеклассники его знают на уровне на котором можно прочитать эти книги.
Антоны, всякие фильтры действий, исключений, авторизации, аутентификации как-нибудь связаны с фабрикой контроллеров в Asp.net MVC?
>>1378849Двачую.>>1378804Чтоб не тёрли всякие пасты от Wikileaks, и чтоб домен 2ch.so не разделегировали.
>>1379301Ну реализуют они соответствующие интерфейсы IAuthorizationFilter, также есть классы, типа AuthorizeAttribute, что наследуются от FilterAttribute
Спрашивал в прошлом треде, но еще раз спрошу ибо функционал проще. Хочу завести сервер который будет помогать рисовать графики цен как на пикрелейтед.Апи нужен примерно такой {"subscribe":"BTCUSD", "lenght" : 1000, "timeframe": 5, "market":"bitfinex"}, получаешь 1к свечей по заданной паре с таким-то таймфреймом и последующие обновления что-то вроде { "table":"candles", "action":"update", "data":{"open":1544564560000, "high":4567, "low":4564, "volumeSell":0, "volumeBuy" :345}} . На сервере будет сидеть полтора анонимуса, следовательно нагрузки мало, таймфреймы будут заранее пропсаны. 1 Сколько такое обойдется?2 Где искать хрюлансеров? 3 Как происходит оплата?
delegate void EventHandler<T>(object sender, T args)where T: EventArgs;Нахуя так делать, в чем фича? Почему просто не прописать EventArgs args?
Хочу уйти с заебавшего десктопа на WPF и Winforms в веб, ибо нет жизни вне ковыряния кривого легаси на заводах по этим технологиям.также хочу уехать из мухосраниКакой bare minimum нужно уметь, чтобы перейти в аспнет.кор веб? Личная страничка, сделанная на коре+ангуляре с простенькой CRM, авторизацией через JWT - пойдёт как пет-прожект?За плечами два года ковыряния ERP-системы на заводе, портянки SQL-запросов с всякой бухгалтерской хуетенью, кривой нхибернейт второй версии, дотнет 4.0, девэкспресс. Код ревью не было вообще никогда, разве что я пыжусь, читаю всякие Чистые Коды и соблюдаю единый стиль в своих проектах. Тесты пишу и чиню только я - как главный архитектор и идеолог съебал, все остальные дружно забили хуй. В общем, застой, деградация и профессиональная смерть.
>>1378537Вроде как фреймворк от либы отличает не размер, а инверсия управления. У либы ты дергаешь методы, а фреймворк дает тебе точки расширения, за которые дергает он.
Антоны нужна помощь. В чем отличие и вообще что это такое mvc5 от core2 натыкался еще на ,net core mvc , да, гуглил но нихуя не понял, объясните самым доступным образом. Ну и главынй вопрос, коре типа новая фишка, получается мвц уже не нужен или как это все???? антон памаги
>>1379586Я пока в веб не суюсь, но насколько я знаю .NetCore это новая опенсурсная реализация .Net (не только для веба). asp.net mvc x это асп ориентированная на паттерн MVC (внезапно). Asp net core это реализация асп нет под кор. MVC нужон потому что большая часть проектов сейчас на нем, новые наверно на коре пилят, но все легаси на мвц.
Есть List<dynamic>, в нем лежат int, float, string. Как правильно получить тип? Хочу чтобы получилось что-то пикрил.
>>1379673>List<dynamic>Нахуа? Почему не обжект? Зачем понадобилось хранить в одном списке разнотипные объекты, если потом надо их обрабатывать в зависимости от типа?>Как правильно Правильно так не делать.
>>1379700Потому что я не знаю заранее будет там int, float или string или вообще что-то еще. У меня есть файл примерно вот такой:ключ0 - Васяключ1 - 5.0fключ2 - 153Мне нужно собрать это все в словарь/лист и далее использовать эти значение. Если строка, то вызвать method_string(), если флоат то вызвать method_float() и так далее. Как реализовать-то?
>>1379707Используй object и приводи к типу. Хотя я больше чем уверен, что для решения задачи тебе вообще не нужен ни объект, ни динамик.
>>1379673List<object> ...switch(i){case int myInt: ...case float myFloat: ...case strting myString: ...}
>>1379714>Хотя я больше чем уверен, что для решения задачи тебе вообще не нужен ни объект, ни динамик.Как правильно-то?>>1379714>Используй object и приводи к типуКак это сделать? Я же не знаю заранее тип объекта.
>>1379707Ты придумал хуйню и теперь пытаешься с ней справиться с помощью еще большей хуйни. Расскажи какую задачу решаешь, ту которая изначально, а не то что ты придумал как решение. А то может оказаться что джейсона пытаешься парсить.
>>1379718>>1379722Джейсона и парсю. Я же написал выше. Джосн вида:"stroka0" : "VASYA","stroka1" : 12345,"stroka2" : 0.030fЗаранее я не знаю, какое значение находится в строках. Мне нужно это как-то обработать и если int вызвать method_int() с этим значением, если string то method_string() с этим значением и так далее.
>>1379724Тебя в глазик поёбывают?Туда смотри >>1379715Динамик выкидывай, зачем тебе DLR? Как анонистус выше написал лист объектов используй, куда и будут паковаться твои инты-хуинты.
>>1379724Что за поехавшее апи возвращает неизвестные типы? В поле возраст может быть значение красный? И что ты собрался делать со значениями если ты не знаешь что это за значения? А вообще ставь Newtonsoft.Josn и парси либо сразу в класс (который можно сгенерировать например на http://json2csharp.com/) либо пердоль через JObject и JToken'ы.
>>1379715Что еще за myInt, myFloat, myString? >>1379728Да не смотри на ключ вообще, он нахуй не нужен. Есть поток данных, инт/флоат/строка и в зависимости от типа мне нужно вызвать соответствующий для данного типа метод.
>>1379732>Что еще за myInt, myFloat, myString? Твой i распакованный в соответствующий тип для дальнейшего использования. Чтобы дальше мог сразу писать MyFunct(myInt), а не MyFunc((int)i).https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-7#pattern-matching
>>1379734Нихуя не понимаю. Мне даже визуал студио тоже самое написать не дает. Во всяких же япах без строгой типизации нормально все работает, значит есть механизм конкретный. Вот схуяли я на шарпе не могу сделать if (object.Type() == Type.String).
Чет задумался насчет linq. Как он добавляет методы к коллекциям? То есть, без using system.linq, у меня есть методы find, count и еще какие-то, а с ликью добавляются select, where и тд. Как он это делает?
>>1379740Если не дает значит либо студия старая, либо в настройках старая версия шарпа, нужна версия 7+. Ты можешь сделать так:obj.GetType() == typeof(string)
>>1379740>Мне даже визуал студио тоже самое написать не даетТы когда её обновлял то? Седьмая версия языка года три поддерживается уже. До седьмой версии можно только через ифы проверять.if (i is int) {}else if (i is string) {}else if (i is float) {}...
>>1379745>Как он это делает?Гугли методы расширения. Если коротко пишешьpublic static void methodname(this IEnumerable<T> en, ..и твой метод будет у всех реализующих IEnumerable
Товарищи шарписты, поясните за сертификации, MCSD и прочие сертификации от мелкомягких - стоят ли они того, как работодатели на это смотрят, часто ли сгорают?
>>1379562Ты что, ебанутый? Ты что там делаешь? Ты на какой версии вообще кодируешь? Тред манагеры? Охуеть вообще! Знаю я один тред манагер, thread pool называется. Кури TPL, async/await, мб вообще TPL dataflow, хз чё там у тебя. Такое больше не пиши никогда. Про класс Thread забудь.
>>1379331Чтобы ты имел возможность сделать дженерик для своего кастомного ивент класса и чтобы потом его не распаковывать???
Двоч чому на видео нормальный нека, а у меня БЕЗНОГИМ? Куда смотреть?https://ulearn.me/Course/cs2/Vydelenie_klassa_reshenie_2f6c9fc2-5ac4-4025-9d35-c9ece5b7f381
>>1378351Код сборки .Net представляет собой промежуточный код, который интерпретируется на лету в команды конкретного процессора средой CLR, по типу кода Jav-ы исполняющегося на виртуальной машине. То что код должен выполнятся с помощью прослойки в виде CLR делает .Net чем-то большим, чем набором языков, фреймворком или набором либ. Для описание всей совокупности инфраструктуры на которой строится .Net и был использован этот ебнутый абстрактный термин,который хуй где еще встретишь. Короче, под этим понимается вот это вот все что придумано для того чтобы кодить на шарпике.
>>1380409Чтобы рационально использовать ресурсы, чтобы абстрагироваться от потоков. Он создал руками 16 потоков, чтобы они 95% времени ничего не делали, занимали память, постоянно бились в переключении контекста. При этом ядер у него 2-4. На пике лютый говнокод и фор луп там никак не поможет.
Вкатился в C#, работаю с фремворком, серверная часть которого на C#, а фронт на JS. Учусь, работаю, читаю.Куда развиваться? В сторону .Net Core смотреть, или может Unity3d? Поясните, как там с рынком труда в игропроме?Ещё хочу почерпнуть математику, но ещё одно ВО не хочу, ибо неэффективно, дорого, бюрократия. Какие варианты?
Как переписать код с C++ boost на C#?Типо ifs.open(filePath, std::ios::binary);uintmax_t sentbytes = 0;while (ifs) { ifs.read(buffer, bufsize); sentbytes += boost::asio::write(socket_, boost::asio::buffer(buffer, ifs.gcount()));}НаFileStream ifs = new FileStream(file, FileMode.Open, FileAccess.Read);while (ifs) { ...}На что заменить while (ifs) ?
Решарпер 2017 никак нельзя поставить для 2019 студии? А то у меня от неё есть лицушный бессрочный ключик, а отдавать 200 баксов в год/перекатываться с одного закрывшегося пиратского сервака активации на другой как-то жаба душит.
>>1380701Даже если забыть о том, что это код прямо в посте, но боже мой - какой же С++ нечитаемый, блядь, высер.
>>1380701А что оно делает? Читает до конца? Тогда сравнивай position и length, и не забывай, что read возвращает количество считанных байтов и оно не всегда равно запрошенному количеству. А еще в зависимости от данных можно взять более высокоуровневую обертку, например, Binaryreader, Streamreader etc.
>>1380378>>1380578Давно меня мучает такой вопрос - как работает пул тредов. Ведь тред на сколько я понимаю это в первую очередь стек, т.е. здоровый кусок памяти нужный для сохранения вызовов функций, ну и небольшие накладные расходы на хранение регистров и может быть еще какая запись в системной табличке. Так вот я не понимаю за счет чего в пуле получается выигрышь, неужели каким то магическим образом тредам в пуле не нужно хранить стек вызовов?>постоянно бились в переключении контекстаПруфы что оверхед не больше 0,0000000001 процента
>>1380578Ты можешь объяснить-то как проблему решить? Я и сам знаю что говнокод, поэтому и спрашиваю совета.
Господа, решал тут одну вроде бы простенькую задачку с codewars - удалить из массива элементы повторяющиеся более N разСама задача codewars.com/kata/554ca54ffa7d91b236000023/Я пока ещё нубас и в процессе изучения, так вот отправив свое решение в виде двух строчек pastebin.com/ZMqkApS1 ожидал там увидеть в одну, но там какая-то срамота либо O(n^2)Так вот вопрос, можно ли это запихнуть в одну строчку сохранив O(n)?
>>1380991>ожидал там увидеть в одну, но там какая-то срамота либо O(n^2)>Так вот вопрос, можно ли это запихнуть в одну строчку сохранив O(n)? Чего блядь вообще? Почему программирование так притягивает ебанутых как магнит?Ты условие не правильно понял (кмк), попробуй тестовый пример хотя бы.
>>1380999>Ты условие не правильно понял (кмк), попробуй тестовый пример хотя бы. Хотя нет, тут пожалуй снимаю претензию, но от первой не отказываюсь.
>Хотя нет, тут пожалуй снимаю претензию, но от первой не отказываюсь.Ты бы хоть пояснил за что предъявляешь долбоеб токсичный. Название функции и агрументов скопированы из тестового примера идущего в комплекте с задачей, 2 строчки написанные мной очевидно легко читаемы.
А у меня все еще неправильный кот.Держу вкурсе.https://ulearn.me/Course/cs2/Realizatsiya_interfeysa_reshenie_e68b0a07-5586-4b39-9c45-15ddc697b6be
>>1380861Что за хуйню ты несешь. Пул тредов - это программная сущность, схуйли ты решил, что он построен на допотопном стеке, что он какого-то хуя ресурсоемок. Почитай лучше про треды у Рихтера и не задавай стремных вопросов.
>>1381977Ну, приятно что хотя бы кто то мне ответил. Еще бы это было не тупорылое уебище не знающее даже что такое стек>построен на допотопном стекерасплескал всю подливу. Впрочем, со мной на сосаче только так обычно.
>>1381800Я спросил про конкретную задачу, которая описывается несколькими словами, и для которой скорее всего есть решение в виде одного linq запроса как задумывал автор, а не про "всё".
Антоны, нужно ли вообще учить asp.net core?Я учил mvc потому что под него больше вакансий.Но теперь я стою перед вопросом, доучить mvc, наваяв пару проектов или выучить кор и пиздовать на все собеседованияВремени до июля.
Хочу использовать двумерный массив с определенным числом строк и столбцов. Как мне, например, получить первую строку? Гугель предлагает только jagged array, который не подходит.
>>1380771Через буст ASIO передается имя файла (полное имя куда сохранять серверу), размер и сам файл.https://pastebin.com/RfPTv1mHХуй знает как это переписать на C# VSTO.Полный клиент:https://pastebin.com/pZbqetTBВот сервер на boosthttps://pastebin.com/8SKwCqj3
> Хочу использовать двумерный массивНу нинад>Как мне, например, получить первую строку?double[,] rectArray = new double[n, m];var target = rectArray.Cast<double>().Skip(m * i).Take(m).ToArray();
>>1382039Помимо шарпа эта задача доступна еще для десятка языков, в которых о линке и не слышали. Почему ты решил что автор хочет от тебя какое-то конкретное решение непонятно. А еще после решения задачи становятся доступны решения других, среди которых почти всегда есть чудик с решением в одну строку.
> после решения задачи становятся доступны решения других, среди которых почти всегда есть чудик с решением в одну строку> там какая-то срамота либо O(n^2)
>>1382262Напомню, что линк это набор методов расширения, внутри которых, внезапно, много строк, поэтому можешь смело написать свой расширяющий метод, который сделает нужное дело за O(n) в несколько строк, и затем вызвать его на коллекции и получить результат в одну строку.
>>1382257> Помимо шарпа эта задача доступна еще для десятка языков, в которых о линке и не слышали. На хацкеле как и в любом чистом ФЯП есть только аналог линкью.
Антоны, я хочу написать свою имиджборду, чтобы свои навыки в asp.net mvc укрепить.Но думаю, что если я еще раз с entity framework буду записывать в базу, получать оттуда данные, делать пагинацию, то я ебнусь.C чем можно поработать? Думаю, что mongodb подойдет.
Антоны.Как можно вместе с формой послать файл?При стандартном подходе шлется не файл, а я, причем нахуй
>>1382997Может мне сделать отдельную форму для отправки файла и повесить событие, чтобы аякс отсылал и ее по нажатию одной кнопки?
Объясните долбаёбу. В net. можно писать проект сразу на нескольких языках. Так вот сам вопрос: могу ли я встроить код на f# в сборку проекта для юнити и как юнити вообще на это отреагирует?
>>1383381Вынеси все что хочешь закодить на Эф в отдельную библеотекуЮ там пиши на эфе а библу подцепи к юнити проекту.
Пацаны, а вы всё комментируете xml-комментариями, даже очевидную хрень говно, где всё ясно из названия метода и какой объект он возвращает?Комментарии об очевидном - плохо же, код должен быть самоописательным, но я заметил, что во многих проектах summary, return, и параметры прописаны вообще для всего.Как быть?
Антоны, как в asp.net mvc можно установить значение аттрибута?Хочу поставить картинке значение рассчитанное, а он пишет, что оно недопустимо.
Антоны, я таки взялся писать имиджборду на Asp.net mvcИ у меня встал вопрос, как мне проверять, ответили ли на пост?Как мне реализовать механизм перевода спецсимволов типа в html разметку?Получается, что мне нужно парсить все посты на наличие реплая? А что, если посты содержат очень много символов и постов под 500?Это же займет кучу времени?
>>1383974Антоны, помогите написать хелпер для форматирования сообщения.Мне нужно игнорить html разметку, что размещает пользователь напрямую, но вместе с этим преобразовать другие символы в разметку
Бля че за залупа нахуй????Я составляю запрос к серверу, запрос состоит из стринга, в котором набор данных формата джсон. Сервер принимает ТОЛЬКО определенного вида запрос, например {"query":"queryText"} и все элементы внутри ОБЯЗАТЕЛЬНО должны быть в двойных кавычках. Но блядский формат стринг не позволяет иметь двойные кавычки в внутри, нужно их обходить либо бэкслешем либо @ и дополнительными кавычками внутри. И такую хуйню уже не понимает сервер, если внутри появляются дополнительные символы. Как мне отправить стринг вот такой {"query":"queryText"} без изменений внутри?
>>1383541Зависит от размеров проекта. Бывает такое, что очевидное на самом деле не очевидное и с какой-нибудь подковыркой. Также, когда изначально пишешь код, то он тебе почти всегда кажется очевидным, а потом может быть такое, что ты половины не понимаешь или чего хуже - думаешь, что понимаешь, а на самом деле не понимаешь. Поэтому если в коде больше 1к строк, то лучше комментировать как можно больше.
>>1382262Это задел на будущее, когда компьютеры будут настолько мощны, что O(n^2) будет воспроизводится с той же скоростью, что и O(1)
Пацаны, смотрите, хочу сделать игру, суть такова...Короче, что, кроме юнити есть для сярпика? Просто юнити огромный и непонятный, мне бы что-то попроще и, в основном, для 2д.
>>1380622лучше .net core и на фронте какую-нибудь известную хуйню аля react/vue/angular, вакансий полно, но советую пиздовать лучше либо на бэк, либо на фронт, иначе будет хуярить фулстеком, при этом платить скорее всего будут столько же
>>1380622Конечно .Net, геймдев в России есть только на мобилках, а на мобилках нужен Java, а не сисярп.
>>1384593monogame - по нему даже гайд на metanit есть(за качество не ручаюсь). Но всё же юнити лучше. Он не сложный, если игра не сложная
>>1384700гейдев на c# выше уже описали:>переработки за ебаные копейки и местечковость, несерьёзность происходящего.
>>1384700мобильный гейдев отлично работает, если работаешь на себя, полностью обеспечивая жизненный цикл игр от идеи до поддержки без посредников. Но это развлечение на любителя
>>1384742Неужели вообще бессмысленно вкатываться в геймдев через Шарп? И что же тогда, перекатываться на UE4 и С++? Или вообще забить на геймдев?
>>1384861Смотря что значит "вкатываться в гейдэв"? Если попасть в мажор компанию, то да, он там и нахуй не нужон. А если заниматься самоделом, то заебись. Особенно если найдёшь такого же единомышленника, который готов работать с хуём во рту за идею.
>>1384884Спасибо за ответ, анон. А вообще, сам по себе сишарп в плане работы и желательно сьеба из России? Я конечно понимаю, что вы тут все без ума от языка (да и мне он очень нравится), но я боюсь проебаться с выбором. Сколько времени нужно, чтобы начать работать в ДС?
>>1384890съебу из СНГ помогает знание языков/технологий, которые уже устоялись более или менее, но не заехали в аутсорс/широкий продуктовый рынок. какой-нибудь VR, Blockchain сильно возможно. то, чему миллиард лет в обед - ессессно нет. индуса перевезти дешевле будет, даже со всем его кемпингом
>>1384890Съебу способствует любой стек технологий основанный на любом ЯП из топ-10 списка по популярности, вопрос заключается лишь в том, как хорошо ты этим стеком овладел.
>>1378307 (OP)Что-то у вас раздел "Ресурсы" какой-то тухлый. Какая из 3-х ссылок с гайдами наиболее актуальна?
Супец. Пишу диплом на шарпе, хоть и знаю вообще ничего. Суть - пользователь тыкает кнопочки, данные с каждой кнопки записываются в структуру, структура передается на сервер, сервер ловит ее и записывает в БД похер какую. Интерфейс пользователя на винформс делал по видеоурокам с ютуба, теперь туплю что делать дальше. Подскажите нуфагу, пожалуйста.
>>1385165ты сам понял свой вопрос?ты наваял интерфейс, теперь надо это все упаковать:>в структуру, структура передается на сервер, сервер ловит ее и записывает в БД похер какуюче не понятно?
Сап двач, пишу с ЕОТ проблемой. В общем есть один темплейт видаControlTemplate-Border--FrameworkElement1--FrameworkElement2-ControlTemplate.Triggers--Trigger1Так вот, надо в trigger1 изменить одно из значений в FrameworkElement2, как это прописать?
>>1383541>Пацаны, а вы всё комментируете xml-комментариямиСамо собой, норм CI не должен вообще позволять запушить недокументированный код.>где всё ясно из названия методаТы методы на русском называешь? Если нет, то из названия метода, который придумал не нейтив обычно всё понятно только тому, что его придумал.>какой объект он возвращает?Теги типов аргументов и возвращаемого значения больше нужны для автогенерируемой документации по коду и для того, чтобы в студии при наведении курсором на метод, что ты написал всплывала подсказка с типами и описанием.>Комментарии об очевидном - плохо же, код должен быть самоописательнымСамодокументируемый код - миф (вероятно придуманный теми, кому лень писать комменты). Правда в последнее время в него почему-то верит всё больше джунов, уж не знаю, где они нахватались этой дряни - приходится выбивать из них эту дурь, ибо каждая минута сэкономленная на написании комментов будет стоить двух при поддежрке проекта.
И какой смысл тогда в short byte и т. п. если всё в итоге будет восприниматься как int и возвращаться как int если не преобразуешь в соответствующий тип? Как будет ресурсоэффективней: short x = 10;short y = 15;short result = (short)(x + y);Или :int x = 10;int y = 15; int result = x + y;Или:short x = 10;short y = 15;int result = x + y;
>>1386043что ты понимаешь под ресурсоэффективностью?оператор + для всех не-лонговых целочисленных типов - интовый. наверное, чтобы не оверхедить при парсинге результатов нативных библиотек.а восприниматься все будет так, как у тебя работает код.
>>1386046>ресурсоэффективностьюЗанимаемое место в памяти, насколько быстро будет работать программа используя предоставленные ресурсы. С одной стороны записав:short x = 10; Я экономлю память, но с другой стороны при использовании данной переменной в операции сложения, эта переменная будет приводится к типу int и возвращаться результат будет в таком же типе. Т. е. чтобы экономить память мне нужно приводить всё к типу short, т. е. я так понимаю будет уже 2 операции - приведение к типу int, а потом приведение к типу short. Я так понимаю, что стоит приводить только для экономии памяти, но скорость выполнения кода будет выше если везде использовать Int. Или всё не так?
>>1386049экономия 4х байт даже в разрезе нескольких сотен объектов тебе не даст практически никакой ощутимой выгоды. ты тут не контроллеры программишь, а необходимости в ручном управлении композицией значений в памяти от силы 0.0000000000000000000000000000001%. и то, для этого есть StructLayout, который будет просто работать.и далее, если ты хочешь сэкономить в памяти, но только для того, чтобы передавать значение как аргумент в методы, эта экономия будет нивелирована ибо значения этих аргументов (вроде бы до 64го байта) передаются через регистры, размер которых нихуя не 4 байта. короче, забей. если тебе для бизнес-логики или для отражения модели БД нужно завести short, пускай это он и будет. для всего остального есть дефолтный int
>>1386054Какая разница, меня другое интересует - как код быстрее будет работать, а не насколько я выиграю в процентах. Это и так понятно, что практически не имеет смысла считать байты, когда сейчас на телефонах по несколько гигабайт памяти.
>>1384890Все кто хотели и знали сисярп успешно съебали.Но при этом они довольно компетентные спецыЕще одного недоджуна нахуй никму не надо везти
>>1384618Ты дурак? Это еще на ПК с соснолями есть варианты, мобильный же гейминг целиком и полностью делается на юнити.
>>1384809> мобильный гейдев отлично работает, если работаешь на себя, полностью обеспечивая жизненный цикл игр от идеи до поддержки без посредников.И имеешь с игры от 2 до 10 долларов в месяц. Да, охуенно он работает.
Анончики, я хочу создать представление в mvc, я клацаю по имени метода контроллера, выбираю добавить представление, и происходит магия.Если я ручками создам в нужном месте cshtml файл с нужным именем, то оно не заработает, котроллер не распознает в нём свой метод и пошлет лесом.Собственно, вопрос: где явно прописана связь между вот этим вот контроллером и этим вот представлением?
На счет почитать, тут в начале пишут о metanit'e, но в списке литературы ни чего не сказано о нем. Вопрос, будет ли ньюфагу достаточно руководса с метанита, ну я в сравнение с players guide?
>>1386826metanit это для тех кто уже знает какой-то ЯП, но хочет изучить C#. У него совсем не для ньюфагов написано, но зато для тех кто не ньюфаг хорошо подходит, потому что всё изложено максимально коротко, без разжевывания.
>>1386850Вот гайд по вкату в сисярп с нуля:1) пройти бесплатную часть курса явараша2) прочитать метанит3) задать миллион тупых вопросов в этот тред4) ???5) профит
>>1387007Я шарп не знаю, но блять какого хуя ты творишь?https://ideone.com/OyFChDhttps://docs.microsoft.com/ru-ru/dotnet/standard/base-types/custom-date-and-time-format-strings
>>1387154виртуальный метод уже можно юзать сразу, а абстрактный ещё надо реализовать в потомке и юзать из потомка
>>1387154Если в базовом классе есть реализация метода, но потомок может изменить реализацию, то виртуал. Если базовый класс имеет метод, но его реализация полностью зависит от потомка, и не может иметь какого-то дефота в базовом, то абстракт (класс соответственно тоже абстракт и не сможет иметь инстансев).
>>1381499Ты где-то наебался и у тебя идет деление в целых числах с 0ми (черный цвет) на выходе. Смотри RGB<->YUV преобразование.
Антоны, возможно ли racing condition в связке entity framework и asp.net mvc?У меня работа с базой происходит асинхронно, на каждый экземпляр контроллера свой экземпляр DbContext
Антоны, когда я пишу Thread myThread = new Thread(new ParameterizedThreadStart(AsyncStart)); myThread.Start(1); Thread myThread1 = new Thread(new ParameterizedThreadStart(AsyncStart)); myThread1.Start(2);То потоки создаются одновременно или сперва создается один поток, он отрабатывается, а потом запускается второй поток?
>>1387347есть ConcurrencyToken, есть версионирование строк через DB тип RowVersion, есть костыли. смотря, какие у тебя условия работы приложения. вангую, что тебе никаких защит не надо, если ты спрашиваешь
>>1387706>при редактировании и/или удалении данныхну т.е. в 99.9(9)% приложений? офк нет. нужно это, если у тебя есть реальный шанс поймать окно, когда одна и та же запись модифицируется двумя пользователями/процессами, и это сильно бо-бо
Аноны, есть задача написать мультипоточный xml-парсер, дано путь к файлу, путь к узлу в файле и число параллельных потоков. Как тут прикрутить многопоточность?
Блядь, это один и тот же мудила весь тред спрашивает про тредылол? Сука, возьми любую из книг в шапке, желательно рихтера, открой раздел про асинхронность и изучи, и забудь про это говно устаревшее.
двач,помоги тупомунадо крякнуть прогу.для пикрелейтед нужно сделать декриптор прога не продается,купить не выйдетда,я инвалид
Программа гарантированно вызовет нужный вторичный конструктор?class A : IInterface {...}class B L IInterface {...}class Test{Test(A a) : this(a) {}Test(B b) : this(b) {}Test(IInterface obj) {}...}То есть Test test = new Test(new B()); гарантированно вызовет сначала вторичный конструктор Test(B b), который вызовет уже основной?
>>1388976Он вторичный потому, что его тело пустое и он вызывает цепь конструкторов, которая всегда заканчивается основным.
>>1388937там помимо этого еще ксор и перевод в байты,кажетсяя пробовал писать декриптор,но что-то обсираюсь каждый раз с этими циклами и на выходе выходит хрень
>>1388979а, я не про тот подумалну, не вызваться может Test(A) если в Test(Interface) выехало исключение
Есть тут пользователи Linux дистрибутивов? Какие подводные камни в использование программист может получить при использование линукс?Насколько виртуал бокс может обеспечить юзабильность вин 10, для тестов различных декстопных приложений?Думаю уйти в линукс из за тайловых менеджеров, да и в целом вин 10 вижу как ОС, которая предназначена только для игрушек, что мне не интересно уже
Антоны, у меня есть строка и разделители произвольного размера.Мне нужно разделить строку по этим разделителям и перенести в списке.Должно работать так: text<tag>textВ списке должно быть text <tag> textЕсть ли какие дефолтные методы это сделать или мне нужно пилить свой метод для этого? Регулярку юзать нежелательно, нужно, чтобы все было быстро.
Двоч шо с xamarin'ом?Я вышел с криокамеры, а здесь Xamarin.Forms только один проект в котором нихуя нету. Как сделать как раньше чтобы сразу и android и iOS и uwp было?
Мужики, как в xamarin делать юнит-тесты студии на андроиде? Нашел только шаблоны проектов которые по сути обертка приложение выполняемые на телефоне со своим UI, а мне надо что бы в тестовую среду студии все было интегрировано.
>>1389106Есть пользователь никсоса. Под линукс есть вскод, а не нем и автокомплит, и подсветка ошибок, и рефакторинг, и дебагинг. Если ты не какой-то синьйор помидор, который жить не может без ентерпрайз студии с решарпером, то все норм.Только учитывай, что гуя под нет кор нет, а консольные поделки на шарпе никому нахуй не нужны.Ну и еще никсос хуево работает с проприетарными иде, поэтому или ебись с докером или ставь другой, менее элитный дистрибутив.
>>1389731> Мужики,Как жаль, что я няшный кошко-мальчик, а не суровый мужик и не могу тебе ответить, хоть и знаю ответ :(
>>1388952У тебя конструкторы сами себя второй раз вызывают, а должна быть цепочка вида Test(A a) : this(B b) {} Test(B b) : this(IInterface obj) {}Test(IInteface obj) {}И работа будет происходить сверху вниз, т. е. сначала отработает конструктор принимающий IInterface, а потом B b, при условии что ты вызвал его при помощи Test c = new Test(B b);
>>1389731Какие нахуй юнит-тесты? Ты чё, не мужик что ли? Ебошь так, в ходе работы протестируешь/протестируется и поправишь уже действительные юз-кейс баги, а не хуйню из юнит-тестов.
Я пишу для работы числодробилки (упрощённое моделирование ряда физ. процессов, оптимизация, прогноз, проектирование), как правило, с excel'евским или txt интерфейсом и логикой программы на C#.Начал C# 1-1.5 года назад, вяло перекатываясь в него с VBA. Сейчас заметил, что ничего нового не применяю, всё, что может понадобится, знаю как сделать. Всё, что написано на metanit (кроме сайтоделанья и формочек/рюшечек и т.п.), знаю и понимаю, как мне кажется, достаточно уверенно. С математикой и алгоритмами всё более менее хорошо, для дела хватает.Подскажите что ли, как и куда дальше развиваться по C#/.NET, чтобы могло пригодиться для дела?
>>1389849Охуеть вопросы. Откуда мне знать какие у тебя дела будут? Как раз для деланья и могут пригодиться навыки "сайтоделанья и формочек/рюшечек", но ты их почему-то решил пропустить и ворвался сюда с впросом ЧТО МОЖЕТ ПРИГОДИТЬСЯ ДЛЯ ДЕЛА. Ты сам должен решить, что тебе может пригодиться для дела. И не известно, что значит "как мне кажется, достаточно уверенно", "для дела хватает", может у тебя там костыль на костыле и вообще полное отсутствие оптимизации и читаемости кода, но тебе для дела хватает и ты считаешь это достаточно уверенным уровнем.
>>1389854Дело всё тоже - числодробилки и моделирование. В веб-макаки не собираюсь. Тратить время на рисование кнопочных интерфейсов тоже не хочу, ибо практической пользы нет. Ну и у меня есть этот опыт на VBA. Программирование - подспорье к основной работе (инженерия), а не основная профессия.По алгоритмам и математике я часто гуглю, если чего не знаю, но тут я и сам понимаю, куда развиваться по необходимости.Я понимаю про сложности алгоритмов, про работу с памятью и т.п. И по факту мой код работает быстро, на уровне коммерческих аналогов.Читаемость кода есть куда повышать, однако всё же я работаю один, поэтому это не критично.
А есть ли какой-то плагин для VS, который позволяет в C# избавиться от ебучих скобок, а области видимомости и области определения функций, классов и и т.п. определять отступами как в питоне?
>>1389880Это тебе не обрезанный питон с нулевой типизацией, в более-менее серьезном проекте ты запутаешься и перестанешь воспринимать происходящее в твоём коде.
Пытаюсь вывести из базы данных дату, а выводит дату + время, как можно исправить?[code] listBoxRecords.Items.Add(Convert.ToString(sqlReader["Id"]) + " " + Convert.ToString(sqlReader["Name"]) + " " + Convert.ToString(sqlReader["Date"]) + " " + Convert.ToString(sqlReader["Time"]));[/code]
У меня нету xamarin forms previewer.Ни в других окнах ни в расширениях как на 2 пике.Стоит 17 студия, что делать?
Через открыть с помощью xaml файл есть пункт - xamarin forms previewer, но открывается он по дефолту как текст в студии.
>>1390103Тебе русским языком написали про неявное преобразование. Ты вообще читал про касты?А лучше бросай сисярп. Я серьезно. мимопроходящий
>>1389985>>1390103DateTime OnlyDate = Convert.ToDateTime(sqlReader["Date"]);OnlyDate.ToString("MM/dd/yyyy")
Вопрос во WinForms:Есть элемент ListBox, в который загружаются куча записей из базы данных. Можно как то разделить эти записи по колонкам и выравнять, чтобы няшно выглядело?не хочу дрочить XAML и WPF
День добрый сишарп. Кто-то знает, как добавить экстеншн эвент к стрингу, который триггерится, когда стринг равен определенному значению? Спасибо
>>1390543Создаешь класс.Создаешь в нём делегат.Связываешь с этим делегатом событие.Пишешь нужную логику при установке значения класса.
Товарисчи, пишу интерфейс на wpfинициализирую разные объекты программно, меняю их положение и размеры также программно, но чтобы их менять с задержкой, приходится использовать Dispatcherнапример, если я буду пытаться менять UI кодом https://pastebin.com/VQcb688a то просто всё зависнетприходится запускать этот код в новом потоке и оттуда, через Dispatcher, менять UIМожно ли как-то в тупую, в один поток, менять UI, чтобы у всех элементов был доступ к друг другу и при этом интерфейс не зависал?
>>1391101Ты сам-то понял что сказал, хочешь блокировать UI-нить и при этом что бы она не блокировалась.
Стоит ли использовать новую студию в продакшене? Какие будут подводные камни? Или лучше старую добрую 17-ую?
>>1388891бамп реквесту,сразу кидайте свой биткойн кошелек как напишите - кину что естьнужна консольная прога,которой можно дешифровать это и наоборот- шифровать нужные строки в этот вид
>>1391559Хуею с долбоеба. У тебя на скриншоте 1 метод внутри которого используются еще 3 метода (Program.smethod_15, Program.smethod_4, Program.smethod_7)Ты предлагаешь это дурачку, который соберётся тебе помочь, написать эти методы самому?
https://pastebin.com/9CWZWhdDМмммасленко вопросы тайм. Попытка создать быструю сортировку, выкидывает System.StackOwerflowExcepetion, скорее всего бесконечная рекурсия. Также есть ещё два вопроса: менее колхозный способ объединения массивов и добавления разделительного элемента, который у меня гордо зовётся marker.
Почему у C# -программистов такая нищая зарплата, даже дс1\2 ?Язык ведь намного приятнее всякой Java/Javascript пораши (пусть даже язык не выразительный, но все же лучше байтоебства с++)Дома играюсь с c# unity, на работе пилю wpf Легаси приложения. Где справедливость? Ворочаешь дженерики 5 дней в неделю, а потолок 120к
>>1391910>на работе пилю wpf Легаси приложения.Скажи спасибо, что тебе за эту хуиту вообще платят. Деньги либо в вебе, либо на мобилках, при этом одним знанием C# ты не обойдешься.
>>1391895Можешь чуть более подробно, ибо я совсем тупой. Это цикл for кривой, или что-то более серьёзное?
>>1391953>>1391769Насколько нужно быть тупым чтобы не додуматься до того чтобы написать Console.WriteLine(переменнаяговнокода) и посмотреть что не так? Или просто загуглить готовое решение и посмотреть как реализуется данный алгоритм?
>>1391953когда слишком глубокая рекурсия (дохуя раз вызываешь один и тот же метод с сохранением предыдущего значения в стек), то стек переполняется. поэтому лучше писать код без рекурсии
>>1391910Зп в ИТ начинают снижаться. Это неизбежно. Падение будет до тех пор, пока не рыночек не выравняет.С хуя ли какой-нибудь физик или инжинер, которому кодинг и тем более матаху преподавали нормально, должен идти по специальности на 25к, если может повалить джуном на 50-60?Да и вкатывальщики шатают рыночек. Порог входа очень низкий. Знаю парня, который учился в вузе 8 лет за счёт академов на экономиста. После вуза работал фотографом и т.п. Жил на мамкину зп (мамка бохатая). Сейчас 37 лет ему. Мамка на пенсии, стала его нахуй посылать. Он взял да и вкатился в айти года 2 назад. Сейчас сеньор пхп-макака.Когда учился в школе, во дворе был парень, он был реально дауном, у него был белый билет. Он даже в 15 лет несколько раз обосрался в штаны. Он ел гусениц и тритонов. Недавно нашел его в вк, списался, пообщался, сейчас он в 1С с зп овер 200к.Любой, даже старый имбецил, сейчас может вкатиться в айти за пару месяцев и без проблем заменить тебя.А ещё ведь и индусы напирают.
>>1392088>Когда учился в школе, во дворе был парень, он был реально дауном, у него был белый билет. Он даже в 15 лет несколько раз обосрался в штаны. Он ел гусениц и тритонов. Недавно нашел его в вк, списался, пообщался, сейчас он в 1С с зп овер 200к.все что нужно знать об 1с программистах
Кто знает как заставит одну форму(дочернюю) прозрачно налаживаться на родительскую форму?Выбираю в дочерней форме прозрачность, а она выдаёт мне не содержимое родительской формы, а просто картинку которую я прилепил по умолчанию на всю родительскую форму.
>>1392166Ага папочка, мне после завтра на работку.>>1392088Ммм шарписты как всегда в эпицентре спасения вкатывальщиков.
народ, у меня вопрос.есть метод в классеpublic virtual string[] Search(string findThis) { return new string[] {"Default result;" }; }юзаю значит:SearchEngine engine1 = new SearchEngine();string[] defaulResult = engine1.Search("bla bla bla");Console.WriteLine(defaulResult);в консоли пишет system.string[], хотя по задумке должен выводить условный "Default result"как пофиксить?
>>1392201Обращаться к элементу массива:Console.WriteLine(defaulResult[0]);Либо возвращать строку, а не массив строк:return "Default result;"Либо перегружать оператор преобразования типов, который будет из твоего string[] делать обычный sting, например, проходясь по массиву и соединяя все элементы в одну строку.
В базе данных есть столбец где хранятся данные типа Date.В DataGridViewer заливается вся БД, как отфильтровать отображение, чтобы выводились только записи за 04/30/2019, например?
>>1392256>В DataGridViewer заливается вся БДПиздец.https://docs.microsoft.com/ru-ru/dotnet/framework/data/adonet/filtering-with-dataview-linq-to-dataset
Пробую asp net core, шишка дымится. Но в процессе понял, что я не испытываю полного кайфа из-за того, что все крутится на локалке. Решил прикупить какой-нибудь днищехостинг, но я абсолютно в этом не шарю. Подскажите, что надо, чтобы завелся нет кор? Если написана поддержка asp net, то кор работать не будет? Можно ли использовать линупс сервер и насколько сложно будет там настроить, если в линуксе 0? А лучше скиньте ссылку на дешманский подходящий сервер.
Антоны, как в парадигме MVC работать со статическими классами?Допустим, я хочу вести стек для вывода постов на форуме, чтобы помещать вперед наиболее активные, как мне это реализовать, особенно если у меня несколько разделов и один контроллер?Неужто мне для каждого раздела нужно заранее инициализировать свой стек?
>>1392818И насколько я понимаю, работу класса нужно будет делать потокобезопасной.Блджад, а я в этом не шарю.
>>1392528Логичный варик: Azure. На рандомном VPS на линуксе должно тоже работать, сможешь или нет настроить зависит от отвей обучаемости.
>>1392818ASP.NET же предлагает тебе DI. Ты внедри свой стек как синглтон (а ещё лучше - в обертке) и при каждом обращении к твоему контроллеру, у тебя будет только один стек.
>>1392931Поюзай LINQ, поймешь зачем делегаты.Вот отличный пример - элегантный расчёт площади полигона по заданным вершинам:var points = GetSomePoints();points.Add(points[0]);var area = Math.Abs(points.Take(points.Count - 1) .Select((p, i) => (points[i + 1].X - p.X) * (points[i + 1].Y + p.Y)) .Sum() / 2);То, что внутри Select, это делегат.События нужны всяким веб-макакам и фронтенд-формошлёпам.
>>1392936Select принимает как аргумент встроенный делегат Func<>, который в данном случае инициализируется лямбдой.
>>1392935Я юзаю Linq постоянно, не часто передавал лямбда выражения в качестве делегата.Но я не понимаю внутреннюю механику
>>1392940В Linq в Select, Where, OrderBy, GroupBy и т.п. ты всегда использовал делегаты.>Но я не понимаю внутреннюю механикуСформулируй вопрос свой.
>>1392931Для того чтобы хранить в себе методы из разных участков кода, а потом вызывать их все в каком тебе нужно месте.
>>1392940> не часто передавал лямбда выражения в качестве делегата.А что ты тогда передавал в линкью?> Но я не понимаю внутреннюю механикуА че там понимать? Обычные функции высшего порядка...
>>1392947Ну это описание ни о чем не говорит.Но я вспомнил как оно работает, мы создаем событие как поле класса и потом передаём экземпляр этого класса в конструктор другого класса, где и регистрируем метод
>>1378325>75 микросервисовААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА СУКА
>>1393063Какие нахуй экземпляры и конструкторы? Ты можешь создать какой-нибудь базовый класс и объявить в нём делегат и привязать к этому делегату событие. Потом создавать от этого класса производные и использовать это событие во всех классах, после чего ты в методе Main, например, событию базового класса присваиваешь нужный тебе метод или несколько методов и знаешь, что эти методы будут использоваться во всех производных классах. Удобство заключается в том, что тебе не нужно менять каждый класс, добавлять туда какие-либо методы, ты делаешь это всё в одном месте и задаешь нужную тебе логику через один метод. Всё что тебе нужно это знать что именно делает определенный класс и какие параметры он передаёт событию, именно поэтому первым параметром чаще всего будет this для того чтобы в зависимости от класса, обработать полученные данные в одном методе который ты привяжешь к событию нескольких классов.
>>1392944Да я все уже понял, просто забыл про всякие делегаты типа Func и что мы можем использовать их в качестве параметров методов.Надо бы самому что-нибудь сделать этакое.На самом деле синтаксисом из (x, y) => я не использовал пока, не очень понимаю, зачем он нужен.>>1392914>ASP.NET же предлагает тебе DIЯ юзаю Ninject, как я понял, мне достаточно реализовать привязку через него, указав, что это синглтон, а дальше в контроллере работать с публичными методами моего класса, что работает со стеком?
>>1393117> На самом деле синтаксисом из (x, y) => я не использовал пока, не очень понимаю, зачем он нужен.Код явно короче становится.
>>1393116>Какие нахуй экземпляры и конструкторы?Я судил по примеру, который дает Рихтер. Он использовал один класс, чтобы уведомлять другие о возникновения события и привязывал метод к событию в конструкторе классов, которые уведомляются.>что именно делает определенный классМожешь показать пример сигнатуры такого делегата?>this для того чтобы в зависимости от класса, обработать полученные данные в одном методе который ты привяжешь к событию нескольких классов.А в методе должна реализоваться проверка на класс или как это должно выглядеть?
>>1393128>Код явно короче становится.Я понимаю, но как это используется в запросах с where, select, groupby, orderby?
>>1393135Ах да точно, забыл самое главное. Очевидно что ты можешь отправлять фильтр/логику по которой линкю методы могут выбирать/возвращать элементы.Ты сам тоже такое можешь написать и принимать на вход метод если ты пишешь какую-то либу/модуль для других разработчиков, а иначе хуй знает как это сделать.
Как использовать арифметические операции c Template'ом?Что-то типа такого:public static class A<T>{ public static T Sum(T a, T b) { return a + b; }}Гуглил. Вроде нельзя так. Неужели придётся копипастить один и тот же код для разных базовых типов (мне нужен int и double). Как-то тупо.
>>1393126Ну, во первых js изначально не язык программирования. Его придумали для браузеров, как язык "сценариев" анимации и прочая интерактивность, а как известно, попытки таких вот языков эволюционировать во что-то нормальное - заканчивается костылями и синтаксисом, где от расположения открывающей скобки метода зависит, вернёт метод undefined или null.
>>1393176 1.нельзя, тк у тебя не стоят разграничения обобщений. Вдруг ты в T поставишь какой-нибудь класс.2.У статик классов нельзя ставить обобщения
>>1393176Если тебе нужны именно арифметические операции, то просто пиши методpublic static double Sum(T a, T b) { return a + b;}и если используешь int - приводишь входные к double, а выходные к int
>>13931861. Ну может можно написать что-то вроде where T : IArithmetic, или как-то самому такой интерфейс прибабахать к базовым типам.Кроме-то шаблоны же привязываются на уровне компиляции вроде как, соответственно, компилятор мог бы просто проверять весь код, что вставляется вместо T, и соответствующим образом компилировать, как в C++. Неужели no way?2. Мне это надо для нестатического класса, это просто пример, но он компилируется и работает, так что можно.
>>1393188Ну приведение типов решение очевидное, но костыльное, замусоривающее код и вызывающее чувство отрващения к этому дерьму. Лучше уж скопипастить класс для двух реализаций.
>>13931891.к сожалению нет2.Сам не проверял, но это нелогично т.к.: обобщение указывается при объявлении экземпляра типа, а у статик экземпляр объявить нельзя
>>1393179> от расположения открывающей скобки метода зависит, вернёт метод undefined или null.Так помоему фича? а зачем нужен undefined
>>1393176>Неужели придётся копипастить один и тот же код для разных базовых типов (мне нужен int и double).Наверно для таких случаев и придумали перегрузку методов.
Сап, анонче. Ньюфаг в ADO.NET. Правильно ли я думаю, что фабрика поставщиков данных - это херня, которая позволяет подключаться к базе данных без использования специальных пространств имен типа System.Data.SqlClient при помощи двух строк с названием библиотеки поставщика базы данных и строкой подключения?Если что-то не то пизданул - прошу подправить, ибо если сейчас не пойму - то всё по пизде пойдёт.
>>1393117> Я юзаю Ninject, как я понял, мне достаточно реализовать привязку через него, указав, что это синглтон, а дальше в контроллере работать с публичными методами моего класса, что работает со стеком? Да, блять.
>>1393275это херня, которая, используя абстракции ADO.NET, реализует подключение к БД так как ей надо>Основная идея модели фабрик заключается в том, что вы используете единственный объект-фабрику для создания всех прочих необходимых специфичных для поставщика объектов. Затем с этими специфичными для поставщика объектами можно взаимодействовать полностью обобщенным способом, через набор базовых классов.>Фабрика классов сама по себе специфична для поставщика. Например, поставщик данных SQL Server включает класс по имени System.Data.SqlClient.SqlClientFactory. Поставщик Oracle использует System.Data.OracleClient.OracleClientFactory. На первый взгляд может показаться, что это исключает написание независимого от поставщика кода. Однако на самом деле существует полностью стандартизованный класс, который предназначен для динамического нахождения и создания необходимой фабрики. Это класс System.Data.Common.DbProviderFactories. Он предоставляет статический метод GetFactory(), возвращающий фабрику на основе имени поставщика.https://professorweb.ru/my/ASP_NET/base/level6/6_5.php
Аноны кто может помочь?Как реализовать extension метод который принимает IEnumerable<T> и возвращает <Tuple<T, T>?Есть примерный образецpublic static IEnumerable<Tuple<T, T>> ToTuples<T>(this IEnumerable<T> dates){ var enumerator = dates.GetEnumerator();}и сам вызов метода:void Main(params Data[] data){var tuples= data.ToTuples()}
Антоны, у меня есть список элементов int, как мне через linq достать все записи, где значение поля совпадает со значением элемента int?
>>1393328public static IEnumerable<Tuple<T, T>> ToTuples<T>(this IEnumerable<T> a) { var ans = new List<Tuple<T, T>>(); foreach(var v in a) ans.Add(new Tuple<T, T>(v, v)); return ans; }
>>1393365Спасибо, близко, но если я подам следующие значения:11,12,13,20,21То получу пары 11,11 12,12 13,13 20,20 и т.па надо 11,12 12,13 13,20 20,21
>>1393366public static IEnumerable<Tuple<T, T>> ToTuples<T>(this IEnumerable<T> a) { var ans = new List<Tuple<T, T>>(); for(int i = 1; i < a.Count(); i+=2) { var v1 = a.ElementAt(i - 1); var v2 = a.ElementAt(i); ans.Add(new Tuple<T, T>(v1, v2)); } return ans; }
>>1393371Нихуя себе, а так можно было что-ли?Если сможешь помочь с последним, то с меня тонна нефти и 2 чаю.Теперь требуют сделать ленивый возврат через yield returnпытался через foreach сделать:foreach (var tuple in elements){ yield return tuple;}ругается и говорит что ленивый возврат не работает
>>1393378надо сделать как-то через yield return new Tuple<T, T>()Пытался через: public static IEnumerable<Tuple<T, T>> Pairs<T>(this IEnumerable<T> dates){ if (dates.Count() < 2) throw new ArgumentException(); for (int i = 0; i < dates.Count() - 1; i++) yield return new Tuple<T, T>(dates.ElementAt(i), dates.ElementAt(i + 1));}выдает ошибку Pairs_EnumerateSequenceOnlyOnceNever enumerate IEnumerable twice! It can be impossible. Also the second enumeration may produce another sequence than the firstХуйня какая-то
>>1393375idЯ в одном месте программы получаю список из id постов которые нужно выгрузить в специальном порядке.Потом, мне нужно взять список и загрузить все посты из базы по id.Я могу для каждого создавать отдельный запрос через цикл for и добавлять их в новый список, но хотелось бы что-нибудь получше.В общем, хочу переписать это.
Сап, аноны. Для диплома нужны экранные формы информационной системы, окошки, менюшка, все дела. В какую сторону копать - виндоусформ или wpf?И вообще, на сколько хорошая идея - учить сисярп вторым языком после пистона?
>>1393436Начинать надо с ассемблера, потом C, потом C++, потом Фортран, потом Java || С#, только потом питон || джаваскрипт.
>>1393439Универский курс ВМ, физики и электротехники должен быть пройден, прежде чем приступать к программированию. Алгоритмы, структуры данных, устройство компьютера, архитектура процессора и т.п. следует проходить параллельно кодингу.Можно конечно без всего это сразу вкатиться и начать быдлокодить, но тогда получим 1С-ника, независимо от языка.
>>1393436WPF конечно, винформс это прошлый век.>И вообще, на сколько хорошая идея - учить сисярп вторым языком после пистона?Переходить с простого на более сложное - всегда хорошая идея и метод.
>>1393441>Можно конечно без всего это сразу вкатиться и начать быдлокодить, но тогда получим 1С-ника, независимо от языка.Это же все постирония? А то я чуть не начал спорить с этим
>>1393473А в каком они порядке лежат? Сортируй на выходе, по дате, например, или по любому другому свойству
>>1393476Они лежат уже отсортированные в нужном порядке, мне теперь посты нужно из базы в этом же порядке вытащить.
>>1393465Ну ирония в этом есть конечно. А в целом нужно различать инженера-программиста с ВО, который должен проектировать и создавать сложные и большие системы, понимая, как там всё работает, который имеет не только опыт (и не только в сраном вебе), но и глубокие знания, и подмастерьев - джамшутов-кнопкодавов, которых и взаправду можно готовить за 21 день и спускать им рутину, которая часто есть.Но отрасль нынче изобилует именно джамшутами, и результаты на лицо. Компьютеры за последние 10 лет стали быстрее, а софт в среднем - тяжелее, медленнее, и хорошо если по функциональности хуже не стал.И хорошо, если нужно написать очередную веб-какашку. А ведь если нужен серьезный продукт (космос, оборонка, медицина, банкинг, промышленные процессы, защита данных), то сколько бы денег ты не заплатил, нигде нет гарантии, что не нарвёшься на безрамотных идиотов с лычками сеньора.
>>1393480>И хорошо, если нужно написать очередную веб-какашку. А ведь если нужен серьезный продукт (космос, оборонка, медицина, банкинг, промышленные процессы, защита данных), то сколько бы денег ты не заплатил, нигде нет гарантии, что не нарвёшься на безрамотных идиотов с лычками сеньора.Так софт для них - это другая отрасль, думаю, что он не на сишарпе пишется.
>>1393481Если проект начался в последние годы, а не достался из 90-х, то шарп или джава вполне годное решение зачастую (если мы про софт для ПК говорим).
Есть три пикчи:1)События2)Обработчик событий в форме3)Обработчик событий в классеКак сделать так, чтобы обрабатывались в классе, а не в форме и почему это происходит?я конченный, знаю
Как сделать в интерфейсе метод с реализацией в 19-й студии?Студия пишет ошибку, что target runtime does not support defaullt interface implementaion. При этом скачал последний нет фреймворк 4.8.
>>1393793To create a suitable project for trying out all currently available C# 8.0 features, you can follow these steps:1. Create a new .NET Core project of any type.2. In the Application pane of the project Properties window, make sure that the Target framework is set to .NET Core 3.0.3. From the Build pane of the project Properties window, open the Advanced Build Settings dialog and select C# 8.0 (beta) as the Language version.
Анон подскажи как заставить параметры\надпись игры и миникарту корректно отображаться на игровом поле?Среда - вижуал студия, язык C#Если смогу заставить надпись New Game быть прозрачной, то и миникарту смогу бахнуть, но чего-то надпись прозрачна только на самой картинке программы.
Аноны, что скажете на счёт такой оптимизации:1. Заменить все классы на структуры.2. Все структуры, которые будут использоваться в программе, сразу инициализировать. Т.е. чтобы выделение памяти в куче было только единожды при запуске программы.3. В методы передавать структуры ref'ом. Не использовать функции, возвращающие структуры. Использовать только процедуры, которые пишут результат своей работы либо в какие-то переменные внутри структуры, либо в переменные, которые переданы как аргумент в функцию, опять же ref'ом.Правильно ли я понимаю, что если внутри класса есть объект другого класса, то скорость доступа к данным внутреннего объекта имеет накладные расходы, т.к. внутренний класс может лежать в куче очень далеко от внешнего? В случае же использования структур такой проблемы нет, т.к. все внутренние данные структуры по значимым типам лежат одна рядом с другой.
>>1393927Структура целиком сразу попадает в кэш процессора при чтении, при этом уровень вложенности структур в структуру не имеет значения, доступ к элементу зависит от размера и его относительная ссылка, отсчитанная от ссылки на заголовок структуры, определён во время компиляции.Время доступа к любой вложенной структуре равен времени чтения кэша процессора.С классами всё не так. Каждый экземпляр класс занимает своё место в куче. Причём по этому адресу в куче могут лежать не данные, а такие же ссылки на вложенные экземпляры других классов, поскольку экземпляр класса может иметь вложенные экземпляры других классов. Доступ к данным в ОЗУ в разы медленнее, чем к кешу процессора, а то и на порядок. Причем чем больше уровень вложенности, тем больше время доступа, оно линейно возрастает.
>>1393934Я так всегда проигрываю с этого больше/меньше. Да больше, да на порядок, только конечные расходы все равно будут в наносекундах - перейти по ссылке не дорогая операция.
>>1393938Время доступа к RAM занимает в несколько раз больше тактов процессора, чем, например, деление чисел с плавающей точкой. Если твоя программа занимается в основном вычислениями, то это очень дорогая операция, т.к. по сути все твои арифметические операции считаются в разы больше времени с учётом времени чтения и записи данных.
>>1393889>1. Заменить все классы на структуры.Структуры не поддерживают наследования. Если будешь использовать только структуры, то придётся писать один и тот же код несколько раз.Все поля структуры должны быть проинициализированы, что будет занимать больше памяти в сравнении с классами, в ситуациях когда не все поля нужно задействовать. Ну и зачем костыли вида:2. Все структуры, которые будут использоваться в программе, сразу инициализировать. Т.е. чтобы выделение памяти в куче было только единожды при запуске программы.3. В методы передавать структуры ref'ом. Не использовать функции, возвращающие структуры. Использовать только процедуры, которые пишут результат своей работы либо в какие-то переменные внутри структуры, либо в переменные, которые переданы как аргумент в функцию, опять же ref'ом.Если тебе дорога каждая наносекунда, то используй ассемблер, а не изъебывайся с инструментом который предназначен для решения других задач.
>>1393948Легче купить мощный процессор, потратив 50к, чем ебаться с кодом и тратить на разработку программ в 10 раз больше времени. Ну будет твоя программа летать на маломощных компьютерах, проводить расчеты за 1 секунду, в то время когда моя будет проводить их за 2 секунды. Вот только я уже буду продавать свою программу и набирать аудиторию пользователей, она будет приносить мне прибыль, в то время как ты всё еще пишешь код и трясешься над каждой наносекундой исполнения. К моменту когда ты её выпустишь, никто не захочет на неё переходить, потому что все пользуются менее оптимизированной версией. И это не пример из головы, так оно и работает в большинстве случаев, людям выгодней поддерживать старое, чем переходить на что-то новое ради незначительной выгоды.
>>1393959>Структуры не поддерживают наследованияВместо наследования в моём случае можно свитчей понапихать, можно делегаты использовать.>будет занимать больше памяти в сравнении с классамиПроблемы нехватки памяти не существует. Оптимизация по памяти - зло и легаси из 80-х. Нет никаких проблем увеличить объём ОЗУ хоть в 4 раза, а вот процессор и на 10% едва ли будет быстрее считать.>Если тебе дорога каждая наносекунда, то используй ассемблерСейчас один кейс считается 10 сек. Если он будет считаться 1 сек, а лучше 0.1 сек - это будет охуенно. Но проверять всю эту хуйню тестами и выяснять что и как влияет на производительность я заебусь. Поэтому теоретизирую и спрашивую вумных двачеров, какую не слишком хитрую оптимизацию стоит применить.
>>1393967Согласен. У меня уже есть работающая версия из дремучего костыльного говнокода, которой люди пользуются и в целом довольны. Но отношение к этому такое - "да, доморощенное говно, но просто ничего другого просто нет в этой нише".Сейчас возникло желание переписать это и расширить функционал, сделать всё красиво, т.к. мои знания и навыки кратно расширились с тех пор, когда я сделал имеющуюся версию.
>>1393975>Вместо наследования в моём случае можно свитчей понапихать, можно делегаты использовать.И будет у тебя монстр который пердит багами каждую секунду. >Сейчас один кейс считается 10 сек.>Поэтому теоретизирую и спрашивую вумных двачеров, какую не слишком хитрую оптимизацию стоит применить.И ты решил, что дело в использовании классов вместо структур, а не в твоём говнокоде, лол? Лучше код оптимизируй, а не закапывай голову в песок, обманывая себя тем, что проблема не в твоём коде, а в его реализации ЯП.
>>1393984+ не факт что твоя плапша из свитчей и делегатов будет работать быстрее. С 99% уверенностью могу сказать, что по итогу ты со своими структурами придёшь к меньшей производительности, чем с комбинацией классов и структур.
>>1393441Про Аллаха забыл сын шлюхи! Без богословия ты вобще чёрт независимо от всего. Как отучишся в аль-Азхар тогда думай о вкатывании в шарпы быдло.
>>1393889Тебч наебали. Рефы ебашат по производительности, как суки MSDN в помощь. Передавать класс, который просто хранит структуру, выгоднее, чем передавать ref структуру.
>>1393889Зависит от задач, тебе скорее всего надо data oriented design, но он опять же не везде дает выигрыш.И то о чем ты говоришь уже используется в unity, точнее продвигается, они там используют так же структуры и компоненты, делают из этого чанки и в результате получаются как бы массивы с очень быстрым доступом к данным.>И ты решил, что дело в использовании классов вместо структур, а не в твоём говнокоде, лол? Лучше код оптимизируй, а не закапывай голову в песок, обманывая себя тем, что проблема не в твоём коде, а в его реализации ЯП.Ты явно не сталкивался с проблемами стандартных средств. К примеру самый жесткий и очевидный пример это bitmap где setpixel это -100000% производительности и по факту лучше обмазаться unsafe кодом работая с ptr что реально в сотню раз быстрее работает.
>>1393889Кстати структуры лучше делать НЕИЗМЕНЯЕМЫМИ, это позволяет компилятору оптимизировать код и тогда реально получишь прирост.
>>1394081>Ты явно не сталкивался с проблемами стандартных средств.>очевидный пример это bitmap Ты сравниваешь абстрактный тип данных (класс) с обычным классом, который создан кем-то другим. Никто не мешает тебе создать свой класс bitmap и реализовать в нём методы так как тебе удобно, другое дело классы и структуры, у тебя нет возможности создавать абстрактные типы данных.
>>1394084Этим ты только заставишь компилятор делать 100500 копий твоей структуры при самых безобидных операциях.
>>1378307 (OP)>3. WinForms или WPF?>Шо то хуйня, шо то - все пацаны на электроне ебашат. Еще есть Avalonia, но пока она сырая. Но если уж хочешь гуй на шарпе, то читай:>Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.Я недоволен этим ответом в шапке.Посоветуйте гуй-фреймворк под шарп, обладающий следующими требованиями:1. Кроссплатформенность (разработка на линуксе и винде как минимум, компиляция пол линукс винду и андроид, минимум).2. Визуальный редактор форм (вызывыг), доступный из всех платформ разработки (винда и линь).В качестве примера, чего я хочу: Библиотека LCL (Lazarus Component Library) для IDE Lazarus соответственно, которая спизжена с дельфи, но при этом полностью опенсорсна и кроссплатформенна и приложения на ней можно разрабатывать во всех платформах разработки, переключаясь из одной в другую, с сохранением формошлёпства.
>>1394081>И то о чем ты говоришь уже используется в unity, точнее продвигается, они там используют так же структуры и компоненты, делают из этого чанки и в результате получаются как бы массивы с очень быстрым доступом к данным.Можно пример? Не совсем понимаю о чем вы, но выглядит как хорошая идея.
>>1394244Гугли ECS.мимоВообще, капча "велосипеды" заставила меня напрячься и погуглить для тебя https://habr.com/ru/company/otus/blog/422981/
>>1394146Порой это эффективнее чем использовать данные из классов.Те же функциональные языки не раз это доказывали, immutable объекты крайне хороши для многопоточного кода.Да и unity используя подобный подход показали отличную производительность. Проблема пока что в том что очень малое количество людей способны подобным образом писать код, а точнее эффективно его писать. Если писать в ООП стиле как раньше это будет только хуже, но если писать код вокруг данных, то выйдет эффективнее.Для большинства программ это не нужно, так как они не так активно работают с данными, но вот те же игры которые фактически и есть поток данных это возможно на текущий момент лучшая парадигма.Сейчас многие упарываются красотой кода в угоду производительности, порой даже в десятки раз, это хорошо для продуктов которые делают лишь для продажи, но плохо для продуктов которые делают с душой. Да и копии данных даже в обычных программах 100500 раз делают, к примеру используя тот же LINQ.
А имеет смысл сохранять длинну массива и list.count в отдельную переменную?Мне всегда казалось это самой байтоебской фишкой.
>>1393912Будет ли принципиальная разница скажем с unsafe кодом шапра, написанным в стиле С++ (т.е. пиханием повсюду указателей)?
>>1394289Будет, иначе все бы использовали C#, потому что всё что можно сделать на C++, можно сделать и на С#
>>1394266Если это свойство, то нет.Если это метод, то да. (Такое бывает когда у тебя абстракция и тогда это не просто переменной может быть, а реальный подсчет всех элементов)Плюс сильно зависит от того как ты это используешь, не могу сказать за текущий шарп, но вот в 5.0 помню была задачка по обходу двумерного массива (4000х4000) где часто дергалось одно свойство, кэширование прям перед циклом улучшалось на треть производительность.Сейчас возможно уже это дело поправили, но встречал часто код когда перед Paralle.For(each) кэшировали свойства, не знаю по привычке это или реально помогает. Возможно это какая-то оптимизация под определенные процессоры.
>>1394289Естественно С/С++ будет быстрее, даже если код написанный на C# максимально оптимизирован за счет jit'a, unsafe и вообще x64. С/С++ обращается напрямую к операционной системе, каких-то скрытых расходов на производительность нет, ты сам контролируешь ход выполнения программы от А до Я.
>>1394289Будет лишь при условии что ты реально знаешь что делаешь, иначе скорее всего только хуже сделаешь.С С++ не все так просто как кажется, там столько костылей для производительности выдумали, к примеру small string optimization.
>>1394306>>1394302Охуеть сколько "экспертов" повылазило. Какая нахуй виртуальная машина, какое нахуй прямое обращение? Напрямую обращается только ассемблер, в который и компилируется код на других ЯП в т. ч. и С, C++, C# С++ быстрее за счёт легковесности того кода, который независимо от написанного тобой кода будет компилироваться в итоговый код. Например, сборщик мусора, которого в C++ попросту нет. С одной стороны тебе придется ебаться с управлением памятью, с другой стороны ты создашь не универсальное решение для управления памятью, чем является GC, а частное, за счет чего программа и будет работать быстрее (если руки не из жопы).
>>1394320Естественно сам ЯП никуда не обращается, лол, но код написанный на C/C++ компилируется в машинный/натив код. Общается такое приложение напрямую с системой. .Net же запускается на виртуалке, которая интерпретирует байткод, чистит мусор, делает все что там нужно и только потом передает управление системе. Ты хуйню написал.
>>1394376> вместо него?Кор. Net Standart 2.1 уже не будет поддерживаться фуллфреймворком, они об этом еще в прошлом году писали. Типа, двадцать лет легаси и все такое, мы не можем сходу брать и пихать все оптимизации и новые фишки в фреймворк с риском сломать старый софт.
Словил баг на который не один час убил, терялись данные на старте проги из очереди Queue при том что все работало в 1 потоке и вроде бы никаких проблем быть не должно, как не обмазывался локами, барьерами и хер знает чем понять не мог где проблема зарыта. Все это усугублялось тем что при дебаге это проблема не возникает, а только если жмакать ран и неважно дебаг или релиз режим. Все ссылается лишь на строчку что Dequeue() почему-то вернул нулл.Делал проверку при добавлении на нулл и там нет не одного нулл итема, но при потреблении вылетает нуллреференс.Оказалось что собака зарыта в изменении размера Queue при добавлении, не знаю в чем именно там косяк, но если не указывать явно при создании размер, то вначале он будет маленьким (4 кажется) и при добавлении все будет хорошо, но при потреблении очередь выдаст тупо Нулл если конечно у вас референс тип. И это никак не ловится дебагом, так как при дебаге такого не случается.А потом еще ругаются что через WriteLine отлаживать нельзя, порой без него просто нереально отладить какой-то тонкий косяк.
>>1394415Так тогда ты ошибку не поймал и причину не выяснил. В жизни не поверю что внутри там написано что если дебаг то чтобы при потреблении null не выдавало.
>>1394418Дело не в том что там так написано, просто в дебаг программа работает слегка иначе, скорее всего медленнее и из-за этого такой проблемы нет.К примеру в многопоточной проге если делать инкремент переменной (около 2000 раз) через дебаг чаще всего не будет гонки, при просто ране гонка будет в 99% случаев. Если сделать 200000 раз то будет наоборот, в ран режиме должно быть число выше чем в дебаг.Это и вызывало проблему у меня, в ране программа работает слишком быстро и возможно GC при расширении очереди умудряется убить ссылку на то что там хранилось до момента использования, что приводит к использованию null.Сейчас проверил эту же прогу на ноуте и там такой ошибки не вылазит вообще, а у меня на i7 в большинстве ран запусков вываливается.
>>1394427> возможно GC при расширении очереди умудряется убить ссылку на то что там хранилось до момента использования, что приводит к использованию null.Очень маловероятно, если честно.Но задачка интересная и я бы на твоем месте еще ее поковырял.
>>1394427Может это не GC, а ты присваивал объекту значение null, либо в результате каких-либо действий он получал значение null, до того как использовался в очереди.
Знатоки, подскажите, в чем проблема. Вот делаю я WPF. Добавил картинку в бэкграунд - и на предпросмотре все выглядит как пик 1 При попытке запуска вылезает ошибка - пик 2 Ну и соответственно XAML-код — пик 3Первый день в WPF
Продолжаем структурную оптимизацию. Кажется, наткнулся на ещё одно ограничение C#.Есть вот такой гипотетический код, в котором структура реализует интерфейс: class Program { interface I { void Calculate(); } struct S : I { public int X; public void Calculate() { X += 1; } } static void Main(string[] args) { S s = new S(); Console.WriteLine(s.X); // s.X == 0 Work(s); Console.WriteLine(s.X); // s.X == 0, но надо сделать, чтобы было s.X == 1!!! Console.ReadKey(); } static void Work (I i) { i.Calculate(); } }Как в метод, принимающий интерфейс, передать структуру, реализующую интерфейс, по ссылке? Т.е. чтобы после отработки метода Work, поле X структуры S содержало значение 1? Как либо ref сделать не получается, компилятор бухтит.
>>1394471>придумал гипотетическую проблему>не смог решить>Сделал вывод что это язык виноватНе надо так няша.
>>1394471Интерфейс - ссылочный тип. Когда ты приводишь структуру к интерфейсу, ты упаковываешь ее и запихиваешь в кучу. Это никак не исправить, так устроен сисярп.
>>1394471Work (I i) Здесь ты передаешь копию структуры. И тут i.Calculate(); у тебя копия структуры с s.X==1Дальше ты старую копию структуры выводишь где у тебя s.X == 0.Вот так это дело будет работать как ты хочешь https://pastebin.com/WFifgcBy
Анон как заставить Lable и Panel быть прозрачными на главной панели? Если кидаю картинку на форму то запись и панель отлично отображается, но как только запускаю программу появляется главная панель и вся прозрачность остаётся только на картинке формы.Чего делать?
>>1394625>и вся прозрачность остаётся только на картинке формы.Просто на картинке надпись прозрачна, но я стараюсь сделать прозрачной надпись не на картинке, а на панели со сгенерированными пикчербоксами и миникарте с генерированными маленькими пикчерами.
Как в C# лучше обернуть асинхронный Api в синхронный, может какой паттерн на этот случай имеется?Я сейчас юзаю EventWaitHandle в колбеке, но чтог-то кажется это криво выглядит.
>>1394648>я стараюсь сделать прозрачной надпись не на картинке, а на панели со сгенерированными пикчербоксами и миникарте с генерированными маленькими пикчерамиКонечная цель какова? Для чего ты борешься с прозрачностью там, где она практически не используется?
>>1394648>на панели со сгенерированными пикчербоксамиТак сделай все контролы тоже прозрачными. Только лагать все это будет неимоверно.
>>1394701Там предлагается ебашить хмл руками. Хмл руками я и в впф могу. Мне нужно визуальное конструирование форм (как в дельфе, охоспаде, да!) Ладно, поставлю вопрос иначе: Существуют ли отдельные конструкторы форм, которые выдают на выходе сгенерированную хмл-схему?
>>1394754Берешь и без задней мысли вызываешь .Wait() Если автор апи не дурак и прописал везде ConfigureAwait(false)
>>1394764Там олдскульная асинхронность, вызываешь метод в аргументе колбек, он тут же возвращает управление и вызовет колбек при ошибке или когда закончит работу.
>>1394769На ум тогда ничего не идет, только костыли в виде флажков чтобы поток, вызвавший твой метод с коллбэком, делал sleep пока твой коллбэк не сбросит состояние. И то, если такое вообще получится в старом коде, может, он неизменяемый вообще.
>>1394923Да там конфа вообще пиздец, я устал уже читать все статьи из их блогов. Наворотили миллиард всего.
>>1394936Блять я только-только в это говно начинал залезать и в частности в зэмерин.И какого хуя мне обратно укатываться?
MS запилили какой то новые терминал, я аж возбудился может сделали как я говорил чтобы была поддержка редактирования хотя бы уровня любого инпута, но похоже снова обсер.
>>1378307 (OP)Призываю любителей зреть в корень, понимающих как всё на нижних уровнях работает.Есть три стула. score = score + 1; score += 1; score++;На какой самому садиться, а какой для калькулятора удобен?Это оптимизация уровня б, или есть подводные?на оппике шотик или лолька?
Покидайте пожалуйста источников по ASP.NET Core и по интеграционному тестированию. Кроме метанита, пожалуйста.
Пытаюсь определиться - стоит учить или нет? Главный вопрос - кроссплатформенность? Моно вообще нормально работает или проприетарь-винда онли у вас?
>>1395015Вообще похуй, все три варианта скомпилируются в одни и те же инструкции. С точки зрения читаемости score++ (ибо стандартый оператор инкремента во многих языках), и если прибавить n, то score += 1 (ибо короче, сразу понятно, что добавляется к текущему значению, ну и опять же самый распрастраненный вариант).https://sharplab.io/#v2:C4LglgNgNAJiDUAfAAgBgATIIwG4CwAUMgMyYBM6AwugN6HoOanIAs6AsgBQCUt9jAsADtg6AM4BjAPYAnAKboAvOlT4CAgZNkLlW+enjpchAJAm9C+MuMEzF+PDUCAvoWdA
>>1395015Компилятор такое сам оптимизирует. Первые два для него вообще разницы не имеют, третий вернёт значение score, а потом увеличит его на 1, четвертый ++score будет равносилен первым двум.
>>1395116.Net Core. Сам недавно арендовал VPS на лине, запустил сервачок на неткоре для своей убер-ААА игры крестики нолики по сети поднял апач, запустил сайт на асп коре, зависимость есть.
>>1395234При чём здесь продукт, долбоебина? У С# функционал богаче, чем у C++, при этом по производительности он уступает только из-за JIT компиляции, что при необходимости компенсируется при помощи .NET Native/Mono.
>>1378307 (OP)Хотел подвигать кнопочки на юнити и сделать так игрушку, а по слепленному на коленке видео гайду начал писать код без понимания почти всего. В итоге понял, что без базового курса ниасилить.Нужны нормальные онлайн-курсы, чтобы можно было делать методы с кластерами без задней мысли. Насколько я понял, ещё и со сборником заданий для кодинга, чтобы руку как-то набить уже в процессе обучения.Ну и тоненькую книжечку на 20-30 страниц для начального прочтения, обзор всего этого Вашего C# пооностью, чтобы понимать, примерно, каким инструментом я буду пытаться пользоваться. Если возможно.
>>13953741. Ресурсы:- https://metanit.com/sharp/- https://stackoverflow.com/questions/tagged/c%23- https://www.tutorialspoint.com/csharp/- https://professorweb.ru- https://habr.com/ru/hub/csharp/?А книжка-брошюра-введение?
>>1395406Так я сам не против получить ссылку на нормальный гайд. Пока только "довольствуюсь" метанитом, потому что у него хотя бы что-то в обновленном виде есть + в комментах иногда можно найти полезные обсуждения + это не мой первый ЯП, но даже при всём при этом ресурс хуйня и не должен рекомендоваться к ознакомлению. Вот сейчас его дочитаю и буду искать что-то полезнее.
>>1395411Я шарп выучил по статьям в МСДН за пару недель. Но, правда я не школота и за плечами у меня бейсик, паскаль, SQL. Поэтому, тут сложно что-то посоветовать. Ссылки в треде вполне годные, по ним можно выучить шарп. То что ТЫ не можешь выучить - это уже твоя проблема. Может тебе сменить род деятельности? Может ты смог бы сделать карьеру в коровнике, выгребая говно вилами?
>>1395414Можно и мышечную массу набрать, используя только вес своего тела (учить язык по статьям на мсдн), но я предпочитаю ходить в тренажерный зал и добиваться лучшего результата за меньший срок. Поэтому твой высер:>То что ТЫ не можешь выучить - это уже твоя проблема. Не имеет никакого основания. Я не говорил, что "не могу выучить", я сказал, что в шапке ссылки на говноресурсы. P. S. по "я шарп выучил" сразу можно задетектить долбоеба, который написал Hello World и калькулятор, после чего решил, что он "выучил язык".
>>1395424> >информация 3-х летней давностиПросто пиздец какая трабла и как это пиздец важно ньюфане который будет проходить базовые алгоритмы и базовые термины которые не менялись с начальных версий дотнета.> >картавое чмоБольшинство преподов по программированию в интернете которые что-то реально понимают - поголовно шизоидные аутисты которые подают сухо и монотонно информацию. Этот на фоне них - Галустян на сборке соца, а сравнивать его и метанит == быть долбаебом.Но тебе то хули - иди говно наворачивай на вкатываемся в прогромирование за 4 часа и метанит, ведь он картавый.
>>1395458>Просто пиздец какая трабла и как это пиздец важно ньюфане который будет проходить базовые алгоритмы и базовые термины которые не менялись с начальных версий дотнета.Если нужны базовые алгоритмы и термины, то лучше посмотреть CS50, пожалуй это единственное, что можно посмотреть не проблевавшись и усвоив полезную информацию. Ну а о том, что для программирования 3 года это не "пиздец какая трабла", будет говорить только мамкина хикка, которая ничего кроме программы для скачивания аниме-тайтлов за свою жизнь не написала. >Большинство преподов по программированию в интернете которые что-то реально понимают - поголовно шизоидные аутисты которые подают сухо и монотонно информациюОх уж этот манямирок и проекции. Так и видишь в этих тщедушных существах своё отражение, да? Спешу тебя огорчить, но большинство шарящих как раз вполне адекватны и речь у них поставлена, вот только времени не хватает на то чтобы записывать обучающие видео, поэтому и лезут всякие дегенераты, которые прочитали пару книжек и возомнили себя охуенными учителями.
>>1395500> будет говорить только мамкина хикка, которая ничего кроме программы для скачивания аниме-тайтлов за свою жизнь не написала.Хуя даун, новые фичи за эти 3 года можно выучить за пару дней + студия сама подскажет что у тебя старый стиль который опять же никто не отменял и критически ничего не пизданется + есть куча бугуртов в виде -видим вы прислали нам код, а у нас тимлид пишет на старой версиинейм.> Так и видишь в этих тщедушных существах своё отражение, да?Я вижу только твою мозговую деменицию. И имел я ввиду русских преподов по алгоритмам/оптимизации/бигдате/нейронкам.Покормил вообщем.
>>1395568Этим тимлидом был ты? Когда там в твоих рогах и копытах праздники закончатся и ты перестанешь здесь срать проекциями из своего манямирка? > И имел я ввиду русских преподов по алгоритмам/оптимизации/бигдате/нейронкам.Вот это манёвры. Ничего, что изначально речь шла об обучающих материалах в интернете, долбоебина?
>>1395578> Вот это манёврыГоспаде, я за обучающие материалы в интернете писал, можешь зайти нахуй на ютуб - там даже от мылару/яндекса адовые аутисты. Если и есть нормальные (тот же картавый) то это явное исключение из правила.> Этим тимлидом был тыЭтим тимлидом был альберт эйнштейн блять. Твоя галерка это тоже не весь мир, мань.
Аноны, прошу помощи! Пик 1 - мое главное окно. Слева - фрейм менюшки (пик2) Справа - фрейм, в котором должны открываться соответсвенные пункты меню (страницы). Пытаюсь привязать к первой кнопке взаимодействие с правым фреймом (он называется Pagees), но компилятор пишет, что имя "Pagees" не определено в MainWindow. Как мне тогда к этому фрейму обратиться?
>>1395668Ящитаю, к тому всё и шло все эти годы. МС любит навыдумывать хуйни (дотнет), побочным результатом которой неожиданно выскакивает годнота (шарп) и затем дропать хуиту (дотнет) и поддерживать годноту (шарп).
>>1395668И раньше можно было. Просто решили объединить .NET 4.8 и .NET Core 3.0 и сделать из него один .NET 5 c возможностями обеих.
Можно ли на шарпе обрабатывать в 60 ФПС такие большие данные, чтобы выводить что-то уровня игрушки Factorio с 100500 объектами?Нас там, шарперов, в гд какой-то выскочка унижает.
>>1383974>Получается, что мне нужно парсить все посты на наличие реплая? А что, если посты содержат очень много символов и постов под 500?Это же займет кучу времени?Зачем? Тебе нужна табличка ид_поста - ид_ответа и все. Когда приходит новый пост ты регуляркой получаешь все ответы из текста и чекаешь эти айдишники в БД(тут можно одним запросом все проверить). И добавляешь записи в ту табличку.Когда нужно посты доставать то просто джойнишь их ответами и выводишь. Изи сервер-сайд карта ответов. Разумеется при изменении поста(если такое задумывалось) нужно проверять что убрали/добавили и обновлять карту. При удаление там поставишь каскад и всё.Конечно обычно это делают скриптом, но тут клиенто-независимая карта.
>>1396615Они там говорили про юнити и годот. И имелось ввиду что чего-то годного по шаблонам не построить и хочешь, нет придётся пилить свой движок для своих нужд. Причём здесь язык?
>>1396584значит надо делить на 9000 для двачеров>>1396691наверное, что на языке, работающего через виртуалку, подобные штуки сделать врядли удастся. либо ценой оверхеда по памяти
>>1396702>на языке, работающего через виртуалкуОн поддерживает AOT компиляцию, которая используется в геймдеве.
>>1396802Ищи в цивилизованном мире. Удаленка щас распространена. Индусы вон работают везде из своей Индии.
Уважаемая элита программача, нуждаюсь в вашей помощи. Суть в том, что нужно сделать прогу, которая ищет в xml-файлах по xpath, но дело в том, что прогу требуется сделать многопоточной (количество потоков как входной параметр). И я не очень понимаю, что именно в данном случае можно выполнять в отдельном потоке. Вот то, что я накодил https://pastebin.com/ATqxL9r5. Жду элитарного мнения. Спасибо.
Анон пытаюсь реализовать плавное управление в игрухе на кнопочкахИспользую низкоуровневую команду KeyDownно персонаж ведёт себя очень необычно, после нажатия клавиши он поворачивается в нужную сторону замирает на секунду, а потом начинает движение, как мне убрать эту задержку перед движением? KeyPress не работает корректно, персонаж вообще тормозит, а на Preview KeyDown вообще ничего не меняется. private void FormGame_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.A:board.WalkHero(Arrows.left);break; case Keys.D:board.WalkHero(Arrows.right);break; case Keys.W:board.WalkHero(Arrows.up);break; case Keys.S: board.WalkHero(Arrows.down);break; //case Keys.Space: board.PutBomb(); break; }
>>1396933>низкоуровневую команду KeyDownТа не. Це высокоуровнева команда. Низко уровнева це була б GetKeyboardDirectState(int DeviceIndex);
>>1396933у тебя основной поток: считывает события клавиатуры, судя по всему, просчитывает механику движения, отрисовывает UI. че ты хотел-то?
>>1396922>что именно в данном случае можно выполнять в отдельном потокеУ тебя массив xmlFiles перебирается в одном цикле, очевидно, что можно разбить этот один цикл на несколько и выполнять их в отдельных потоках.
>>1396947Спасибо, а можно поподробнее? Вот, например, на вход будет подано значение 3 (потока), что мне делать?
>>1396947>>1396954Или тут использовать Parallel.ForEach, а этот входной параметр присвоить свойству MaxDegreeOfParallelism?
>>1396954Делить длину массива xmlFiles на количество потоков, например, если файлов 12, а потоков 3, то получится 4 файла на поток, в первый ты передаешь перебор с 0 по 3, во второй с 4 по 7, в третий с 8 по последний (в случае если число не делится без остатка в этот поток будет передаваться больше файлов чем в другие).
Анон. Такое дело решил создавать много маленьких анимаций на форме, это будет похоже, на то, как маленький персонаж будет двигаться внутри картинки-цеха завода. Будет куча мелких движущихся предметов, шестерни, поршни, мигающие лампочки, так вот как это реализовать, чтобы не зависало?Использовать покадровую анимацию и списки? Может спрайтовую и отрисовку внутри методов? Или написать отдельный класс, к которому следует обращаться при каждой отрисовке всех картинок?
>>1397064Я просто не знаю, как подступиться. У меня есть полностью работающая игра на пикчербоксах, но ей не хватает анимаций и звуков, так вот прошу мудрого анона кивнуть в ту сторону, в которую воевать.
>>1397122Можешь перекатиться в vs code и взять это https://marketplace.visualstudio.com/items?itemName=RobbOwen.synthwave-vscode Правда там написано, что эта штука еще сырая
Сап двач, у меня вопрос по поводу JSON и HTTP запросов. Формат JSON очень удобен для передачи данных, но в C# для сереализации и десериализации требуется создавать классы, формат которых соответствует конкретному JSON запросу. А запросов таких может быть дохуя. Неужели для каждого запроса создают свой класс?
>>1397144Спасибо. Выглядит прикольно, жаль vs code не может как rider считай программировать за тебя.А там чего-то похожего не нашел.А вообще по мне полезный визуальный эффект, странно что его не внедряют в IDE в дополнение к подчеркиванию например.
Я совсем долбоеб, да? Хотя вроде работает..... А как бы вы решили эту задачу, интересно посмотреть на адекватный вариант.
>>1397227Ты хуйню сделал, а не копию. Объявление new int[massive.length] в твоём случае вообще лишнее, потому что создает массив который ты не используешь, так как ты в цикле постоянно копируешь ссылку на объект, что тоже лишнее, так как можно один раз скопировать её перед циклом. От тебя требовали сделать как на втором пике, но можно еще использовать стандартный метод класса Object - Clone()
>>1397090Потому что листы поддерживают многопоточное чтение. Вариантов решения задачи масса, можно заюзать concurrent-коллекции или lock.Такой долбоеб в нормальную компанию даже на стажировку бы не попал.
>>1397243Долбоебина, при чем здесь lock вообще и синхронизация доступа к ресурсу. Где в моём посте ты вообще о синхронизации что-либо увидел? Какое нахуй "поддерживают многопоточное чтение"? Ты метанита начитался и у тебя каша в голове которой ты при любом удобном и не удобном случае теперь срёшь?
>>1397242А можно ли в твоем 2 примере как-нибудь вывести на экран все данные обоих массивов, не используя циклы типа foreach? есть варианты проще?
>>1397249>Где в моём посте ты вообще о синхронизации что-либо увидел?Ебать ты дебил, синхронизация потоков. Почитай основы про многопоточность, асинхронность, дедлоки, а потом кукарекай на двачах, "программист".
>>1397252Нет. Можно только создать метод расширения у нужного тебе типа, в него написать нужную тебе логику и при необходимости каждый раз вызывать его у соответствующего этому типу объекта. Либо можно создать свой класс который будет хранить массив, перезаписать в нём метод ToString() таким образом чтобы он выводил значения этого массива в консоль, тогда этот метод будет вызываться при вызове Console.WriteLine(названиетвоегокласса).
>>1397253Даун, блять, ты понимаешь, что просто начал нести одному тебе понятный бред когда никто об этом и не говорил? Я сказал, что можно разбить массив на N частей и работать с ними в потоках, как обрабатывать результат работы потоков я не говорил.То что ты даун стало понятно уже после идиотского высера про семафор, который никак не решают проблему параллельного доступа к одним и тем же данным, потому что тебе придётся делать ограничение в 1 поток.
>>1397192И так глаз замыливается , когда пишешь что-то больше, чем просто хеллоуворлд, а тут еще и такое..
>>1397270Мб где-то я не очень очевидно выразился, но мне похуй и расписывать я не буду. Факт в том, что сплитить массив, чтобы отдать его в разные потоки это ламерство. А вообще поход в принципе не правильный, есть тпл, все это делается в пару строк и гораздо быстрее.
Сап, программные инженеры. Есть три сборки(проекта). Две библиотеки и программа. Первую библиотеку назовём father и она подключается в оба других проекта. Вторую библиотеку назовём connected - она содержит некоторые методы в классах для работы с father.Программа будет programнеожиданно и она будет динамически подключаться к connected во время работы использовать методы оттуда через рефлексию.Так вот. Program передаёт в методы connected типы из father.Можно ли в connected сразу в параметрах указать father.%TypeName% name и работать с ним как с типом father.Или можно только object name и дроч типа:name.GetType().GetProperty("Hyi").GetMethod.Invoke(name, null);?
>>1397290>сплитить массивСлишком гениален для того чтобы передавать в разные потоки разные индексы начала и конца перебора одного массива? >чтобы отдать его в разные потоки это ламерствоДа-да, уж кому если не тебе об этом судить, долбоеб.
>>1397327Да это очевидно, лол. Вместо лаконичного решения, читабельного кода и быстродействия с твоим подходом получится полотно дрисни. Ты выбрал самое хуевое решение из возможных. Ты и сам это знаешь, просто у нас срач и ты не истину ищешь, а пытаешься отстоять свои интересы
>>1397327Достаточно в одну строку написать parallel.for, и передать в него настройкой количество потоков (входит в аргумент ParallelOptions). А дальше шарп сам разберётся. Экшеном делаешь то, что поместил бы в тело обычного цикла.Я может не совсем понял, то этот >>1397290 кажется всё усложняет.
Как в ёбаном WPF по-человечески прибиндить коллекцию строк к DataGridComboBoxColumn ?Через код свойство ItemSource колонки работает, а через XAML разметку, как ему должно подобать, нет. Тупо выводит пустой список
>>1397362Это уже зависит от того какие данные будут меняться во время работы потоков, если есть вероятность того, что они будут инкрементировать одни и те же переменные, то одной строкой не обойдешься.
>>1397207Тебе не кажется, что не освоив хотя бы на базовом уровне один язык C# не стоит начинать учить другой язык (какая-то тарабарщина из Python и С#), просто в итоге окажется что я и язык не освою и ничего не сделаю.Просто это похоже на что-то: Проблема->поиск решения проблемы->использовать другой инструмент разработки-> Проблема ->...
>>1397482Так осваивай на базовом уровне C#, почему ты думаешь, что перейдя сразу к практике у тебя что-то получится? Да еще и просишь чтобы получилось всё в оптимизированном виде, хорошо работающим и всё это на чистом C#, лол. Т. е. ты с 0 знанием языка хочешь написать на нём игровой движок, ты это понимаешь?
Написал простой сервер на коре. Запускаю его - все работает, но как запустить его в фоне, что б он не останавливался, когда я закрываю терминал? Делаю все через PuTTY.
>>1397482>Тебе не кажется, что не освоив хотя бы на базовом уровне один язык>не стоит начинать учить другой языкЯ уже лет 20 не мыслю такими категориями.Учить надо алгоритмы и парадигмы. Затем, когда тебе дают новый язык, ты задаёшься совершенно другими вопросами: "Как на этом языке загрузить файл? Как на этом языке создать класс? Как на этом языке сравнить массивы?" и т.п.А язык? Хули его учить-то? for case while yield скобачки - вот и весь язык.Поэтому, предлагая там выше тот же годот (или юнити, не суть), я не предлагаю тебе учить другой язык. Я предлагаю тебе уже организованную предметно-ориентированную среду, в которой тебе не придётся лепить велосипеды, которые изобретены 30-40 лет назад. Но нет, гордый ньюфаг будет лепить rts'ку на winforms, ну а как же, он же формошлёпство в совершенстве знает! Он на полном серьёзе считает, что на winforms сделает быстрее.
Что посоветуете выбрать F# или C#? В основном нужно создавать службы Windows, но иногда и Gui потребуется.
>>1397659Быдлокодить можно научиться за пару недель на любом языке, а для того чтобы писать хороший код, изучить все тонкости и аспекты языка и фреймворка нужны годы.
>>1397684Быдлокодить реально научиться за 1-2 недели на любом языке, если хотя бы какая-то база есть уже.Со школьным знанием паскаля за месяц вкатился в VBA. Долго на нём сидел. Со временем всё более понимал, что язык мерзок. Однажды созрел и за 2-3 недели въебал метанита по C#, после чего сносно умел всё, что было нужно. Хотя кривизна кода конечно присутствовала.Далее за 2 недели вкатился в Си.Далее за неделю вкатился в кресты.Далее за неделю вкатился в питон.Также за неделю вкатился в пхп.
>>1397790Ну конечно, нормальный, ничего особенного здесь же все за месяц и неделю вкатываются на 4 языка.
>>1397998В том, что придется писать только на элементах функциональщины. ООП нет, состояния нет, даже переменных нет.Ну и ты понимаешь, что find(x => x == y) это нихуя не ФП.
>>1398008Если б мне было лет 16 и я рвался кому-то что-то доказывать на двачах, я бы несомненно рванул изучать хаскель и показал бы тебе, что его вполне реально осилить за неделю, а может даже и раньше.
>>1398012А самому не интересно попробовать что это такое? Ты и сисярп учил чтобы кому-то что-то доказать?
>>1398014>А самому не интересно попробовать что это такое?Конкретная задача нужна, которую мне понадобилось бы решить.Сисярп учил именно так. Понадобился -> выучил.
>>1398049Или ты быдло, или я аутист.Учил сисярп просто так, училучу хацкель просто так.Пробовал питон, но динамическая типизация порвала мне анус - очущение, что создатели ЯП решили усложнить разработчикам жизнь, перекинув проверку типов и документацию на программистов.
Сап, программеры. Пилю для диплома десктопный клиент-серверный чатик с шифрованием на сокетах и столкнулся с такой проблемой: я не знаю как сделать идентификацию пользователя, т.е. реализовать отправку сообщения конкретному юзеру, а не всем юзерам подключенным к серверу. Подскажите в какую сторону копать, или мб где надыбать исходники подобного?
>>1398085ну здрасьте, у тебя ж сокеты. т.е. ты вручную отправляешь сообщения каждому из подключенных клиентов
>>1398204Да еще ебал бы я как эти сокеты работают. Гугол перелопатил весь, все ограничивается простейшими консольными чятиками, никаких интересных проектов, которые можно было бы разобрать по кускам и понять принцип работы этой херни, ууу сссука. Самое обидное, что это не самая сложная часть проекта, основное я уже сделал, а вот тут завис блять
>>1398221ты делаешь чятек, но недоволен тем, что люди предлагают для примеров чятеки?вот тебе вторая ссылка в гугеле про сокеты: http://rsdn.org/article/unix/sockets.xml . как по мне, достаточно хардкорная, хотя я не вчитывался
>>1398259Кто его хейтит? Самый охуенный ресурс, все структуриповано, подробно рассписано. Как будто золотая середина между документацией и какими-то курсами по языку, где тебе 5 часов разжевывают что такое переменные и дают задания для практики.
>>1398259Потому что у него там где нужно подробней - всё сжато. Там где нужно сжато - всё подробно. Много грамматических ошибок, которые он и не думает исправлять. Построение предложений вообще оставляет желать лучшего, вот один из примеров:>Type myType = Type.GetType("TestConsole.User", false, true);>И третий параметр указывает, надо ли учитывать регистр символов в первом параметре. Значение true означает, что регистр не учитывается.Очевидно, что третий параметр указывает на необходимость игнорирования регистра. Но у метанита это почему-то "учитывать регистр символов" при этом true означает, что учитывать не надо, лол.И в целом у него не гайд для вкатывальщиков, а обычный перевод статей с msdn, т. е. подойдёт его писанина только для тех кто уже знаком с языком и хочет освежить знания, своего рода справочник, при этом если ты хорошо знаешь английский, то лучше обратиться к msdn, потому что перевод у него оставляет желать лучшего.
>>1398274МДСН нельзя читать последовательно. Каждая статья сама по себе. Это не учебное пособие, в отличие от метанита.Метанит можно наебнуть особо не задумываясь и не обращаясь к другим ресурсам. И весьма глубоко вкатиться.
>>1398278>Метанит можно наебнуть особо не задумываясь и не обращаясь к другим ресурсам. И весьма глубоко вкатиться.Только если у тебя за плечами стоит подобный язык программирования, который ты изучал не по гайду от метанита. При этом как раз "глубоко вкатиться" не про метанита, потому что у него всё слишком сжато, не затрагивается внутренняя часть стандартных методов и принципы их работы. Если ты не собираешься делать что-то серьезно, если изучаешь язык для каких-то своих задач, при этом тебе не важно развитие как программиста, то да, метанит подойдет, иначе его можно использовать только как краткий справочник. >МДСН нельзя читать последовательно. Каждая статья сама по себе.Ты хоть раз туда заходил? Вот тебе ссылка:https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskТам расписан не только сам класс, но и добавлены различные заметки, по ссылкам из статьи ты узнаешь всё о TPL и о том что хоть как-то с ним связано, достаточно просто идти по цепочке ссылок. Чем твой метанит лучше? > Это не учебное пособие, в отличие от метанита.Если с метанитом сравнивать, то как раз мсдн это учебное пособие, а метанит это справочник или краткое содержание.
>>1398292>достаточно просто идти по цепочке ссылокАга, примерно как в вики. Это не последовательное изложения. И когда в браузере открывается под сотню непрочитанных вкладок, ты понимаешь, что-то идёт не так. Кроме того, МДСН ОГРОМЕН. Тебе всё это просто не нужно, чтобы вкатиться. Пока не покодишь и не возникнут вопросы, столько инфы не нужно.Метанит ведёт тебя за руку по основным темам. Ты пробуешь кодить, возникают вопросы, дальше уже сам гуглишь, в том числе и МДСН врубаешь.
>>1398298Метаинит тебя не за руку водит, а за щеку вводит. Прочитав его в голове останется сумбур из нераскрытых тем и чёрных ящиков. Он говорит жать красную кнопку чтобы загорелась синяя лампочка, но никаких связей между ними не даёт. Если вкатиться это как макака по одному шаблону клепать говно - да, сайт полезный, прямо мануал «как зделоть программу за 5 шагов»
>>1398306Метанит - это как розовенькие гантельки для дрища, впервые пришедшего в зал и желающего перегнать жир в мышцы бицепса к лету.Не стоит сразу класть его под штангу, с которой работает стероидный мутант.
>>1398312Красиво завернул про мутанта, ты прям мастер аналогий. Тебя в университете преподы не любили?
Есть гайды по красивому и читабельному писанию кода? Очень волнует эта проблема, в частности как называть переменные для конструктора
>>1398226Это даже не совсем чатик, более похоже на мессенджер, аля телега. Алсо уже разобрался и вроде че то работает, только почему то при дисконнекте юзера рандомно в смысле иногда ломается поток на сервере и уводит сервак в бесконечный цикл. Но тут наверное мои про*бы, разберусь
Сделал надстройку VSTO для Excel с одной кнопкой.Она становится видна на компе, на котором компилируется VS проект.А как передать её другому человеку, чтобы он её смог установить? Как создать установщик?
Есть одна форма. Как реализовать кнопку, чтобы данные сохранялись в SQL бд. Все формы перетащил через источник данных. Работает сохранение в bindingnavigator, который создался автоматически, но он сохраняет только одну таблицу, может быть можно подключить к ней остальные?
Аноны, сделал примитивную библиотеку для работы с xml-файлами. Также сделал консольное приложение, которое использует эту библиотеку. В этом консольном приложении исключения хочу логировать. Если я в библиотеке, например, прямо пишу, что если путь к файлу пустой и throw ArgumentException("blablabla"), то консольное приложение в try catch нормально ловит исключение, логирует, продолжает работать и т.д.Я хочу также логировать, например, XmlExceptions. Но в консольном приложении try catch их не ловит, а сразу выкидывает ошибку. Как мне лучше поступить в этом случае?
>>1398920>в консольном приложении try catch их не ловитну видимо ты указал перехват конкретного исключения? ибо схуяли
>>1398930Если я пытаюсь обработать кривой файл, то у меня такая ситуация как на пике 2 вместо того, чтоб написать Something went wrong в консоли. Не очень понимаю, что именно нужно сделать в библиотеке.
>>1398936Значит тот кусок выполняется вне трай/кэтч. Показывай больше кода и желательно не скринами. Заливай на пастебин, если в ваш колхоз еще гит не завезли.
>>1398936>>1398920Поменяй тип билда с Debug на Release. И вообще try catch лучше использовать во время дебага, после чего заменять try catch на условия.
>>1398981>>1398974>>1398973>>1398930Всем спасибо, минимально разобрался, дело в том, что использовался Parallel.ForEach, а там чуть-чуть по-другому эксепшены ловятся.
Ребят, такая проблема. Asp.Net В приложении пока что сыром один гет-запрос, который принимает в себя объект одного класса. Получается я в урле пока что прописываю значение каждого поля этого объекта. Но класс будет разрастаться, и это будет уже сложно. Однако передавать нужно именно объект. Вопрос - как это можно делать по другому. Может как-то сворачивать и разворачивать там?
>>1398981> после чего заменять try catch на условия.Ловите наркомана! Ты с какого языка перелез в шарп?
>>1399015При чем здесь язык, долбоебина? Если у тебя существует возможность того, что путь к файлу будет пустым, то нужно проверять этот путь на пустоту, а не ловить подобное через try catch и уж тем более не генерировать самому исключения, потому что это сильно бьет по производительности.
>>1399005юзай POST и передавай объект в body вместо урла. но это ебанатизм, равно как и то, что ты делаешь в данный момент
>>1399028выкачивать производительность из try/catch - это уже удел околохайлоада. в насколько высокоуровневых языках над этом подобным сильно не парятся и исключения являются дефолтной практикой
>>1399029менять post на get нельзя, проект не мой, а рабочий. у них тут в другом проекте была штука, которая позволяла через get объекты слать, но что-то я ее найти не могу, поэтому свою ставлю
>>1399030В том и дело, что даже в маленьких проектах это сказывается на производительности, не говоря уже о читаемости кода. try catch используется только в тех местах где вероятность непредвиденной ошибки высока, например в обработке ответов от ресурса за который ты не отвечаешь.
>>1399042эм, я не спорю насчет производительности. я говорю о том, что зачастую эта потеря оказывается приемлемой (к сожалению)
>>1399028Зачем в дебаге делать трай/кэтч, а потом менять на ифы? Почему сразу нельзя делать нормально?
>>1399120Потому что ты не всегда знаешь какой экспешн может вылезти и поэтому отлавливаешь любой в дебаге с помощью try catch, а потом уже создаешь соответствующее условия. Конечно, если ты знаешь все возможные ситуации, то можно сразу делать без try catch.
>>1399168>C# теперь кроссплатформ?Да, если ты не знал.ASP.NET Core официально работает кроме винды также на линухе и макоси.
>>13991731. Божественный C#, а не богомерзкий PHP2. Что неожиданно от мелкософта - скорость и произволительность. Даёт пыху на клыка так, что тот не разгибается. И вообще, ASP.NET Core нонче в топах на первых строчках торчит по производительности3. Очень продуманный и удобный MVC-фреймворк4. Есть божественный LINQ для запросов к базе данных не покидая любимого языка (в самом C# есть подъязык запросов, чем-то похожий на SQL, либа EF Core или любая другая с поддержкой LINQ умеет эти LINQ-запросы транслировать в SQL)5. По-человечески реализованная асинхронность вида async/await6. Божественный менеджер пакетов NUGET, никогда ещё не было тянуть и обновлять зависимости проекта так божественно
>>1399180Ну мне за эти деньги ещё и SQL знать наотлично полагается. То есть писать сложнейшие запросы на несколько страниц как дышать надо. И понимать в оптимизон запросов SQL, разбирать на лету планы запросов.
>>1399188Целесообразно, если ты его знаешь.Современный .NET рулит в производительность, так что ставить его на говносерваки невозбранно весьма. На самом деле самая большая просадка по производительности - это база данных (особенно когда запросы идут к таблицам на десятки миллионов строк), но с этим ничего не поделаешь. А у самого .NET сейчас footprint вменяемый.
>>1399176>Даёт пыху на клыка так, что тот не разгибаетсяЧто за манямирок? Даже майки не скрывают, что пыха быстрее неё, вот пруфы:https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=fortuneПыха на две позиции выше
>>1399191Готовые решения для чего?А так, ASP.NET Core - это мощный и удобный фреймворк, если ты имеешь в виду наличие фреймворка, в котором есть и генерация страниц по шаблонам, и доступ к БД с мапингом на классы, и всё такое прочее - то это ASP.NET Core и есть.
>>1399192Вот бы сейчас сравнивать среды, в которых используются разные базы данных. В одной - PostgreSQL, в другой - MySQL! Вот это неожиданность, что PostgreSQL подсасывает у мускуля на простых задачах (но уделывает на сложных).Алсо, открываем вкладку latency>asp.net core - 0.7 ms>swoole - 3.4 msВот это поворот!
>>1399205Ну можешь тут почитать тогдаhttps://docs.microsoft.com/en-us/aspnet/core/getting-started/?view=aspnetcore-2.2&tabs=windows
>>1399200Так ты по другим вкладкам побегай. Ты ведь писал, что пыха сосёт, а она не сосёт, а обгоняет в чём-то, в чём-то проигрывает, но в целом лучше.
Антоны, у меня происходит дисконнект, когда я выбираю файл с компа через input type file.Приложение тупо выключается и все, никаких признаков жизни, в чем может быть дело?
>>1399353Нет же, это стало происходить при переносе на другой комп и на Студии 19-го года, на прошлом компе такого не было
>>1399355А тут я тупо выбираю файл и мне выдает, что Программа "[9252] iisexpress.exe" завершилась с кодом -1 (0xffffffff).
>>1399355Значит перенёс так. Ты понимаешь, что ты сейчас похож на долбоеба, который говорит мастеру по ремонту компьютеров - у меня комп не включается, скажите что мне нужно починить и сколько это будет стоить? После чего уходит, потому что платить 200 рублей за диагностику, по его мнению, будет только лох, а хороший мастер ответит на его вопрос без диагностики.
>>1399366Может быть эта проблема является распространенной или хотя бы встречалась кому-нибудь из треда.Я же вообще не знаю, почему это может происходить, я тупо скопировал проект, установил в студию версию фреймворка 4.7.1, запускаю, выбираю файл и он нахуй крашится.
>>1399450на прошлом проекте, помню, васяны в продакшн закоммитили изменение списка в foreach. так главное, это всей ихней тимой ревьювили и заапрувилисука, понабирают метанитщиков по объявлению
>>1399450Ох лол, я про изменение списка через foreach вообще сам допер, у них какие-то проблемы с головой.
Антоны, я даже проверил по примеру с метанита.https://metanit.com/sharp/articles/26.phpУ меня все равно вырубается, в чем может быть проблема?
Сап, ананасы. Знаете как эту хуйню решить? Помогите пожалуйста.Имеется комплексное число z в тригонометрической форме в виде модуля r и аргумента f (в радианах):z=r(cos(f)+isin(f))Перегрузить операцию / для выполнения деления двух комплексных чисел в тригонометрической форме:[r][/1](cos([f][/1])+isin([f][/1])):[r][/2](cos([f][/2])+isin([f][/2]))=r1/r2(cos([f][/1]-[f][/2])+isin([f][/1]-[f][/2]))
>>1399662foreach выполняется по неизменной коллекции. в случае какого шороха, выбрасывается IOE "Collection has been changed" или как-то так
Данные находятся в листбоксах, кликая по ним они будут переносится на главный листбокс. Как сделоть шоб я мог передвигать их там по своему усмотрению?
>>1399661Не, я как раз понял, что это хуйня какая-то и все стал через for делать, если нужно изменить коллекцию.
>>1399689О, ловите долбоеба. Вот потом такие допиральщики хуячат свой говнокод, хвалят мутанита и говорят, что освоили 10 языков программирования за неделю. Если перебирать через for изменяемую коллекцию, то у тебя индексы по пизде пойдут и там где был индекс 3, после удаления какого-либо элемента будет индекс 2. При этом ошибки никакой не будет и ты прибежишь в тред с удивлённым видом, спрашивать что за хуйня, почему комп хуево работает.
>>1399692Ну и че ты меня засрал, теперь чувствую себя довном>Если перебирать через for изменяемую коллекцию, то у тебя индексы по пизде пойдут и там где был индекс 3, после удаления какого-либо элемента будет индекс 2.Да, я таки с примером ошибся, просто когда-то пытался изменять коллекцию в цикле foreach и получив ошибку, перешел на for и у меня заработало, только я не помню, что там конкретно было.В таких случаях надо через while или do while, конечно.
>>1393192Вполне норм, просто A<int> и A<string> - разные типы каждый со своим набором членов/методов.
Шалом, друзья. Подскажите пожалуйста, как при нажатии кнопки убрать BackgroundImage у формы.Чтобы я нажал на кнопку - фоновая картинка исчезла, нажал снова - появилась.
>>1399849Перебирать можно любым циклом, хоть рекурсией. А чтобы удалять или добавлять элементы, существует несколько способов, один из них показан выше - создание копии коллекции, перебор этой копии и модификация оригинала. Можно заменять значения которые ты хочешь удалять на определенное значение, после чего вырезать их из коллекции при помощи методов LINQ, либо в отдельном цикле создавая новый массив без этих значений.
>>1399950для особо одаренных уже несколько лет существует .NET Coreа так, как правило, лицуха для WS на несколько виртуалок обходится дешевле, чем пол-команды говнокодеров. и то, вопрос, что из этого эффективнее работает
>>1378307 (OP)Анон, как лучше отдать по URL и загрузить с URL'а JSON, если он большой?Допустим, есть база в гигабайт,и таблицы из неё и записи - в JSON конвертируются,и надо эту базу синхронизировать на сервере,подключаясь к другому серверу, в качестве клиента.И, допустим, по GET-запросу на какой-нибудь 127.0.0.1:7346/api/prange/0-100можно выгрузить 100 записей из базы.Так вот, в качестве ответа - выдается JSON, в виде HTML,но размер HTML-страницы ограничен, как и размер ответа на POST-запрос.Что если этого JSON'a - гигабайты будут? Как его лучше обработать?Есть функции какие-нибудь в C#?
>>1399992Эххэххэх! :3 Нет, всё тот же. Лого не менял. Хочу p2p со списком нод и сливом базы с тора заебенить.
Анончики, поделитесь лайфхаком. Делаю WPF, заполняю в нем ебаный DataGrip. Чтобы проверить корректность заполненной таблицы, приложение каждый раз запускать приходится. Можно как-то предпросмотр включить?
>>1400024>Можно как-то предпросмотр включить? Врядли. Я хоть и нуб в шарпе, но не нуб вообще и прекрасно помню, как появились первые виртуалгриды и как все от них охуели и стали невозбранно пихать во все языки и фреймворки. А виртуальный виджет в первую очередь уникален тем, что в нём данные отделены от логики, а значит, пока ты не начнёшь в рантайме подключать к нему данные, ты ничего не увидишь.
Сап,шарпачьЕсть программа на c#,накрытая KoiVM+ConfuserКупить не представляется возможным тк автор прикрыл проект.Чем крякать?де4дот не осиливает виртуализацию никак,в днспай пробовал покопаться,но там ничего отображается+я сам не очень то шарю в реверсесэмл могу кинуть в телеге в боте,если нужно @helpmedvach_botкто поможет вскрыть - кину беткоенов
>>1400139>Чем крякать?IDA Pro 7.0Вот гайд по РЕ: https://beginners.re/f572d396fae9206628714fb2ce00f72e94f2258f/
>>1400145Так,за полезную книжку спасибо конечно,почитаю как будет времяА можно более короткий совет как,что и куда?побыстрее просто нужно(
>>1400150Охуеть у тебя вопросы. Как что и куда зависит от программы и типа защиты. Устанавливаешь IDA pro покупая на торрентах, запускаешь, если интуитивно не понял что к чему, то без чтения книги не обойтись.
>>1400152защита = https://github.com/Loksie/KoiVM-Virtualization + https://github.com/yck1509/ConfuserExно ладно,все равно большое спасибо за книгу,буду читать
>>1400157Мда, ппц ты тупенький. Ты скинул линки на обфускаторы, под защитой подразумевается отказ работы программы из-за того что отсутствует лицензия или т. п.
>>1400159коивм не только обфускатордля нормальной работы нужной мне программы нужно заменить некоторые переменные на свои значения,что невыходит сделать из-за коида,в РЕ ноль,извиняюсь
>>1400024xmlns:d="http://schemas.microsoft.com/expression/blend/2008"d:DataContext="{d:DesignInstance MyGovnoModel}"
Привет, ананасы.Я тут мимопроходил и решил спросить, есть ли тут умельцы, которые могут мне зафигачить надстройку к Excel'ю для анализа данных?1) Она должна уметь считать всякие описательные статистики, вероятности ошибки 1 рода по критериям Стьюдента, Манна-Уитни, Вилкоксона и пр., делать ROC-анализ и регрессионные модели, а также кучу другой статистической фигни.2) Под эти расчёты генерировать красивые таблицы с описанием переменных3) Из этих таблиц генерировать отчёт в word с текстовым описанием таблиц, автоматической нумерацией и прочими плюшкамиВ идеале сам стат анализ не писать ручками, а делать расчёт средствами R или Python. Где мне можно поискать программиста под мои задачи, если тут никому такое не интересно?Алсо, сколько примерно может стоить такая надстройка на 20-25 сложных функций?
Антоны, что за хуйня с маршрутизацией через атрибуты в MVC 5?У меня есть метод действия контроллера, есть еще один метод в контроллере, который помечен, что он не является методом действия.Но, сцука, при применении маршрутизации по атрибутам он начинает мошнить, что я передаю параметр по ссылке
Вопрос о сваггерах. У меня есть одно веб-приложение со своими контроллерами, у него есть оболочка, на которую стучится клиент, но она использует точно такие же наименования методов контроллеров, это сделано для того, чтобы клиент сперва стучался на оболочку, а она в свою очередь, после обработки - посылала запрос на основное. Так вот как сделать так. чтобы сваггер не ругался на неуникальные наименования методов?
Хочу написать бота для рпгшки, но при этом чтобы не дергать функции игры, а была полная эмуляция игрока т.е тупо движения мышки и клава мои возможности воздействовать на игру.Уже написал обертку для получения многих данных из игры теперь встал вопрос об архитектуре бота и тут слегка встрял.Пишу скорее в целях самообучения чем с целью юзать бота и поэтому хочу сделать хорошую архитектуру, но опыта в этом не особо. Может подскажите примеры с хорошими реализациями или куда копать чтобы потом можно было проще расширять.
Прочитал мутанита, судя по его главе про многопоточность, Task это своего рода обертка над Thread, типа расширили функционал и сделали удобнее. Но перейдя к практике, пришел к выводу, что Task это запуск нескольких асинхронных задач в одном потоке, а Thread это запуск задач в отдельных потоках, т. е. по сути совсем разные вещи? Практиковался при помощи отправки запросов на httpbin, по сравнению с Thread у Task нулевая многопоточность. Кто-нибудь, поясните, пожалуйста.
>>1401608А, всё ясно. Чтобы производительность была одинаковой, надо запускать таски с опцией LongRunning. Ебаный мутанит конечно про это ничего не сказал. И название опции себя не описывает. У меня задачи не LongRunning, но мне нужно использовать эту опцию, иначе запросы будут отправляться в 2 раза медленнее.
>>1399984Короче, разрулил это дело отдачей в JSON - N-ного числа записей,по диапазонам, из рассчёта 2,5 MB на HTML-страницу.Как-то вот так: https://stackoverflow.com/questions/3273205/read-text-from-response/14784904#14784904
>>1401613LongRunning форсирует создание нового потока, в то время как все остальное использует ThreadPoolи это> Task это запуск нескольких асинхронных задач в одном потокене самое удачное описание. хотя можно натянуть на правду
>>1401635Он хоть как использует ThreadPool, просто без LongRunning он посчитает не нужным использовать отдельный поток для каждой задачи, будет примерно 2-3 параллельных потока. Task это тоже самое, что и Thread, просто с возможностью тонкой настройки и дополнительными опциями, если они не нужны и тебе хватает функционала Thread, а также для тебя важна производительность, то лучше использовать его. Хотя и в случае с Task можно сделать упор на производительность, написав нужную логику для TaskScheduler. Task это как C# с его встроенным сборщиком мусора, а Thread это как С++ без сборщика мусора. Вот как я в итоге всё понял.
>>1401908А задач 50+, поэтому "посчитает не нужным использовать отдельный поток для каждой задачи". Хули ты тупой то такой?
>>1401917ты какой-то дурачек. только два фактора, а именно:- вызов через TaskFactory.Run(() => {})- использование LongRunningфорсирует какой-то пердолинг с потоками. все остальное не гарантирует от слова "не" исполнение кода в другом потоке. даже если у тебя 50+ задач
>>1402007Долбоеб, какие два фактора, какой пердолинг, какие, блять, гарантии. Это программирование, а не рулетка, в C# есть 2 класса для использования потоков - Thread и Task. Я написал, что используя Task без опции LongRunning он будет оптимизировать работу таким образом, что выполнение задач (в конкретном случае, в остальных не знаю) будет происходить медленнее чем при использовании класса Thread, потому что TaskScheduler в Task будет ограничивать количество параллельных потоков, в отличии от Thread который запускает их до тех пор пока на это есть ресурсы. Ты же несёшь какой то, одному тебе понятный, бред.
>>1402073Сейчас даже сложно представить работу без веба, не говоря уже о её нахождении. Шарп как раз и создавался с уклоном для удобной работой с вебом, если не хочешь веб, то твой выбор С/C++, но это если ты не был бы тупым. Для тупых существует 1С - веба нет, уровень вкатывания низкий, работы полно.
>>1402134Коммерческий веб - это продажи и реклама. Веб - это обслуга. Веб не производит, веб продаёт. Это низшее звено пищевой цепи. Веб - это просто вершина айсберга. Веб-программисты, бухгалтера, менеджеры по продажам - тоже нужны. Но не нужно забывать, кто тут соль земли, гегемон, а кто надстройка, сервис. Веб-программист - это проходимец, случайный человек в профессии. Идти в веб для войтивайтишника - это нормально. Но для грамотного специалиста, который в первую очередь математик, физик и инженер, а знаток модных фреймворков, идти в веб - это зашквар и клеймо в трудовой, после чего остальные дороги перед тобой закроются. Вебошлёп - как опущенный на зоне. Стать им легко, но с нормальными программистами за один стол уже не сядешь.
>>1402017>я же несу всем понятный бред: он будет оптимизировать работу таким образом, что выполнение задач будет происходить медленнее>ты несёшь какой то, одному тебе понятный, бред
>>1402017>в C# есть 2 класса для использования потоковTask это не класс для использования потоков. Таск тебе позволяет выполнять задачу асинхронно или синхронно, а потоки разруливает clr. >в конкретном случае, в остальных не знаюСоздание потока оче дорогая операция, поэтому и сделали пул. Если таска маленькая, то быстрее взять из пула, если здоровая, то указывай longrunning и возможно, тебе дадут отдельный поток.>>1402017>TaskScheduler в Task будет ограничивать количество параллельных потоков,Больше всех количество потоков ограничивает cpu, создавая кучу потоков ты проебешься на переключении контекста.
>>1402339Очередной падаван метанита? Зачем вы вообще лезете что-то объяснять? Ты же сам ничего не понимаешь, даже не различаешь асинхронность и многопоточность, но высрать мнение всегда горазд. Прочитай нормальную литературу хотя бы.
>>1402353>Task это не класс для использования потоков.Task это класс для использования потоков. Это обычная библиотека для работы с потоками, более высокоуровневая чем Thread.
>>1402358Да уж, это у тебя каша в голове про асинхронность/многопоточность. Таск (как нетрудно догадаться из названия) это задача, обычно асинхронная. То что таска внутри использует потоки это деталь реализации.>для использования потоковну поуправляй потоками через таску, все посмеемся>>1402358> Это обычная библиотекаЭто не библиотека. Есть TPL - это про многопоточность, сами таски - это асинхронность. И если ты считаешь, что таски это инструмент для работы с многопоточностью, то что тогда в твоем понимании асинхронность?
>>1402389А ты думаешь тут сидит кто-то кроме студентов-школьников, вкатывальщиков и перезрелых джунов?
>The Task class represents a single operation that does not return a value and that usually executes asynchronously. Task objects are one of the central components of the task-based asynchronous pattern first introduced in the .NET Framework 4. Because the work performed by a Task object typically executes asynchronously on a thread pool thread rather than synchronously on the main application thread, you can use the Status property, as well as the IsCanceled, IsCompleted, and IsFaulted properties, to determine the state of a task. Most commonly, a lambda expression is used to specify the work that the task is to perform.>For operations that return values, you use the Task<TResult> class. Какая блядь работа с потоками?
Смотрю ИТТ метанит проклинают. Сходил туда, полистал курс шарпа. А в чём собственно претензия? Учебник как учебник. Инфа подаётся последовательно. С примерами.
>>1402373>Да уж, это у тебя каша в голове про асинхронность/многопоточность. Таск (как нетрудно догадаться из названия) это задача, обычно асинхронная. То что таска внутри использует потоки это деталь реализации.Вот это манёвры. Ты же сам себе противоречишь, дурачок. Таск использует потоки, следовательно сам класс используется для использования потоков, о чём я и говорил. >ну поуправляй потоками через таску, все посмеемсяЗадаю задачу для потока, могу её отменить, какое тебе еще управление нужно? > Есть TPL - это про многопоточностьТаск это часть TPL, хуесосина. >сами таски - это асинхронностьАсинхронность с использованием потоков.>то что тогда в твоем понимании асинхронность?Асинхронность это когда ты работаешь в рамках одного потока, когда выполнение когда асинхронного метода чередуется с выполнением кода в этом потоке. >>1402439На пикриле.
>>1402461Был бы хорошим предисловием, если бы не, большей частью, устаревшая информация, например: Thread myThread = new Thread(new ParameterizedThreadStart(Count)); myThread.Start(number); Во-первых, можно писать без new ParameterizedThreadStart, во-вторых, можно передавать лямбда-выражения вместе с функцией, добавляя в неё нужные параметры, тем самым избавившись от необходимости приведения к объекту, как если бы мы передавали параметр в myThread.Start.Также куча грамматических и стилистических (пример выше по треду) ошибок. Плюс информация дана в сжатом виде, многие моменты не объясняются, он просто говорит - пишит вот это, получишь вот это. Не вдаваясь в подробности, которые важны при разработке приложения сложнее Hello World. Его можно рекомендовать не вкатывальщикам, которые надеются работу найти, а любителям, которым нужно написать небольшую программу на которой их знакомство с программированием закончится.
>>1402490>их знакомство с программированием закончитсяЗакончится их знакомство с метанитом и продолжится знакомство с более сложными ресурсами. В учебнике для начинающих не нужны лямбда-функции. Это же для начинающих!
>>1402530Они там есть, но не в этом месте. >продолжится знакомство с более сложными ресурсамЭто хорошо, но не в этом случае, потому что в этом случае им придётся еще и забывать то чему учил метанит, перестраивать всё в своей голове на новый лад и тушить жопу от осознания того, что мутанит их наебал.
>>1402532Ты это на себе испытал?>перестраивать всё в своей голове на новый ладРофлишь? Это не на функциональщину после трёх лет c#/java переходить. Всякие микромоменты в написании кода типо того, что ты написал про объявления thread на автомате правильно перезапоминаются, просто от практики, а для чего-то сложенее hello world зачастую вообще нет идеального решения и каждый сам доходит до того, что ему кажется лучше.
>>1402540Двачую. Вообще, начинал с метанита, кодил, задавал вопросы на форумах, гуглил вопросы, курил мдсн параллельно. Отлично всё зашло.Но метанит был тут краеугольным камнем, потому что он хотя бы вел меня последовательно от простого к сложному.
>>1402490Имхо, начинать надо как раз, пардон за тавтологию, с начала, потом уже обмазываться сахаром. А то потом будут всякие вопросы из-за непонимания во что оно там превращается компилятором на самом деле а-лядвач, чому такое ниработаит!!!?!?!label1.Invoke(()=>label1.Text = "anus");
>>1402540Не, я когда его начал читать, то понял что это хуйня не для новичков, новичок там просто ничего не поймёт. Поэтому изучил JS по хорошему учебнику Кантора. К мутаниту вернулся только после освоения JS, и только убедился, что это полное дерьмо, а не учебник, поэтому быстро пробежался по нему, а С# учить начал по C# 7.0in a Nutshell от O’Reilly >>1402553Это не отменяет того факта, что нужно уточнять как это делают на практике. И в том то и дело, что у него как раз подача материала без малейшего объяснения о том "во что оно там превращается компилятором".
>>1402910Ну это ж вообще не деньги. Лучше уж (с)крипо-макакой на фриланс идти, денег будет столько же, а времени свободного вдвое больше.
>>1403058Так у нас долбоебов 99%, классик хорошо написал:К чему стадам дары свободы?Их должно резать или стричь.Наследство их из рода в родыЯрмо с гремушками да бич. Вся суть русского человека. Готов сосать хуй за 15к уродов с синдромом вахтера (а чем хуже шаражка, тем чсвшней в ней начальство и те кто рядом с ними), когда под носом ворох куча вакансий с хорошей зарплатой, всё что требуется это переместить жопу с насиженного места. Про фриланс ты уже сказал, всё так. Всегда охуеваю, когда слышу, что кто-то со знанием миддла получает 40-70к, когда я со своими знаниями, которые даже на джуна не тянут, зарабатываю по 80-120.
>>1403095Бля, вы спросили про мухосранск, я вам про мухосранск и ответил. В Томске с зарплатами дела обстоят вот так.Где ты недоджуном получаешь 80-120? Что за компания? Кинь вакансию
>>1403267Томск - это не пуп земли. Нет никакого томского рынка труда программистов. Для программистов он международный. Ну ок, английский ты не знаешь. Английский выучить проще, чем Ц++. Но раз ты этого не сделал, ты - второй сорт, и рынок твой - СНГ. Ок, но ты даже не желаешь знать, а как там в соседнем городе, как в ДС с вакансиями для тебя, какие там зп. Тебе это не надо, ты - третий сорт, ты готов получать гроши. Тебе будут платить ровно столько, чтобы ты с голоду не помер, но чтобы не было ни какой возможности скопить на переезд. Даже чтобы получить зарплату ты каждый месяц будешь ходить к начальнику на приём в кабинет, записываясь заранее через секретаршу, и будешь челом бить, мол срок зарплаты уже давно подошел, а мне ещё аванс за прошлый месяц не дали. Будешь умаливать, объяснять, на что это тебе так деньги понадобились, что ты даже потерпеть не можешь, как русский человек. И тогда может быть твой хозяин позвонит в бухгалтерию и даст команду перечислить Сычеву его копейки. Но тебя всё устраивает. Не жили бохато, нехуй начинать.Замкадск - не пуп земли. Нихуя там нет и не будет. Нихуя там тебя не ждёт, кроме храмов, заборов, исправительных колоний, наглых чиновников и мусоров, агрессивного пьяного вымирающего и к чему не стремящегося в жизни быдла, а также бабок, которые уже сейчас составляют 99% населения сёл, а лет через 10-20 такая же ситуация будет и в ныне ещё относительно крупных 100к+ Засрансках.Есть единицы, которые не могут переехать по очень специфическим причинам, типа болезней родственников. Но перед большинством все дороги открыты. Это блять какое-то добровольное крепостничество.
>>1403277Двачую этого. Начал с себя зимой и уволился с работки, где платили гроши. На выходное купил средства производства. Буду работать на себя!
>>1403267>Где тыДома, сидя в своём комфортном кресле. Я ФрилансоБог. А писал я это к тому, что мухосранские программисты сами создали себе такие позорные зарплаты, потому что если бы они переезжали в ДС/ДС-2, если бы работали удаленно, то уровень зарплат бы резко возрос. Но у нас народ терпеливый, любит лизать барский сапог и говорить, что барину не легче чем ему, что все терпят и он должен терпеть, что это его судьба, а судьбу не изменить и еще куча оправданий.
>>1403319>если бы они переезжали в ДС/ДС-2, если бы работали удаленно, то уровень зарплат бы резко возросохуеть манямирок
>>1403429Он может и неказисто изъясняется, но в целом верно: работодатель платит ровно столько на сколько соглашается работник и ни копейкой больше. Люди о которых тот анон говорит - работают за гроши. И их не жаль. Но они - штрейкбрехеры, которые не позволят тебе потребовать повышенную зарплату. Потому что как только ты захочешь 40К тебя заменят уасей, который готов лизать сапог за 20к.
>>1403433ну как бы в объективной реальности уровень зарплат и цен в мегаполисах выше, чем в мухосрансках. от того, что четверть людей (уже хуй знает сколько поколений) ездит в москвы на заработки, зарплаты в селах не растута от этого:>тебя заменят уасейи в дс-ах, уверен, достаточно. возможно, IT - не самый удачный пример рыночка
Объясните дебилу что такое и зачем нужны References в проекте.В шаблоне консольного приложения они есть, в пустом проекте их нет - но в пустом я всё равно могу работать с консолью.С вот этим вообще не понятно:https://docs.microsoft.com/en-us/visualstudio/ide/managing-references-in-a-project?view=vs-2017Before you write code against an external component or connected service, your project must first contain a reference to it. A reference is essentially an entry in a project file that contains the information that Visual Studio needs to locate the component or the service.
>>1403623Чтобы подключать другие сборки и использовать их во всём проекте. Если удалить ссылку на сборку System, то твой проект не скомпилируется если ты используешь что-либо из System. Помимо этого, если в System есть класс который ты используешь и этот класс, например, возвращает тип или наследует класс/интерфейс из другой сборки, то без ссылки на эту сборку твой проект тоже не скомпилируется. Что тут непонятного?
>>1403639>Если удалить ссылку на сборку System, то твой проект не скомпилируется если ты используешь что-либо из Systemна самом деле компилятор очень настойчивый и подпихивает тебе System неявно всегда и в любом случае. в .NET Standard, возможно, уже все не так
>>1403649ну хз, может это дело прошлых дней такое быловообще, запуск приложения зависит от типов, которые обьявлены в System. т.е. без него сделать принципиально ничего нельзя, даже если ты там чето себе выебываешься и в коде не используешь инты с булами. поэтому логично не давать человеку возможность заниматься глупостями
>>1403639>Что тут непонятного?Если я создаю пустой проект, то References не заполнены, но использовать ту же консоль я могу.Вот что не понятно.
Из C++ в C# пжпжпжvoid __fastcall TForm1::Button1Click(TObject Sender){ Memo1->Lines->Clear(); int A[4]; int B[5]; int m; String One, Many; for(int i = 5000; i < 10000; i++) { One = IntToStr(i); for(int j = 0; j < 4; j++) A[j] = StrToInt(One[j + 1]); if(A[0] & 1) continue; m = i 2; Many = IntToStr(m); for(int j = 0; j < 5; j++) B[j] = StrToInt(Many[j + 1]); if((B[1] == A[3]) && (B[2] == A[0]) && (B[4] == A[0])) { Memo1->Lines->Add("ОДИН - " + One); Memo1->Lines->Add("МНОГО - " + Many); Memo1->Lines->Add(""); } }}
>>1403667Блять, ты понимаешь, что ты этот пустой проект себе в жопу засунуть можешь и он у тебя не скомпилируется без ссылок? Написать Console.Write() это не значит - использую консоль.
Всем привет, недавно вкатился в шарпы, хотел спросить у олдов вопросы:1. Как вы жили до лямбда-выражений? Анонимными функциями? Или просто тогда иной подход к построению api был?2. Когда нужна была какая многопоточность/асинхронность (типа доступа в БД, файл, интернет, обработка вэб-запросов) ебашили новые thread's? Или просто меньше с потоками заморачивались?3. До LINQ коллекции ручками в foreach обрабатывали, или были какие сторонние библиотеки?4. Как вам вообще развитие дотнета и C#? Есть ощущение, что что в них накапливается устаревший хлам? Или изначально хорошо спроектировано было? Есть какие хотелки? Зачем?
>>14039361. анонимные функции - это и есть то, что ты называешь "лямбда-выражениями". и обходились ровно так же, как и компилятор теперь генерит код с анонимными функциями2. ThreadPool (как и сейчас тащемта). ручное создание потоков - это либо говнокодерство, либо очень специфичный кейс, в котором тебе реально нужно иметь контроль над потоками3. так расширения LINQ тебе и говнячят foreach. просто приходилось писать свои рофлоитераторы, пытаясь привести все в божеский вид. просто с выходом 3.5 все стало из-под коробки и, наверное, гораздо качественнее4. все идет в такой синтаксический сахар, что можно пару диабетов себе заработать. причем, профита от подобных "конструкций" ровно нихуя, а иногда даже вреда больше
>>1403936+ >>1403941вообще, для многопоточности было и сейчас есть очень дохуя примитивов. а TPL просто дает тебе чуть более умную абстракцию и много бойлерплейта
>>1403941>4. все идет в такой синтаксический сахар, что можно пару диабетов себе заработать. причем, профита от подобных "конструкций" ровно нихуя, а иногда даже вреда большеХуя старичка рвёт. Что ты в C# нашел? Пиздуй в С очередной костыль придумывать и изобретать колесо, зато без сахара. Для тебя наверно и нововведенные котрежи тоже сахар и нинужна, да?
>>1403958хуя ты порвался от того, что меня не порвало. если язык хорош, то должен быть полон сахара, или давать какие-то реальные возможности?нововведенные кортежи - это ты про такие старые кортежи, только объявленные в скобочках? мне ниинтиресна "развитие", которое не дает новых возможностей языку. все, что нахуярили с 5й версии, за исключением ref struct можно написать по-другому и, очень чаще, гораздо понятнее. лол, до сих пор null-propagation operator нормально не воспринимается Expression Tree. ну, типа, у тебя есть оператор ?, но воспользоваться им, пожалуй, ты не можешья это и за развитие не могу посчитать. развивается .NET как таковой, в то время как компилятор только стал рослином, а дальше как бы нахуя?
При этом С++ и тем более С даст всем пососать со своей производительностью выше на десятки процентов. Стыдно должно быть наносекунды считать и говорить, что это улучшение производительности.
>>1404068опять очередной ебанутый сравнивает производительность нативного кода и виртуалки, на ходу генерящей кодпроизводительность донтета, по сравнению с другими языками, выполняющимися через ВМ, достаточно неплоха. но это не значит, что можно положить хуй и не доводить ее до еще более высоких показателей
>>1404403Дохуя работ вида "Сделать программу в которой будет таблица и возможность подгружать данные формата Word, .csv", дохуя работ вида "Сделать прогу которая будет регать мне аккаунты". С# для этого идеально подходит.
>>1404096>Так то avalonia есть ещё.У неё хеллоуворлд без танцев с бубном не заработал, выдав кучу ошибок. А у ето - заработал. 1:0 в пользу ето. Однако же, всё еще не могу найти фреймворк, сходный по функционалу с винформс: Конструирование форм мышкой искаропки на всех поддерживаемых платформах.Непонятно, что не так с девелопингом? Либо все отказались от формошлёпства, либо я классически не вижу простого и очевидного для всех кроме меня решения.
>>1404096>>1404618Смотрю сейчас это. После просмотра отпишусь.https://www.youtube.com/watch?v=8qzqweimcFs
>>1394158>все пацаны на электроне ебашат.Блять, стойте. Это тот самый Electron.js на котором можно писать десктопные приложения зная js? Или это просто названия совпадают? Хотя интерфейс у них тоже похож.
>>1404635Удваиваю вопрос.>>1404665Либо это толстота, либо новичок, который вместо чтения учебников несёт хуйню на двачах.Такого метода не будет в классе Program, который ни от чего не наследуется.Как пофиксить?1. Изучить ООП. Узнать что такое наследование.2. Изучить дотнет, узнать какие классы отвечают за локализацию.3. Подключить класс-локализатор (имеющий метод сетлокейл) к своему проекту таким способом, каким это запроектировано.4. Профит.
Здравствуйте, товарищи!Есть Xamarin'щики в треде?Бляяяяяяяя, какой же это жопный пиздец, слов нет - хуета зависающая, постоянно вылетающая и работающая через хуй знает что. Ебаный рот, бомбит с этой срани.Ну да ладно, я отвлёкся. Скажите пожалуйста, где можно найти нормальной информации, актуальной (!) по Xamarin'у. Если что, то пишу под Xamarin.Android, Forms не юзаю - по отзывам говорят, что можно сразу в могилу ложиться.Интересует темы как замутить простенькую авторизацию (можно без подключения к БД), созданием файлов для хранения данных.Я в мобильной разработке не бум-бум, последний раз делал что-то 4 года назад, более не пригождалось, а сейчас дали тестовое задание, и там на выбор две задачи: мобильное приложение либо задача на логику с ИИ.Прошу помощи, нужны книги/документация/видео, буду очень благодарен. На ютубе в основном размещение сраных кнопок.
>>1404716Добавлю, дома на вижл студио 19-го года всё збс работает, тут на ВС 13-го всё ебётся через жопу
>>1404716Очевидно, у тебя хуёвый код. Ты, конечно молодец, что не хочешь его показывать и обрезал все по-максимуму, но помочь тебе без кода не получится.
>>1404741Наusing System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;namespace ConsoleApp58{ class Program { private static char[] NonVariableCharacters = { '+', '-', '/', '', '=' }; private static string[] Riddles = { "СИНУС + СИНУС + КОСИНУС = ТАНГЕНС", "ДВА ДВА = ЧЕТЫРЕ", "ОДИН + ОДИН = МНОГО" }; static void Main() { Console.OutputEncoding = Encoding.UTF8; foreach (var riddle in Riddles.OrderBy(a => Guid.NewGuid()).ToArray()) { bool isSolved; Console.WriteLine("Riddle:{0} ", riddle); do { Console.Write("Solution: "); var solution = Console.ReadLine(); isSolved = IsSolutionMatchesRiddlePattern(riddle, solution) && IsSolutionCorrect(solution); Console.WriteLine(isSolved ? "Right" : "Wrong"); } while (!isSolved); } } static bool IsSolutionMatchesRiddlePattern(string riddle, string solution) { if (solution == null) return false; riddle = riddle.Replace(" ", ""); solution = solution.Replace(" ", ""); if (riddle.Length != solution.Length) return false; var mappedChars = new Dictionary<char, char>(); return riddle .Zip(solution, (riddleChar, solutionChar) => { if (NonVariableCharacters.Contains(riddleChar)) return riddleChar == solutionChar; if (mappedChars.Keys.Contains(riddleChar)) return mappedChars[riddleChar] == solutionChar; mappedChars[riddleChar] = solutionChar; return true; }) .All(t => t) && mappedChars.Values.Distinct().Count() == mappedChars.Values.Count; } static bool IsSolutionCorrect(string solution) { solution = solution.Replace(" ", ""); var computedParts = solution .Split('=') .Select(t => new DataTable() .Compute(t, null) .ToString()) .ToArray(); return computedParts.Distinct().Count() == 1; } }}
>>1404744В Следующий раз еще скриншот прикрепляй, чтобы выбор был - догадываться в каком месте двач вырезал символы и вставлять их или переписывать код с скриншота.
Основы языка осилил, где теперь обмазаться годными фреймворками и библиотеками? Для Питона есть всякие списочки типа https://github.com/vinta/awesome-python , а в шарпах куда тыкаться? Чтоб прямо вот по задачам было всё понятно, что для чего юзать.
>>1404403Так никто и не говорит про сисярп. На нём и на фултайме самые низкие зп в отрасли, а на удаленке и вовсе работы нет. После шарпа навернуть джаваскрипт или питон на уровне макаки - это дело пары вечеров.А вообще я хуею с моноязыковых "программистов". Может у сайтошлепов какая-то своя атмосфера, но я после того, как более менее освоил первый язык (С++), переход на другой язык для решение какой-то специфической задачи, мне казался совершенно обыденным и рутинным делом.
>>1405010>сайтошлепов У них нет классов и строгой типизации. После такого сложно привыкнуть и освоить полноценный ЯП.
Приветствую анонов, как, блять, работать с этими фигурами? Мне надо чтобы я рисовал точки и дальше от этих точек строить фигуру. Так вот, как мне ограничить кол-во рисунков и как мне считывать координаты этих точек?
ГАЙЗЫ, срочно хелп!Короч, нужна срочнопомощ. Ощем в пн у меня будет собес в крутую контору, которая хочет себе C# чела для решения задач с билингом на микросервисах. Я туда не прошел собес 2 года назад и вот, еще раз пригласили. Я знаю что они будут спрашивать, наверно имэто очень надо.МНЕ НУЖНА ИНФА ПО АЛГОРИТМИИ! Мне нжно понимать во всей это срани, желательно в C#- сложность алгоритма- откуда ростут ноги у Dictionary и Hashtable- стандартные алгоритмы и их сложностьзнаю про гугл, но блять нужно что-то простое типа вот этой хуеты: https://refactoring.guru/ru/design-patterns/catalogЖона Скита не успеваю почитать, увы.
>>1405096>читаю ща ментанит>сложно блять>собес в крутую контору>не прошел собес 2 года назаду меня для тебя очень плохие новости
>>1405095>Жона Скита не успеваю почитать, увы. >не прошел собес 2 года назад и вот, еще разДва года нихуя не делал, не развивался. Так тебе и надо, поделом!
>>1405095Выше всё правильно написали. За 4 дня ты алгоритмы не выучишь. За 4 дня их только повторить можно, но ты ничего про них не знаешь, судя по тому, что для тебя метанит сложный. Лучше откажись от собеса, а то ведь у них там все данные регистрируются и они знают, что ты собеседовался 2 года назад. Представь как им за тебя будет стыдно за тебя и омерзительно, после того как они узнают, что за 2 года ты никак не улучшил своих знаний.
>>1405151>им за тебя будет стыдно за тебяда ладно, если это рили серьезная контора, у них таких дурачков девять из десяти приходят
>>1405153Тогда не стоит идти из соображений приличия. Зачем отнимать у людей время и пытаться их обмануть?
>>1394381Майкрософт сейчас пизданули, что и кор тоже не будут апдейтить. типа будет сплошной .NEThttps://devblogs.microsoft.com/dotnet/introducing-net-5/
>>1405158Ты если английский не знаешь, то просто проси чтобы тебе рассказали о чём там в статье говорится. И говорится там как раз противоположное - больше не будет net и net core, а будет новый net - совокупность одного и другого, и упор делается как раз на core потому что он более мультиплатформенный.
>>1404775Удали это - Console.OutputEncoding = Encoding.UTF8и если не поможет попробуй поменять шрифт в консольке.
>>140517140к это норма для джуна шарписта не в ебенях>>1405170Уже давно разобрался. Кстати, даже если бы серв был на винде, причем тут IIS, я же не говорил что у меня хттп серв или асп коре.
>>1405151за 2 года у меня+ 70-487 сертификат+ ангуляр+ JS на хорошем уроне+ azure + teamcityмои потуги с episerver - впизду. увы, но это дерьмо, кроме родных даков никому не всралась :\>>1405129>>1405148>>1405156вот это >>1405183в конце концов, я ж не вчерашний. я больше боюсь того что меня таки возьмут! а там это дерьмо понадобится
>>1405192корче, я обмазываюсь манулами на инглише. они какие-то полегче будут + нашел вот это https://github.com/aalhour/C-Sharp-Algorithms...как-то так жаль что вы, сука, слишком, блять, умные, нахуй.
>>1405192короче, ты стал скриптомакакой и узнал, как создавать ресурс-групы в ажуре. ну так и оставайся скриптомакакой, нахуя тебе алгоритмы
>>1399941Перегруженная функция - любая функция, которая имеет название какой-то существующей функции, но отличается от неё сигнатурой (входные и выходные параметры)
>>1401059Ответь для начала, что ты подразумеваешь под оболочкой?Ты имеешь в виду, есть какой-то промежуточный проект или как?
Гайзы, еще вопрос: нужен ХОРОШИЙ пример, желательно из гита, применения принципа Лисковойтак шоб было все взаправду,шоб сразу все понятношоб оно там делало как надо, а не вот это вот все.даффайте, пЕплы. вы можете
>>1405192+ 70-487 сертификат+ ангуляр+ JS на хорошем уроне+ azure + teamcityМмм, напомнило те долбоебские резюме, вида:Знания: html, css, javascript, jquery, json, xml, xaml, http, ajax, ftp, tcp, udp, smtpи т. д.За два года ты освоил материал который осваивается (если прям дотошно всё разбирать и очень много практиковаться) за 4 месяца. И добавил расплывчатое "JS на хорошем уровне". Охуенно, что тут можно сказать.
>>1405204слу. ты знаешь как сложно работать с такими коллегами?все, фатит. я хочу валить. ничт меня не остановит.
>>1405224У меня есть собственный проект, который приносит мне 100к в месяц, требуя от меня обычного контроля за выполнением. Я могу позволить себе тратить время на утирание носов таким бездельникам как ты, одновременно изучая новые технологии.
>>1405197Надо уточнить, что ты называешь выходными параметрами. Если возвращаемый тип, то в шарпе он не является частью сигнатуры метода. Если ты про модификаторы ref/out то таки да, такой вариант допустимvoid A(int n) {}void A(ref int n) {}но надо помнить, что для clr ref/out/in одна хуйня (разница есть только для компилятора), поэтому так нельзяvoid A(out int n) {}void A(ref int n) {}
>>1405184Я 40к джуном получаю в ебенях, но в этом треде меня там сверху засрали, что я раб. Ребята наверное думают, что мы тут в ебенях на хаты тратим по 70к как в Москве
>>1405240тем что слабо применим в жизни. пример: продукт эволюционировал 3 раза и при этом каждый раз расширял функционал како-либо иерархии.ты, как программист, глядя на любой класс этой иерархии будешь задаваться вопросоми: 1. а зачем это и где это используется? 2. BaseClass thing = new DescendentClass(new DescendantStrategy())thing.Go() - комон, как вот глядя на это можно понять что будет делать этот метод?квадраты, прямоугольники - это понятно. непонятно - где это применять
>>1405246Написал программу которая приносит мне деньги, сейчас слежу за её работой и обновляю по мере необходимости. Бизнес план свой я тебе тут расписывать конечно не буду, это ты зря с голой жопой просишь.
>>1405261>Написал программу которая приносит мне деньгивот это неожиданностьнахуя мне твой бизнес-план? я тебя не прошу идею мне толкать. я если что-то и сделаю, то уж точно не по твоему совету
>>1405251>где это применятьВезде. Создавая наследника думай о том, что его могут использовать как базовый и если твой класс нарушает принцип Лисков, то твой класс может поломать потребителя.
>>1405253ну вот, пример же из оттудаRectangle rect = new Square();TestRectangleArea(rect);он его зарешал через проверку типа. что может быть тупее - яхз. >>1405281давай, сразу, взял и вставил сюда код из своего проекта. двух-трех строчек должно хватить. типа, я тут взял и нарушил принцип лисковой, капитально так. Account<BasePayment> target = new Account<PaypalPayment>(settings);target.Charge();Account<BasePayment> target2 = new new Account<PaperPayment>(settings);target.Charge();
Мда, пиздец WPF параша. Простая задача - разрешать ввод в поле GridData только цифр. Куча различных решений, при этом все они с плясками вокруг ивентов и большенство из них как минимум в 6 строчек кода. Еще и нельзя получить из KeyEventArgs юникод представления нажатой клавиши, только Key который определяет цифры как D1,D2,D3 ... В итоге перерыл кучу всего, но решение нашел случайно, когда узнал, что если поставить в обработчике KeyDown Handled = true, то запись в поле не происходит, что позволило регулярным выражением отсеять все ненужные символы.
>>1405513стандартные контролы неистово насасывают, а нестандартные - это преимущественно DevExpress. а так-то валидация в WPF реализуется достаточно легко
>>1405538Ну да, на деле оказалось легко, просто в гугле куча устаревшей информации. Сразу чувствуется умирающий язык, особенно после JS для которого куда не зайди везде куча новой информации, годных примеров и т. п.
Абу сделал треды вечными или этот скоро сдохнет и бедным хелловорлдщикам негде будет спросить, почему их кнопачка в винформс не работает?
>>1405553Мёртвый тред, мёртвого языка. Хватит уже тыкать палками этот труп, дайте ему спокойно уйти из этого мира.
>>1405555Квадрипл, а какой язык сейчас норм для написания всякой визуалки? Всякую автоматизирующую поеботу для себя пишу на питоне, но обезьяны клиенты не могут в консольку.
Хочу научить программу сортировать картинки по содержанию. Где можно почитать про это и в идеале найти полноценные уроки как это сделать?
>>1405567Это топ по популярности из сильных яп. Если по двачу судить, то ни один из языков не популярен, популярно только социоблядство вида МЫ ВАМ ПЕРЕЗВОНИМ треда.
>>1405578Для такого, наверное, лучше петон. У него сотни и тысячи либ с готовыми нейронками, которые распознают все подряд на фото.
>>1405201что-то проде прокси, клиент обращается к прокси, на прокси первичная обработка, а потом это все идет на проект - ядроя уже все настроил. Использовал предикат и документ обзывал по имени проекта собственно, и сортировал их по содержанию в пути файла имя документа (оно уникально)
>>1405189начальство не хочет. в итоге использовал преобразование в json, а из json в данные для гет запроса, работает даже со сложными объектами (которые содержат внутри поля/свойтсва других) и с массивами
>>1405586FromUri может десериализовывать практически так же, как и Json.NET.про начальство не хочет это рофл, надеюсь? ты внес изменения в публичный API, по хорошему это Breaking Changes, ради какой-то рофло-десериализации, доступной из коробки
>>1405708Но питон это всего лишь фронтенд для нейррнки, а она на самом деле работает на сях и куда, не?а еще мне кажется, что использовать статически типизируемый компилируемый ынтырпрайз язык для написания скрипта чтобы рассортировать фотогоафии это оверкилл
>>1405197Когда человек называет возвращаемое значение выходным параметром, становится очевидно что он ноль.
>>1405772И зачем ты насрал себе в штаны? Выходной параметр это не возвращаемое значение, а параметр передающийся с модификатором out.
>>1405893ПХП - дно для веб-макак. Питон просто не нужен. В 10 раз медленнее шарпа, ебучая динамическая типизация, никаких преимуществ перед выразительными языками с ООП и статической типизацией не имеет. Для школоты пойдёт. Для серьезных проектов - нет.Единственное преимущество - отсутствие скобок, как наследния 70-х.
>>1405893>ваш тред активнеепросто обезьянья параша сто лет как протухла. Спасибо за ебанутых мочухов, которые разогнали всех адекватов и стало тихо, как в гробу.
>>1405898> Питон просто не нужен. В 10 раз медленнее шарпа, ебучая динамическая типизация, никаких преимуществ перед выразительными языками с ООП и статической типизацией не имеет. Для школоты пойдёт. Для серьезных проектов - нет.> Единственное преимущество - отсутствие скобок, как наследния 70-х.А я недавно стал думать в точности до наоборот. Как говорит юникс философия, каждая программа должна делать одну вещь и делать ее хорошо. В лучшем случае - принимать что-то из стдина и высирать что-то обратно, а потом соединять то, что тебе надо, пайплайнами. прям как функциии и их композиция в ФПОчевидно, что для таких целей не нужен огромный рантайм, статическая типтзация и прочие фичи шарпа. Для работы с системой хватает си, а для "сложных скриптов" - какого-то перла/питона. хотя мне пиздец как нравится сисярп и я изучаю хацкель, но я вообще ебу, где, кроме веба/ынтырпрайза их можно применить
Есть смысл бумеру древнему вкатываться в ит с игор на юнити и сисярп ? Была идея общая - вкат, начал ковырять js + html, но на шарпе есть веселые кубики с юнити, и собственным марио. Давно хотел сделать простенькую idle игрушку. Останавливают 2 момента - я слишком стар для этого дерьма, сисярп - "сложней чем js / php" страшно, что я тупой и ниче не пойму.
>>1406117В прошлом году, в сентябре, перекатился с фрипаскаля на сишарп за две недели, изучая шарп по статьям на мсдн. И собственно говоря, всё изучение свелось к тому, чтобы узнать различия в языковых конструкциях, в остальном весь ООП, вся парадигма и двор работают точно так же в упор.Перекатился настолько конкретно что паскаль вызывает отвращение: "это что мне опять длинными словами описывать инициализацию экземпляра, когда в шарпе она делается в одну строчку в инициализаторе??7" или "Блять, почему это есть искаропки в РТЛ? А что, так можно было??7"Мимо 36 ЛВЛ.
>>1406162>с фрипаскаляВ голос. Ничего, что это компилятор, а не яп? Паскаль это не тоже, что и js/php, это полноценный язык программирования со строгой типизацией, с которого начинают/начинали учить программирование имменно потому что после него тебе легче будет освоить что-то более функциональное.
>>1406164>с фрипаскаля>В голосДвачной дурачок, как обычно голосит со всего подряд, идиотина.Фрипаскаль - это в первую очередь бренд (несмотря на опенсорсность с бесплатностью).
>>1406171>это в первую очередь брендНе перестаю проигрывать с обосравшейся маньки, которая уныло пытается оправдаться. Если уж на то пошло, то это в первую очередь сочетание слов. И таких "в первую очередь" может быть бесчисленное множество, в зависимости от того как сильно ты обосрался и как сильно хочешь перевести разговор в другое русло. Но проблема в том, что от этого free pascal не становится языком программирования с которого можно вкатываться в другие языки, а твои штаны также остаются обосранными.
>>1406221>консольное приложение>console.log()Ну что тут можно сказать. JS-макака as is. Если я создам объект console у которого будет метод log, то это не сделает этот объект консольным приложением.