Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии. Литература вторым постом 1. Ресурсы:- http://stackoverflow.com/questions/tagged/c%23- http://www.tutorialspoint.com/csharp/- http://professorweb.ru- http://net-informations.com- http://habrahabr.ru/hub/csharp/ 2. Онлайн-компиляторы:- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.- http://ideone.com/- http://csharppad.com/- http://www.tutorialspoint.com/compile_csharp_online.php- http://rextester.com/l/csharp_online_compiler 3. WinForms или WPF?Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее. 4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован. 5. Какую ИДЕ выбрать?Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополненийДля мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом. 6. С# для мобильной разработкиЕсли нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspxИз актуальной литературы- Xamarin Mobile Application Development- Xamarin Essentials 7. Дополнительные инструменты для разработки на C#LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данныхdnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студииdotPeek - бесплатный декомпилятор от JetBrainsscriptcs - для запуска C# кода как скриптов, возможность использовать как REPL 8. Расширения для студииReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентовSupercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по нимIndent Guides - показывает вертикальные линии на каждом уровне отступов.Format document on Save - форматирует код каждый раз при сохранении документаCode alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20OverviewНовые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6 ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ Код этой шапки: http://pastebin.com/cKKXYArs Прошлый тред тонет здесь: https://2ch.hk/pr/res/1482351.html#1498035
>>1499746 (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 и анализ дампов памяти в windbg 15. Литература не по шарпу, но так или иначе связанная с языком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), SOLID 18. Я не умею читать, что посмотреть?- 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
>>1499747Сообщение от ОПа.Привет мой дорогой, няшный анончик. В конце 2018 года я вкатился в этот тред в надежде получить знания об этом языке программирования и с огромной страстью накинулся на все ресурсы что были в шапке. Тогда я ещё не знал что это изменит мою жизнь. Так, что я до сих пор нахожусь в эйфории. Я устроился на новую очень хорошо оплачиваемую работу. Мои проекты помогают компании, людям и в целом лично для меня приносят радость уже тем, что я делаю что-то нужное и важное.Всё это благодаря тебе анончик! Ты сделал мою жизнь счастливой. :3
>>1499746 (OP)Зачем здесь аниме и кошкодевочки? Это скорее про всякие Линуксы и прочий фри софтвер, а Майкрософт для серьёзных уверенных в себе мужчин.
>>1499760>кошкодевочки>девочкиНо ведь на фото серьёзный и уверенный в себе мужчина, рыцарь ордена и второй человек в государстве!
>>1499749А я нихуя не вкатился, это энтерпрайз говно, на которое сложно попасть студенту, лучше бы во фронтенд вкатывался, уже бы рубил 3000k/нс
>>1499797>студенту>энтерпрайз А ты чего ожидал? Ясен пень никто не хочет платить 300к в наносекунду работнику, который пол дня проёбывается на парах и берёт кучу отпусков на экзамены.
>>1499821Stateful может хранить какое-либо состояние между запросами, соответственно контейнер имеет пул таких бинов и для каждой сессии выделяет отдельный экземпляр.
>>1499831Ты понимаешь что только что сам себе придумал вопрос, сам на него ответил, сам загорелся и теперь у тебя претензии почему-то ко мне. Ты Ебанутый?
>>1499832>программист обязан сидеть в офисе 24/7>ты не прав>иди дворы подметать>я не ретард я просто троллю /pr/
>>1499836Ты в курсе что рабочий день 8 часов, иногда и меньше? С чего ты взял 24 часа? И да, если тебе СЛОЖНА сидеть в офисе 8 часов за 300к - пиздуй дворы подметать.
>>1499840>ну не 24 а 8 мам ну скажиПидорашка у которой работа в количестве измеряется, ты?В тырпрайзе на поддержке что ты собрался 8 часов подряд безвылазно ебашить?Начальник или манагер уже выдрессировал, что если он не видит тебя на рабочем месте, то это сразу атятятя к зарплате?
>>1499851>тырпрайзе на поддержкеА, ты видать бордой ошибся, тут программач, тут Программы делают, а не поддерживают.
>>1499851>Что делать 8 часов на работеРаботать, блядь. Таски сами себя не делают.Скажи нахуя нанимать чмошника который будет ныть что его работать заставляют, если есть люди которые и приходят на работу работать?
>>1499746 (OP)>>1499476>Как скомпарю все эти изменения + ещё свои некие - выложу кот.Готово, наконец!Посему, я просто оставлю здесь это:https://github.com/username1565/nanoboard/commit/0710cea17d73eb7aadad7c2326897fa52e3c459cИ да, я так и не дождался критики самой идеи НАНОБОРДЫ - от анона: >>1498897Изливай своё уже, обоссым.
>>1499876Значит у вас манагеры/лиды проебываются, что человек на работе есть, а задач для него нет. Кайфуй пока не просекли, хули.
>>1500022На самом деле есть разные методы.Например Cont improove - подразумевает что у тебя всегда забито всё.DevOps - подразумевает что ты чинишь только сломанное,Developer - я тебе дал ТЗ, сделай прогу.В данном случае человек вообще не вдуплает в энтэрпрайз. Ибо это экосистема. Ты обновил одну прогу, которую юзает финансовый отдел, а там сидел хуй который в 2015 уволился, но он написал скрипт на Excel который импортил из твоей проги, так что ебись. Но таких хуёв 10, а отделов 20! При этом прога завяззана на 10 других прог, пожтому твоё обновление накрыло пиздой международую корпорацию. ЭНТЭРПРАЙЗ СУКА! Тот тролящий пидорас который думает что 8 часов - много, нихуя не работал в энтерпрайзе, он работал в рога и копыта на 15-50 человеки вообще не вдупляет за что синьора называют так и а что дают 300к! Вот блядь за это!
На следующей неделе собеседование предстоит. Судя по ожидаемой зарплате middle+, что сейчас модно спрашивать по ASP.NET?
Почему после вхыода из цикла IF, переменная arrAllFiels зануляется?При работе диалога имя файлов записываются как надо, а после выхода из цикла null. Что я делаю не так?
>>1500438Если ты хочешь в static переменную, которая у тебя торчит вне метода что-то записать, то нахуя ты создаешь локальную переменную с тем же именем внутри самого метода?Что ты вообще пытаешься сделать?
>>1500438>Почему после вхыода из цикла IF, переменная arrAllFiels зануляется?Потому что она объявлена внутри цикла.
Добрый день!Подскажите что не так с кодом работает на половину.Ввожу данные массива с клавиатуры есть отдельный методи потом вот такой код и задание.Работает корректно только если в массиве нет повторения минимального элемента и только одно отрицательное значение.//Найти номер первого минимального элемента. public static void FindIndexFirstMinElement(int[] array) { int minelement = array[0]; int minindex=-0; for (int i = 0; i < array.Length; i++) { if (array <= minelement) { minelement = array; minindex = i; Console.WriteLine("min element"); Console.WriteLine(minelement); Console.WriteLine("index min element"); Console.WriteLine(minindex); } }
>>1500504Как понять первого минимального элемента массива? А есть второй, третий минимальный? А максимальных сколько?
>>1500523Ну вот массив в нем {0,1,2,1,0,0}И нужно найти индекс первого минимального элемента.Хотя в массива минимальных элементов несколько.
>>1500470>>1500442Спасибо, аноны. Я уже закончил приложение, и можно сказать лишился программной девственности. не считая хеллоуворлда, конечно>Что ты вообще пытаешься сделать?Нужно было сохранить имена файлов в массив, чтобы я мог их обработать в дальнейшем, для вставки в ворд.
>>1500543Листвы ты лишишься при выполнении первого таска на реальной работе. Пока ты только мастурбируешь и кончаешь.
>>1500823ты не представляешь, какое количество проектов написанно на джаве, которые так же будут саппортиться десятками лет. К тому же джава не стоит на месте и никто не знает, что будет в следующем релизе
Вопрос про IDataErrorInfo, что я должен указывать в Error? Я знаю что есть более предпочтительный INotifyDataErrorInfo
В общем вот код. Как в нем обработать исключение когда все числа массива одинаковы//Найти номер первого минимального элемента. public static void FindIndexFirstMinElement(int[] array) { int minelement = array[0]; int minindex=0; for (int i = 0; i < array.Length; i++) { if (array < minelement) { minelement = array; minindex = i; } } Console.WriteLine("min element"); Console.WriteLine(minelement); Console.WriteLine("index min element"); Console.WriteLine(minindex); }
>>1500968Или нет, array[переменная i] у тебя там есть и это просто макаба сожрала?Лей на пасту или ideone как нормальные люди
>>1501030Ты даже историю собственного языка не знаешь? Хотя зачем вам, у вас каждые 3 года проект уже переписывать с нуля надо.
Второй день ебусь с исключением если в массиве все элементы одинаковые должно быть сообщение. И как его вывести что бы весь код не выполнялся остальнойВот весь говнокод значения ввожу с клавиатуры.
>>1501610Сначала научись нормально изъясняться. Вот тебе метод проверки, все ли элеметы массива одинаковые.
>>1501632В общем у меня задание вывести на консоль индекс первого минимального элемента массива. Этоя сделал. Но мне еще нужно обработать одно исключение когда в массиве все числа.одинаковые.Вот как это проверить я хз.
>>1501639А, так исключение не в смысле exception. Ну так и пиши If(AreTheySame){//показать сообщениеreturn;}
Ну и тред у вас одни вкатывальщики и/или секта святой поделки от Билли. Который спиздил гуй у джобса в 80-ых.
>>1499746 (OP)Добрый день, анон.Есть проблема - сижу и пишу код в небольшой компании, базовый синтаксис вроде знаю, кое-что понимаю об алгоритмах, но чувствую постоянно какую-то нехватку знаний и компетенции на тезх же собеседованиях. Подскажи пути роста с джуна до уверенного мидла, м.б. книги, курсы, программы. Предвижу - да, читать, конечно, но с чего начать и на что обращать внимание? Заранее спасибо.
>>1501752>базовый синтаксис вроде знаю, кое-что понимаю об алгоритмахЭтого сейчас достаточно для джуна, что ли?
>>1501699Так да но вывод получается на каждое значение массива и все равно находит первый элемент как минимальный
>>1501752Рихтер. SQL дрочи, DI, вырой книги не для начинающих и ебашь-ебашь, leetcode/codewars/codingame в помощьмимо предыдущий охуевший си-шарп джун
>>1499746 (OP)Есть сервер и клиент на C# https://metanit.com/sharp/net/3.2.phpЭтот код немного модифицирован так, чтобы принимать много байт в одном сокете, а не создавать кучу других.Вопрос: Как можно эту хуету использовать в браузере?Ну, чтобы одно соединение открыть, и приёмо-передавать данные туда, а не открывать кучу соединений ёбанных,по принципу запрос-ответ.Слышал что можно как-то Keep-Alive соединение открыть, по HTTP 1.0, только блядь как это кодить сервер этот грёбанный, и как к нему с браузера коннектится - хуй знает... Поясните!
>>1501786Как ты себе это представляешь?У каждого треда свой стек по мегабайту.Есть еще куча где хранится все подряд.Дальше сам нагуглишь.
>>1501836Вот, смотрите что нарыл: https://stackoverflow.com/questions/10200910/creating-a-hello-world-websocket-exampleУ этого чела какой-то заголовок в консоли выводится, а потом соединение закрывается. Работает, проверял.Дальше всё по-английски и непонятно нихуя, это всё ещё и допиливать надо.Есть у кого-нить примеры сервера на C# и клиента на JavaScript?Ну, чтобы через websockets лишь одно соединение установить, и уже туда, в это соединение - писать и получать инфу...
>>1501533>историю собственного языкаЭто не мой язык, я его не писал. Я на нём писал впервые в 2015 году.
>>1502011Не знаю, может быть в C# это и не нужно. А в Джаве тогда почему не сделают шаблоны/нормальные дженерики? Там же хуета с преобразованием типов в рантайме, выходит накладно.
>>1502044Дженериков изначально не было в первой версии жавы, и так как они были введены в язык позже, для сохранения обратной совместимости действуют только на уровне исходного кода, в байт-коде их нет.
>>1502044Можно.Но тогда придется переписывать триллиарды библиотек, которыми все пользуются, но в которой этой новой фичи нет.
>>1502010>socket и websocket не одно и тоже. А тебе советую взять SignalR и не ебать мозг.SignalR на Windows XP не ставится, и под .NET 4.0 не билдится, даже версия 1.1.3. Просит какой-то nuget package, отсутствующий.Поэтому, поставил пока WebSocket Server в виде Fleck2. https://github.com/peters/Fleck2Сбилидлось нормас, и вроде как даже работает demo.Как теперь этот WebSocket-сервер в наноборду встроить - ума не приложу.https://github.com/username1565/nanoboard/issues/5#issuecomment-544768616
Индексаторы классов используются на практике? Столько ебаных фич напилили, вроде бы не просто так, но уместить в голове все способы взаимодействия объектов в ООП просто нереально.
>>1503398>111Не совсем понял тебя.Но SignalR версии 1.1.1 - тоже чё-то не билдится. Опять же, по той же причине. Сначала запускается nuget, открывается какое-то соединение, и после этого, соединение разрывается...Я пока Fleck2 чутое подправил, вроде работает и компилируется.Вижу при работе demo - одно открытое соединение в фаерволе, и байты передаются по нему одному.И много соединений не открывается.
>>1499746 (OP)>Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.Блядь, ну это то можно и исправить уже в шапке. Rider чуть более чем полноценная замена мерзкой студии.
Гайс читаю Троелсена, .NET Core изучаю, но т.к. даже ASP .NET я не юзал(так же прошелся по Троелсену), не догоняю че за сервисы зачем они нужны и их конфигурирование. Есть что почитать(для начала в общих чертах), чтобы догнать все возможности и тонкости, которые можно прикрутить в Core и понять зачем они вообще нужны? В книге как-то высрано непонятно, плюс бывают ошибки, которые пока фиксишь теряешь нить нахуя это вообще делается. Отразить че вообще делается на скрине.
Возможно ли из дочерней формы вытащить переменные в главную и посчитать их там, если мне нужно из таблицы в дочерней в массив внутри главной?
>>1504190Сервисы - это инстансы в DI контейнере приложения. Есть встроенные типа DbContext, но ты можешь туда засунуть любой класс.
Решил сделать трехзвенку с связью на wcf. Как сделать юзерские сессии и аутенфикацию? Пока придумал только что-то похожее на пикрелейтед для создания токенов, которые при каждом запросе на который необходима авторизация отправляются, но даже то что я придумал не работает.По сути мне просто нужно сделать:1. Либо сервер логинит пользователя и держит его сессию со всеми данными для авторизации. Это реализуемо, если у нас wcf построен на сервисной модели и вызовы между сервисами как бы не связаны2. Либо север с клиентом договариваются как генерировать секьюрити токен и им сопровождаются все авторизуемые сообщения. Но я пока не смог придумать как это реализовать грамотно.
>>1504330>1. Либо сервер логинит пользователя и держит его сессию со всеми данными для авторизации. Это реализуемо, если у нас wcf построен на сервисной модели и вызовы между сервисами как бы не связаны?фикс
Так как стаковерфлоу для лохов, которые не боятся деанона их тупых вопросов, пишу здесь:1) Как работает эта поебень на первых двух пиках? Я не пишу new Either<>..., а просто пишу через равно сразу или string, или int. При этом даже с варом шарп все понимает. Как бля? Что это за черная магия? мне кажется, она со struct связана2) Почему на третьем пике оно не приводится, если в конце не дописать toList() или не сделать так:>return EitherStrict.Right<Response, IEnumerable<Response>>(nextPossible.Right.Where(t => t.Suitable(m, a)) .Select(t => t.Execute(m, c, a, nextPossible)));?
>>15043891. Читай про implicit и explicit операторы, они позволяют производить неявное/явное преобразование типов.>даже с варом шарп все понимает не верю. Вар это указание компилятору самому вывести тип переменной, исходя из правой части выражения. Т.е. в е бе\удет стринг. А вот при передаче строки в solve будет произведено неявное (implicit) преобразование.>она со struct связанамимо2. Компилятор говорит, что запрос возвращает коллекцию респонсов, а возвращать метод должен вернуть EitherStrict<Rsponse, IEnumerable<Response>>. Мне не видно от сюда что у тебя там за классы, так что подробности смотри сам.
Сап двачик, такой вопрос. Когда я делаю запрос к апи на пхп, то пишу что-то вроде>$response = json_decode(file_get_contents("https://2ch.hk/VKids.json"), true);>echo $response[250]["LastName"];И таким образом имею доступ ко всем данным. И я никак не могу нагуглить работающую альтернативу этому простому и понятному способу на C#. Реквестирую аналог.
Сап шарписты. Есть идеи как перегрузить операторы "<" и ">", которые будут принимать только один параметр ?
>>1504669Ну вот препод мол сказал. Перегрузи мне операторы ">" и "<", чтобы я по списку летал туда сюда. Сам охуел от такого расклада, но сказано сделать.
>>1504680Так с чего ты решил что тебе нужно сделать унарный оператор? Не вижу этого в постановке задачи
>>1504689Ну допустим у меня первым параметром будет экземпляр списка, а второй какой будет ? Не могу же я в шарпах передать поток ввода/вывода ?
>>1504592> implicit и explicit операторыспасибо анон, теперь узнал что это такое.>не верю.Ты прав, происходит неявное преобразование через implict. Правда я не понимаю, почему оно не приводит неявно тип, если юзать ienumerable, а не list, array и тд.
Нужна помощь Я тут наговнокодил и не понимаю 2 моментаЧисло в массив ввожу с клавиатуры1.Верно ли я нашел минимальный и максимальный элемент массива2.Почему суммы не считается как надо
>>1504961Тебе точно нужна сумма всех элементов кроме minElement и maxElement, или все-таки сумма элементов с индексами между minIndex и maxIndex?
У меня начинается батхёрт. Причём такой нехилый. Постоянно на работе доёбываются до кода. Но непо существу а по каким-то вообще абстрактным понятиям. Например могут доебаться до того, что я при запиле программы не сделал кучку функционала отдельной библиотекой, чтобы потом можно было её юзать в других проектах. Или например какая-то прога написанная непойми кем вдруг потребоавала изменений буквально неделю назад. Изменения уровня "Поставь один if если переменная будет превышать размер в 70 символов." Сделал@отдал. Претензия "А чего ты не переписал всё под MVVM? А чего ты класы не использовал? А потом ведь поддерживать дубет хреново." Да вы с 2012 её нихуя и так не поддерживали. Задачу я решил? Решил, чё блядь вам ещё от меня надо? Откуда вообще такое вот лезет то? Зачем каждый более менее опытный программист пытается свою парадигму на меня применить? Главное ведь решение задачи, а уже потом чтобы всё было внутренне красиво.
>>15049611. неверно2. даже не стал смотретьты начинаешь кодить до того, как поймешь, что и как у тебя будет работатьа потом начинается: я наговнокодил, посмотрите, что там у меня происходитДа иди ты на хуй!
>>15049611) Нет. Сравнивай с минамксэлементом а не с первым в массиве, да и иинициализируй их минмаксинтом.2) Потомушо ты сравниваешь со значеим минмаксэлемента, а не индексы. Да и вынеси рэндж в фор.
>>1504961Короче, я не совсем понял, нужно ли не считать сумму если массив состоит из одного элемента. Так же не понял, нужно ли считать сумму если maxidx<minidx, просто потому что у тебя в коде алгоритм завершается а в комменте сверху просто: Выведите сообщение. Ну и когда говорится про "между", подразумевается что крайние элементы не нужно считать или нужно, я подумал что нужно. Вооот.Короче, вот тебе вариант, заваязанный на том как я понял задание. Если я там что-то не так понял, исправишь за 1 секунду.https://ideone.com/fDAIB3
>>1505007Потому что ты, еблан, когда-нибудь да уйдешь, а потом придут новые ебланы и им может понадобиться этот говнокод развивать и поддерживать. Да даже не так. Тебе самому через пару лет потребуется допилить что-то в этот говнокод, отличающиеся от добавления одного 'if', скажем переносить это на какую-нибудь новый модный-молодежный фреймворк. Как думаешь, захочется ли тебе потом переписывать все чуть ли не с нуля, еще и разбираясь, как это говно вообще работает?
>>1505007>Например могут доебаться до того, что я при запиле программы не сделал кучку функционала отдельной библиотекой, чтобы потом можно было её юзать в других проектах.Из макаки хотят сделать нормального человека, а она копротивляется. Как мило.Выносить какие-то общие алгоритмы, части проекта в отдельные файлы/библиотеки - стандарт. Потом и тебе самому, и другим будет проще работать чем по 10 раз один и тот же велосипед писать.>Изменения уровня "Поставь один if если переменная будет превышать размер в 70 символов." Сделал@отдал. Претензия "А чего ты не переписал всё под MVVM?"Чего? У тебя задача добавить условие в иф, а к тебе доебываются почему ты архитектуру не переделал? Ты или не договариваешь, или путаешься сам. Или, как вариант, тебя просто вытравить хотят, что неудивительно судя по той хуйне что ты ляпнул в предыдущем предложении.
Не совсем вопрос по Шарпу, но VS же наверное относится к теме обсуждения?Так вот, я только недавно узнал что там есть возможность целые конструкции генерировать сокращениями, типа prop, cw и т.д. при том, что еще с 2009 студии начинал. Распробовал эту фишку и она мне понравилась, только вот встроены таких штук маловато оказалось. Можно ли как-то расширить список таких вот штук?
>>1505175Спасибо, няша. Когда будет время запилю себе этих снипетов на большую часть штук, которые систематически приходится писать.
Что почитать толкового по MSBuild? Уже какое-то время использую кастомные таргеты и до сих пор не могу выявить как работает, например, robocopy в постбилде взятый с MSDNовского гайда. На одном солюшне всё как часы, на другом потребовалось по-другому оформить пути к директориям, в третьем ебля на ровном месте в ходе чего пришлось другой код ошибки вставлять, и ещё много всякого разного.И это один только несчастный перенос файлов. Как охватить умом всю систему, чтобы оно не казалось таким рандомом? MSDN тут не сильно помогает, увы. От всяких там мурриканских профи уловил месседж, что Студия скрывает в себя много подводных на этот счёт, но реально критично это должно быть когда компилится враз порядка 7 и выше проектов (т.к. оптимизация билда может аукаться альтернативным проходом тех же таргетов). Но это явно не случай одного несчастного приложения в котором нужно некоторые косметические вещи сделать, правильно ресурсов притащить дополнительных, обфускацию, итд.
Сап. Пишу впф+мввм приложуху. Обычно, что бы закрыть окно по кнопке я ставил ей IsDefault/IsCancel в тру и оно закрывается после выполнения команды. Но теперь появилась необходимость, чтобы при определенных условиях в команде закрытие отменялось. Как это можно сделать в рамках мввм?
>>1504961Типичный двач, мажутся говном уже в первой лабе по шарпамПо алгоритму тут уже всё сказали, по кодстайлу вот:1. В консоль без дела не срать: убери весь вывод в консоли из циклов2. Вместо даблслэш используй / somecode / для комментов в несколько строк или summary, если это описание работы метода. А вообще всё это говно с сортировкой превращается в пару строк с помощью Array.Sort(Array)
>>1505550Лучше, чем у автораПредусмотрены некоторые исключения, что хорошо. Но слишком много ифов, с набега не въехал в логику работыПлюс не очень понял, зачем отдавать методам data через ref , но я в чужие дела не лезу. Прописал, значит есть зачем.Мой вариант таски примерно такой: https://ideone.com/L1Frzn Приоритет отдал коду в ущерб быстродействию
Раз уж тут в code review играют, то я пожалуй тоже попробую.>>15050381. Замени возврат значения через out параметры на нормальный возврат через return. Это явно не тот случай, где следует применять out параметры.2. Передавать массив через ref не имеет смысла, массив - это ссылочный тип, он и так по ссылке передается.3. if (left > right){ right = left + right; left -= right; right -= left;}Не нужно менять значения двух переменных подобным образом, с точки зрения производительности выхлопа здесь никакого не будет, а вот читаемость страдает. Кроме того, возможно переполнение right, если right + left будет больше макс. значения инта.4. Возможно, у тебя какая-то своя схема именования методов, но в C# стандартом является именование всех методов через PascalCase, даже если они приватные.>>15058211. Почему метод называется Sort, если никакой сортировки не происходит и метод делает совершенно другие вещи?2. >massiveТранслит в коде - нехорошо.3. >int sum = new int()Не вижу смысла явно вызывать конструктор инта, запись int sum = 0 и короче и понятнее.3. И наконец, самая большая проблема - код работает неправильно. В строчке>sum = massive.Where(p => !(p > minElementId && p < maxElementId)).Sum();целых 2 проблемы. Во-первых, метод Where работает со значениями элементов, не с индексами, а у тебя идет сравнение с индексами. Во-вторых, твой предикат суммирует те элементы, которые наоборот находятся за минимальным и максимальным элементами, а не между ними.
>>1506011Да, действительно, в Where на ночь глядя ерунду написал. Хотел прописать суммирование через одну строку без явного цикла - поспешил
>>1505821> Приоритет отдал коду в ущерб быстродействиюЗачем лапша из for вместо нормального foreach и бесполезные переменные с крайними элементами?
>>1506037С for можно узнать текущий индекс элемента без костылей (для возможности вывода в консоли "A[i} = ").Можно обойтись без переменных, я их прописал, чтобы код легче было читать
>>1506011>Ссылочный тип не имеет смысла передавать через рефМы вам перезвонимна самом деле в этой ситуации может не имеет, но в целом имеет, не путай ньюфага
>>1506093> текущий индекс элемента без костылейИспользуй List иforeach (var (item, index) in list.WithIndex())
>>1505047>Из макаки хотят сделать нормального человека, а она копротивляется. Как мило.Типичный проект в конторе - переделать XML в текст. Вся прога строк 320 занимает. Щас бы неделю тратить на всякие либы, потом через пол года в них разбираться вместо того, чтобы просто написать прогу за пол дня и пойти обедать. Я не против когда проект огромный и реально есть что делать отдельно. Но ЭТО НЕ ВСЕГДА ТАК РАБОТАЕТ АНОН!
>>1505047>У тебя задача добавить условие в иф, а к тебе доебываются почему ты архитектуру не переделал? Ты или не договариваешь, или путаешься сам.Ну да, консольная прога, запустил, нажал кнопку, рад. ПОследний реквест был реально добавить 2 условия уровня if.Нет просят переписать под UI, чтобы на WPF и чтобы обязательно MVVM. Учитывая что вся прога заняла примерно 5 дней написания и пользоваться будут её исключительно 3 человека из конторы, весьма сомнительно тратить на неё месяц переписывая всё под WPF MVVM. Тем более что работы и так много.
>>1505040Какой-то непонятный аргумент. Ну как понадобится - так пусть и переписывают? Я тут каким боком? В данный момент понадобилось добавить 1 if и я добавил. А всякие "'скажем 'потом ядро операционки из этого кода надо будет написать " - вообще шиза последней стадии. Что вообще значит "скажем"? Задача есть или нет? Переписывать какой-то код хуй пойми почему - ну так я вообще тогда могу просто днями сидеть и переписывать всё. Смысле только ноль. >Как думаешь, захочется ли тебе потом переписывать все чуть ли не с нуля, еще и разбираясь, как это говно вообще работает?Опять какой-то странный вопрос. Что вообще значит "захочется ли тебе"? Это моя работа, мне за неё деньги платят. Конечно мне захочется, иначе бы я не работал на этой должности. >потом придут новые ебланы и им может понадобиться этот говнокод развивать и поддерживать.Такова их работа. Не смогут разобраться - их проблемы. И вообще у тебя аргумент типа "Ух бля в 300 строках разбираться надо!!111"
>>1506212>Типичный проектТак блядь тем более сука. Если у вас куча однотипных задач, то выносить обобщенную логику в библиотеки сам господь сука велел. Иди нахуй короче, хуле перед мартыхой расписаться, надеюсь тебя уволят к хуям
>>1506226>Непонятный аргументБлядь ты тупой или троллишь? Ты работать работу пришел, на дядю. Не на себя. А потом КОКОКО А МНЕ КАКОЕ ДЕЛО ДО ТРЕБОВАНИЙ КУДАХ, да такое что тебе за это деньги блядь платят. Хочешь писать как тебе нравится - пиши петпрожект или мути стартап.Мартыхан пиздец, "я свою часть высрал а остальные ебитесь как хотите с тем что я высрал"
>>1499749Распиши свою стори. Какие вводные? Как вкатывался? Сколько готовился? Как учился? Что самое сложное было? Сколько времени посвящал? Что на собесе спрашивали?
>>1506251>выносить обобщенную логику в библиотеки сам господь сука велел.Сел на стул - написал библиотеку для усаживания на стул.Пёрнул - написал либу для пердежа.Пчесал яйцо -написал либу. Вдруг кому пригодится.Смотришь на коллег у которых по 100 либ на всякую хуйню, кто из них использует свои же либы? Никто. Вот и поговорили.
>>1507093> Ты работать работу пришел, на дядю. Не на себя. Вот дядя мне и ставит задачу которую я решаю за пару часов. А всякие двачеры говорят потратить пару недель на написание либ, вместо решения задачи.
Что делать, если мне нужно работать с кучей листов, у каждых из которых свой тип? Меня просто трясёт уже, я на ровном месте топчусь и нихуя не могу сделать. Раньше всё прекрасно работало с datatable, но за каким-то хуем нужно весь проект под злоебучий entity framework переделывать, ебись он в рот.
>>1507110>Какие вводные?Кун, 25 лет. До этого баловался художествами. Умел в PHP немного в JS на уровне копипасты и сделал пару сайтов на WP.>Как вкатывался? Сколько готовился? Как учился?Вкатился примерно в это время (октябрь ноябрь 2018) год назад к вам в тред. Знакомый сказал что примерно через пол года будут искать джуна на должность со знанием C#. Но его захантили в другую контору и в итоге по знакомству устроится не смог. Собственно от него помощи никакой небыло. Сидел здесь месяца три вылавливая всё что только можно. Прочитал большинство книг шапки. Прорешал всё что было в задачах. Покликал сайты с шапки. Посмотрел некоторые курсы на ютюбе. Внезапно они оказались безсмысленной тратой времени. Примерно к марту 2019 у меня было несколько проектов уровня чуть больше чем лаба. >Что самое сложное было? MVVM самое сложное, вообще не понимаю его профитов относительно маленьких тим. Ещё SOLID - если по отдельности ещё кое как могу притянуть за уши к проектам, то всё вместе пока небыло опыта применить. Наверное поэтому не понимаю. >Сколько времени посвящал?Примерно часов 8-10 в день. Благо работа была ненапряжной, админил конторку.>Что на собесе спрашивали?MVC, ASP, SQL, очень много про базы данных, вложенные запросы, тригеры, отношения, оптимизации запросов, что вообще-то меня удивило поскольку для меня это казалось что-то уровня "Ты выпускника MIT спрашиваешь про букварь". Админимтрирование немного. C# как ни странно почти не задели. Ну и так, кем работал, какие проекты были, что из проектов было самым сложным и почему. Про PHP спросили потравили анекдотов и баек про него.
>>1507500Всегда используй async/await, в 2019 использовать что-то другое будут только пердолики. Thread вообще говно мамонта - очень медленно, надо следить за потокобозопасностью, за количеством потоков, пердолить то что с асинхронностью работает без лишнего кода. А ещё автоматом лишаешь себя всех асинхронных нововведений, которых в каждом апдейте Core/языка завозят гору.
Превозносимые сисярп-Б*ги, такое дело: надо за два дня постичь основы C#, чтобы написать тз (по основам JS, SQL и сисярп) и попасть на курсы. Подскажите, пожалуйста, как это реализовать? На всё у меня в сумме неделя.
>>1507315Ты проблему сформулировать нормально можешь блядь? Что за листы, откуда берутся, что конкретно с ними делается? "Доктор помогите у меня болезнь, ну такая, болезнь организма"
Закончил в этом году вышку не по АйТи, за лето сделал несколько проектов в портфолио.0. https://github.com/42ama/HeadhunterRuStats - пока учился питону сделал парсер хх чтобы вакансии помониторить. Прилагаю как пример ведения гита, потому что в остальных проектах я хуй на него забивал.1. https://github.com/42ama/UrlShortener - одностраничник сократитель ссылок, с разрешение коллизий.2. https://github.com/42ama/Little-Blog-Engine - небольшой блоговый движ, с аутенфикацией и авторизацией, постами и поиском.3. https://github.com/42ama/Boorger-Shop - онлайн-магазин бургеров с товарами, категориями, корзиной и проработанной админкой для управления всем этим. Проекты в хронологическом порядке. Скидывал резюме с ними на 4 вакансии, позвали на 2 собеса, после личного собеседования говорили что я неплохо все знаю, дали тестовые - сделал, в итоге на обе вакансии взяли челов с большим опытом.Так вот вопрос, как думаете, мне сейчас дальше с этим портфолио искать себе место чтобы побыстрее получить опыт корпоративной разработки или сделать ещё один проект, ещё лучше, но потратить на это время и силы? Просто от безделья и сидения на мамкиной шее я потихоньку в мини-депрессию скатываюсь.Уже пытался зафейкать корпоративную трехзвенку, на двух новых для себя фреймворках wpf+wcf в итоге понял что слишком большую задачу взял, думаю на asp.net'е опять её сделать, параллельно про wpf почитать.
>>1507772> 0. https://github.com/42ama/HeadhunterRuStatsПиздец треш. Ты сам можешь в этом говнокоде ориентироваться?> 1. https://github.com/42ama/UrlShortener - одностраничник сократитель ссылок, с разрешение коллизий.Зачем из рандомного туториала скопипастил в гитхаб?> 2. https://github.com/42ama/Little-Blog-Engine - небольшой блоговый движ, с аутенфикацией и авторизацией, постами и поиском.Опять копипаст? Сам не можешь ничего сделать?> 3. https://github.com/42ama/Boorger-Shop - онлайн-магазин бургеров с товарами, категориями, корзиной и проработанной админкой для управления всем этим.Выглядит как говно, слепленое студентом за вечер.> Так вот вопрос, как думаете, мне сейчас дальше с этим портфолио искать себе место чтобы побыстрее получить опыт корпоративной разработки или сделать ещё один проект, ещё лучше, но потратить на это время и силы?Не думаю что тебя с таким куда-то возьмут, это даже на джуна за еду не тянет.
>>1507799Говорю как есть. Лучше больше не позорься. Я вообще админ и мне нахуй не надо кодить, но я вижу что ты совсем не понимаешь ничего, когда пишешь> корпоративной разработкиЕстественно тебя могут взять только в такую дыру, где кроме тебя никто не придет на собес. Пилить низкокачественное говно, например, будешь. Опыта тебе не дадут. Ты пытаешься за всё ухватится, но знаний хоть по одной теме ноль.> от безделья в депрессию скатываюсьТы хоть попробовал бы что-то поизучать? Не? Безделье лучше? С начала лета почти пол года прошло. А у тебя в гитхабе кода как за неделю максимум. Знаю я таких работников. Нихуя не знают, нихуя не делают, никуда не стремятся, а потом кто-то виноват им, когда руководство в очко ебет.
>>1507799Поддерживаю>>1507833Что поизучать? Спрашивай что хочешь с любых вопрос для джунов, без гугла отвечу. Я в программирование с 0я вкатился, вкатился в теоретические данные по проектированию, вкатился в пару фреймворков на сисярпе, что ещё поизучать?В 1ом говно код согласен, вчера залез пофиксить баг какой-то сам еле-еле разобрадся.2, 3, 4 с нуля с идеи сам делал.На 4ый убил примерно где-то неделю, у тебя какой-том мир слишком идеальный где джуны вкатываются с личной бордой и 5ью рабочими банковскими системами.Покажи мне хорошие джуновские проекты я посмотрю, получу опыт, постараюсь что-то такое же по качеству сделать. А у меня А - закончились идеи, Б - кончились силы самому себе выдумывать никому не нужную хуйню, а потом её делать.
>>1507772>думаю на asp.net'е опять её сделать, параллельно про wpf почитать. Зачем тебе одновременно wpf и asp.net изучать? Выбери что-то одно (asp.net) и забей хуй на второе.
>>1500288Не удивительно не теперь, почему эта ненужная хуета для даунов, появилась в божественном шарпе. Майки сжалились над умственно отсталыми и добавили.
>>1507932Для упрощения поддержки и расширения кода, для упрощения написания тестов. Как и любой из паттернов м-в серии, просто я не видел новых фреймоврков на мвц и мвп. В мвп больше писанины по сравнению с мввм, так как больше ручками приходится описывать, а с мвц я только в асп.нете сталкивался и либо он как-то не совсем стандартно там применен, либо(что скорее) я не правильно его в контексте понял.
>>1507522Можешь ещё за мьютексы и прочую поебень для синхронизации потоков пояснить? на собеседовании спрашивали
>>1507952> Можешь ещё за мьютексы и прочую поебень для синхронизации потоков пояснить?Зачем? Под Windows 98 писать код собираешься? Хотя если будет задача сделать простейшую задачу максимальным количеством строк кода и выстрелить себе в ногу во время синхронизации потоков, то Mutex идеально подойдёт.> на собеседовании спрашивалиСкажи что с 2003 года уже много времени прошло, этим говном зашкварно пользоваться в 2k20.
>>1507963Я на ASP.NET WEB Api собеседовался, а вопросы были про мьютексы, сложность алгоритмов и степени изоляции транзакций.
Я вот о чём подумал:Разве не логичнее использовать одну переменную byte, представленную в двоичном виде, вместо того, чтобы использовать восемь переменных bool? Все равно по памяти что байт, что буль занимают 1 байт.
>>1508069Так и делают, например, когда нужно хранить информацию о возможностях пользователя, например, берёшь 0000 и разбиваешь его на 0 - возможность постить 0 - возможность создавать новые темы, 0 - возможность удалять чужие посты 0 - доступ к закрытым разделам и т. п. Но в случае C# наверно лучше использовать перечисления. А считать байты это вообще полный долбоебизм, если ты хочешь писать настолько низкоуровневые программы, то тебе не С# нужен, а С++ или С
>>1508069Так делают, но это медленнее.Иногда ради производительность наоборот хранят булеаны в 32байтных переменных.
>>1507963>Зачем?А что еще есть для межпроцессной синхронизации?>>1507963>Скажи что с 2003 года уже много времени прошло,В 2020 уже не синхронизируют доступ к ресурсам? И рэйс кондишн исячез? Все пишут на Го?
>>1508113В 2k20 в тренде асинхронное программирование. Нет таких задач, когда выгоднее использовать Thread.
>>1508121А при чем тут Thread? Речь же шла про примитивы синхронизаии. Использование тасков с async/await не отменяет необходимости программисту обеспечивать потокобезопасный доступ к общим ресурсам.
>>1508155Про контекст синхронизации и потокобезопасные типы слышал? Какая ещё ручная синхронизация в 2k20? Такой ебенью уже нет необходимости заниматься. Недавно ещё и асинхронные стримы завезли, можно из другого потока в основной данные высерать без лишних телодвижений.
>>1508190>контекст синхронизацииУгу, заставить все выполняться в родительском потоке? Охуенно.>>1508190>потокобезопасные типы слышалКоторые используют теже самые мониторы, семафоры и прочее. Что там есть из потокобезопасных типов для работы с БД?
>>1508196> Угу, заставить все выполняться в родительском потоке?Кто тебе мешает передавать данные в основной поток? Контекст синхронизации вернёт данные куда укажешь.> Что там есть из потокобезопасных типов для работы с БД?Зачем? У тебя ввод/вывод асинхронный, пиши/читай из БД откуда хочешь, хоть из основного потока, он же не блокируется.И если говорить про таски, то там нечего синхронизировать. А ещё таск не обязательно будет в другом потоке выполняться, хуй знает что ты там будешь пытаться синхронизировать. Только ресурсы просрешь изобретая велосипед там, где он не нужен.
>>1508207>Кто тебе мешает передавать данные в основной поток?Вот есть у меня серв, на нем висит ~150-200 клиентов, все работают асинхронно на тасках, кто в каком потоке выполняется разруливает среда. Ты предлагаешь всем выполнятся с однопоточным контекстом? Это же ебань.>У тебя ввод/вывод асинхронный, пиши/читай из БД откуда хочешь, хоть из основного потока, он же не блокируется.Возвращаясь к серву. Ну вот два клиента сделали дело и данные должны улутеть в БД, и произошло это одновременно. Упс, все идет по пизде без синхронизации.>там нечего синхронизировать>таск не обязательно будет в другом потоке Эм, не находишь противоречий?
>>1508223> Ты предлагаешь всем выполнятся с однопоточным контекстом? Это же ебань.Так ты должен долгие задачи выполнять асинхронно, а остальное в основном потоке. Плодить потоки без нужды - вот это настоящая ебань, ещё и производительность по пизде пойдет.> Упс, все идет по пизде без синхронизации.Лол, нет. С чего ты это взял?
>>1508232>Так ты должен долгие задачи выполнять асинхронно, а остальное в основном потоке.И путь три ядра простаивают, пока одно захлебывется от мелких задач? Нет, спасибо. > Плодить потоки без нужды - вот это настоящая ебаньТаски берут потоки из пула, он их не плодит без надобности.>Лол, нет. С чего ты это взял?С того и взял. Например, если использовать EF, то есть вероятность создать две записи с одним ключем, очевидно при сохранении база будет такому не рада. Ты хоть раз писал программу, которя выполняется нелинейно и поряд дейсвий тебе неподконтролен?
>>1508232Вот еще классический пример. Попробуй закомменть лок на 25ой строке.https://dotnetfiddle.net/OH9Jgf
>>1508239> И путь три ядра простаиваютЕсли ты не понимаешь как работает await, то сходи почитай.> Например, если использовать EF, то есть вероятность создать две записи с одним ключемЭто проблемы говнокода, а не асинхронности. Опять же, читай как работает контекст синхронизации и await, чтобы не стрелять себе в ногу.> которя выполняется нелинейно> поряд дейсвий тебе неподконтроленКак из первого следует второе?
>>1508299Потому что говнокод без нормального использования асинхронности. Кто вообще так таски запускает? Естественно оно через жопу работает, ты пытаешься явно непотокобезопасно вызывать метод из другого потока.
>>1508307>Это проблемы говнокодаНу так правильно, в нормальном коде будет синхронизация.>Как из первого следует второе?Никак, это два разных свойства, на что намекает союз "и". Если б я подразумевал следствие, так бы и написал.Вобщем пердоль все через один поток, когда понадобятся сам пойдешь изучать синхронизацию но будет поздно.
>>1501032>>1501533Вы так говорите, будто это что-то полезное. Добавили костыль для дебилов которым сложно с JS перекатиться.
>>1508299Напрямую в основной поток писать - ебень какая-то, ты же его блокируешь. Лучше просто возвращай результат, вроде такогоhttps://dotnetfiddle.net/7NhmEbЭто и быстрее в разы и основной поток не блокируешь. Нормальные люди вычисления делают асинхронно, а результат получают синхронно и пишут его куда надо, т.к. профита от блокировки другого потока нет никакого. Опять же, можно возвращать промежуточные результаты, если надо. Стримить данные можно через yield, если надо сразу в другой поток передавать. Но и если уж припекло, то хотя бы Interlocked.Increment(ref counter) пиши, чтоб не вешать всё локом.
>>1508396У тебя все таски выполняются синхронно и последовательно друг за другом. Представь, что ты зашел на двач и что бы отправить пост ты ждешь в очереди, пока другие двачеры закончат работу с бордой. Не очень хорошо. Получается правильная асинхронность - её отсутствие?>>1508396>Но и если уж припекло, то хотя бы Interlocked.Increment(ref counter) пиши, чтоб не вешать всё локом.Таки да. И в итоге знать семофоры/локи/мониторы все равно надо и без них можно обосраться.
>>1508409> У тебя все таски выполняются синхронно и последовательно друг за другом.Так должна быть цепочка тасков. Суть асинхронности в том, что код выполняется параллельно, но ты контролируешь порядок выполнения. Внезапно await для этого и нужен, а не просто всё подряд через Task.Run() запускать и ебаться с синхронизацией.> Представь, что ты зашел на двач и что бы отправить пост ты ждешь в очереди, пока другие двачеры закончат работу с бордой.Так и есть в однопоточных веб-серверах. Все запросы обрабатываются поочерёдно. Для тебя это новость?> Получается правильная асинхронность - её отсутствие?Ну то что ты понимаешь под асинхронностью отсутствует, да.
>>1508418>Суть асинхронности в том, что код выполняется параллельно, но ты контролируешь порядок выполнения. Внезапно await для этого и нужен, а не просто всё подряд через Task.Run() запускать и ебаться с синхронизацией.Мда.. Суть асинхронности в том, что б не блокировать вызывающий поток (а ты .Result пишешь!). Await нужен, что бы освободить поток (а ты его не вызываешь, тебе даже иде пишет что без него все отработает синхронно) и не ебеаться с коллбэками (компилятор раскрутит async/await в машину состояний и при каждом ивенте завершения таски будет эту машину дергать). В твоем коде, если выкинуть таски ничего не изменется, все равно там нет асинхронности. Даже чуть быстрее все будет.>>1508418>Так и есть в однопоточных веб-серверах. Все запросы обрабатываются поочерёдно. Для тебя это новость?Так работают синхронные серверы.>>1508418>Ну то что ты понимаешь под асинхронностью отсутствует, да.Там её нет ни в одном из пониманий.
>>1508421> Мда.. Суть асинхронности в том, что б не блокировать вызывающий поток (а ты .Result пишешь!).А что lock делает?> Await нужен, что бы освободить потокУ тебя как с английским? await нужен для остановки выполнения текущего метода и ожидания результата таска, .Result делает тоже самое, но глобально, т.к. Main синхронный. Ты точно так же можешь вместо await написать .Start() и не ждать результата, а получить его потом через .Result, когда надо.> (а ты его не вызываешь, тебе даже иде пишет что без него все отработает синхронно)Блять. Ты читать не умеешь? Там пишется что метод помечен как асинхронный, но в нем не вызывается ни одной асинхронной операции, т.е. всё в нем выполняется по порядку. Это не значит что сам метод выполняется в том же потоке.> Даже чуть быстрее все будет.А тебя не смутило, что вариант с lock аж в 5 раз медленнее моего?
>>1508454>А что lock делает?Пускает только один поток в критическую секцию кода.>await нужен для остановки выполнения текущего методаВот именно метода, а не потока, поток освобождается>Result делает тоже самоеблокирует поток до завершения таски>Там пишется что метод помечен как асинхронный, но в нем не вызывается ни одной асинхронной операцииВо-первых нет, там написано именно синхронное выполнение, у тебя самого с английским видимо не очень. Во-вторых слово async не дает асинхронности, оно лишь позволяет использовать await. И тогда уже компилятор создаст стэй машину и скорее всего (но не обязательно) код после await выполнится асинхронно.>А тебя не смутило, что вариант с lock аж в 5 раз медленнее моего?Конечно, нет. Он другое показывал.
>>1508467> скорее всего (но не обязательно) код после await выполнится асинхронноВообще-то обязательно. Он может выполняться синхронно только до момента пока не потребуешь результат.
>>1508485Если к моменту await'а таска уже завершена, то выполнение продолжится синхронно.>может выполняться синхронно только до момента пока не потребуешь результат.Ты опять все напутал.
>>1508490У тебя логика сломана? Это таск выполняется асинхронно, код после await в любом случае синхронно выполнится.
>>1499747такой вопрос: учу уже несколько дней С#, решил начать с первой книги в списке - руководство игрока от вайтейкера, читаю на английском, прошёл больше четверти книги, но книга эта мне совершенно не нравится, т.к. автор объясняет будто бы для умственно отсталых, я намного больше времени трачу на перевод его длинных объяснений простейших вещей, чем на само обучение.Можете, пожалуйста, посоветовать другой учебник, где так же будут описаны все основы сишарпа, который подойдёт для изучения с нуля, но, при этом, не будет вызывать ощущение, что автор - мама-птичка, которая срыгивает мне, как птенцу, переваренную информацию в клюв.
>>1504190>В книге как-то высрано непонятно, плюс бывают ошибки, которые пока фиксишь теряешь нить нахуя это вообще делается.Спасибо, я из поста выше, такая же ситуация, полчаса фиксил код, в котором автор даже не удосужился объяснить новые термины. Буду знать, что читать не надо
>>1508625https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/А протухше книги не читай. Все уже на C# 8 и Core 3.0 сидят.
>>1508723Потому что это устаревшая хуета для дегенератов, которые хотят получить иллюзорное чувство того, что они изучили C#, при этом на деле не получив никакой полезной информации.
>>1508752Зачем читать двойной пересказ документации? Если ты хлебушек и не можешь прочитать документацию, то так и напиши. Попробуем отговорить дальше вкатываться, это явно не твоё.
>>1508748Читай в комментах к его главам. Но большая проблема не в устаревшей информации, а в многочисленных опечатках и кривости изложения. Мутанит словно комнатный сыч, который прочитал троелсена, хуево его понял и теперь пытается пересказать тебе, заикаясь и делая ошибки, при этом не желая эти ошибки исправлять. Вот, один из примеров (https://metanit.com/sharp/tutorial/11.3.php):>После создания потока мы передаем метод myThread.Start(number); переменную, значение которой хотим передать в поток.Что мы, блять, передаём? Метод? Может "методу"? Тогда какого хуя ты пишешь "myThread.Start(number);" - это не передача методу, это вызов метода myThread.Start с параметром number. И мы не хотим "передать значение переменной в поток", мы передаем переменную делегату ParameterizedThreadStart, которую он принимает в качестве параметра, и делаем это через метод myThread.StartИ таких опечаток/кривых изложений у него воз и маленькая тележка, при том, что всё пересказано максимально сжато, без пояснений. При этом само повествование не последовательно, почему-то о рефлексии у него речь заходит в 18 главе, а о доменах приложения только в 22.В итоге даже машинный перевод статей msdn лучше в сравнении с высером мутанита.
>>1508752От Троелсена там только примеры. И у Троелсена 1300+ страниц, а у мутанита едва 100 наберётся. Это даже на краткое содержание не тянет.
Антоны, что за хуйня?Сперва Рихтер пишет > Оператор await не может использоваться в блоке catch, finally или unsafe.Но потом я вижу вот это
Пиздец пошла мода обсирать все источники на русском. Чувак просто невнимательно прочитал предложение и сделал неправильный вывод. В результате набежали хищники со словами: "ДА ПАТАМУШТА НАДА НА АНГЛИСКАМ ЧИТАТЬ, ВОТ НА АНГЛИСКАМ ТЫ БЫ ПРОЧИТАЛ ПРАВИЛЬНО!!!".
>>1508723говно без задач. в офф документацию давно завезли интерактивные учебники. https://docs.microsoft.com/ru-ru/dotnet/csharp/tutorials/
https://dotnetfiddle.net/GXoYLdГоспода, почему так, подскажите? Почему такое определение не вызывает ошибку на этапе написания, ведь вызов метода подходит к обоим определениям?
Англ источники тоже ничем особо не лучше, прочитал вчера про контекст синхронизации и вообще нихуя не понял практически, надо перечитывать.
>>1508900Потому что если бы он читал на английском, то это было бы не устаревшее говно в виде рихтера, а какой-нибудь Троелсен, тогда бы твой чувак узнал, что асинхронные операции можно выполнять в блоках catch и finally с момента выпуска С# 6.0
>>1508999 из спеки:>Parameter lists for each of thecandidatefunction members areconstructed in thefollowing way:>Theexpanded form is used if thefunction member was applicable only in theexpanded form.>Optional parameters with no corresponding arguments areremoved from the parameter list>The parameters arereordered so that they occur at thesame position as thecorresponding argument in theargument list.Думаю в этом дело
>>1509010И как твой "гораздо более меньший уровень" понимать? Слишком подробный разбор и всё на низком уровне происходит или не достаточно деталей и мало углублений? Если нужны подробности и внутренние детали, то читать нужно Альбахири. Если для тебя Троелсен слишком низко уровневый, то тебе не программирование надо изучать, а возле зеркала тренироваться, повторяя "Добрый день, что будете заказывать?"
>>1509015>или не достаточно деталей и мало углубленийthis>Если нужны подробности и внутренние детали, то читать нужно Альбахири.Прочту, спасибо за наводку.
>>1509009а толку ему от английского варианта Рихтера, если последнее издание базируется на C#5.0 и .NET Framework 4.5
>>1508999А еще в спеке во такое есть>Otherwise, if Mp is applicablein its normal form and Mq has a params array and is applicable only in its expanded form, then Mp is better than Mq .Слишком сложно для меня. дальше сам спеки читай.
>>1508999Потому что выбираться будет метод, который более всего подходит под вызов. В данном случае "a1" будет только в том случае, если явно передавать массив из строк в качестве второго аргумента.
>>1509026>>1509020> >Otherwise, if Mp is applicablein its normal form and Mq has a params array and is applicable only in its expanded form, then Mp is better than Mq .Понятно, если вызов подходит только при раскрытии params, такой вариант автоматически имеет меньший вес. Спасибо за пояснения, аноны, я всё понял. Однако лучше бы в таком случае хотя бы предупреждение вылезало, что имеется несколько подходящих методов, но будет вызван только один конкретный.
>>1509032Может тебе еще предупреждения давать когда ты используешь логические операторы, в зависимости от их приоритета? Ситуация элементарная - если есть какое-то более конкретное определение метода, то будет вызываться оно.
>>1509032Кста, у тебя же там в обоих методах param, поэтому скорее твой случай>Otherwise, if Mp has more declared parameters than Mq , then Mp is better than Mq .This can occur if both methods have params arrays and areapplicable only in their expanded forms.Хотя, как он дойдет до этой проверки, если он отбракует метод на предыдущей. Хм.. надо еще понять что такое expanded и normal form
Здесь не хватает await перед actualimplementation(); ?Потому что компилятор пишет, что метод будет выполнятся в синхронном режиме из-за отсутствия в нём await. Если добавить await, тогда предупреждений не будет, но и теряется смысл. Если всё написано так как должно, то зачем тогда добавлять модификатор async при объявлении функции?
>>1509074В данной реализации помечать метод async смысла нет.>но и теряется смыслСмысл чего? Await тут по сути ничего не изменит (если предположить что эксепшенов не будет).
>>1509135Await сделает весь метод асинхронным, а суть в том чтобы начало метода выполнялось синхронно для того чтобы не было ситуаций когда проверка выполняется после начала задачи, а не до.
>>1509181Мы и не бульон обсуждаем, а техническую литературу. У тебя прям идеальный склад ума для работника мака - всё с едой сравнивать.
Кто нибудь может подробно описать работу алгоритма нахождения пути А*?Пилю на unity игру на основе сетки, и пытаюсь сделать алгоритм для перемещения персонажей. На данный момент есть алгоритм который находит ближайшую точку по отношению к точки финиша.
Антоны, если я хочу добавить на сайт систему авторизации и аутентификации, то мне же необязательно юзать OWIN?Есть видео с метанита, где все это делается, оно подойдёт?
>>1509623ну типа .net платформа от оконников, да и иде нормального я что-то не могу найти, слышал что для .net надо юзать только визуал
>>1509672Если писать под .NET Framework то да, придется на винде сидеть.Есть .NET Core.Качаешь .NET Core SDK. Ставишь VS Code с расширением для C#. Минус в том что под Линуксом доступны лишь Console и ASP.NET Core проекты. Как альтернатива, есть еще Rider от JetBrains, но стоит он не малых денег.
>>1509710Похоже у меня двойной обсер. То что они называют VS for Mac это бывший MonoDevelop. Санта-барбара бля.
Перестала работать навигация по коду ctrl-up,ctrl-down. Вместо перемещения курсора прокручивается лист. Как фиксить. Заебался гуглить.
>>1509175>Await сделает весь метод асинхроннымлол нет. часть до await выполниться синхронно, await там может помочь поймать исключение. если что я про await перед actualImplementation, которого в коде нет.
>>1509844Тогда бы не нужно было делать обертку в виде локальной функции, а просто написать проверку перед await Task.Run() в коде выше. Скорее всего Троелсен забыл убрать модификатор async у новой функции внтури которой лежит локальная функция, выполняющаяся асинхронно.
>>1509857>Тогда бы не нужно было делать обертку в виде локальной функции, а просто написать проверку перед await Task.Run() в коде выше. Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже.>Скорее всего Троелсен забыл убрать модификатор async Ему было лень писать return, и он отдал это на откуп компилятору.
>>1509958>и да можно сделать проверку перед Task.Run(), результат тотже.Ты английского не знаешь и пытаешься предугадать слова автора по коду?>You can (and should) add checks to the beginning of the method, but since the entire method is asynchronous, there’s no guarantee when the checks will be executed.Это комментарий к коду с Task.Run()Перевод: "Вы можете (и должны) добавить проверки в начало метода, но из-за того что весь метод асинхронный, нет гарантии того "когда" эти проверки будут исполняться">Ему было лень писать return, и он отдал это на откуп компилятору.Какой откуп, лол, какой return? Перед actualImplementation? Если его там написать, то компилятор выдаст ошибку.
>>1509985>Это комментарий к кодуЭто комментарий к методу MethodWithProblems. У тебя как с восприятием письменности?>Какой откуп, лол, какой return? Перед actualImplementation? Если его там написать, то компилятор выдаст ошибку. Ты тупой или притворяешься? Если написать ретурн, то надо убрать асинк.
>>1510204>Это комментарий к методу MethodWithProblems. У тебя как с восприятием письменности?Это и есть метод с Task.Run(), долбоеб. Теперь прочитай свой высер>и да можно сделать проверку перед Task.Run(), результат тотже.>Ты тупой или притворяешься? Если написать ретурн, то надо убрать асинк.Если убрать async то компилятор выдаст ошибку из-за того что return стоит в проверке. В общем, ты что-то высераешь, то сразу пиши, что долбоеб-вкатывальщик, чтобы люди на тебя времени не тратили.
У меня тупой вопрос. Короче, как я уже говорил, делаю сервер. Типа решил разбить на две сущности: сам слушатель и сессия, слушатель просто ждет соединения, когда получает соединение создает новую сессию - добавляет ее в словарь(id-сессия) и запускает в новом потоке метод из сессии, где идет общение, когда у сессии соединение окончено(долго ничего не просит(т.к. пока не с реальными девайсами общаюсь, а эмулирую девайсы, просто ставлю счетчик и если в цикле общения n раз пришел пакет только 0й длины, обрываю сессию) либо просто прислало пакет о том, что закончило общение), поток закрывается(ставлю флаг sessionClosed = true), на событие закрытия сессии сервер удаляет из словаря эту самую сессию, у сессии в свою очередь реализован IDisposable в котором метод Dispose вызывается при закрытии сессии.Так вот, к чему я все это. Я запустил на локальном ПК сервер и он даже без подключенных сессий жрет 9МБ оперативки. А если я эмулирую 1000 сессий(просто в отдельном проекте создаю кучу клиентов которые стучат в порт) он уже аж 130МБ съедает. Я конечно не эксперт, но разве это не много? Или для шарпа это норма?И еще, судя по статистике работы процессора, большую часть времени процессор не особо жрет ресурсы, по сути скачок происходит когда я разом 100+ сессий добавляю или решаю все сессии разом остановить, во время самого общения даже 1% не потребляется, но при этом в консоли(пока интерфейс сервера делаю в консольке) при вводе команд во время какой-то операции заметна задержка, в связи с этим у меня возникла мысль, что я, наверное что-то делаю не так. Думал что для каждой сессии делать отдельный поток - неправильно, но пробежавшись по нескольким книжкам, увидел, что там примерно так и делают. Короче, жду советов мудрых и может быть книжек, где будет на нормальном примере показано как нормальный сервер пишется, а не очередное: Ну, бесконечный цикл где при подключении мы получаем сообщение, делаем его большими буквами, отсылаем обратно, закрываем соединение и ждем нового подключения.
>>1510227>жрет 9МБ оперативки. А если я эмулирую 1000 сессий(просто в отдельном проекте создаю кучу клиентов которые стучат в порт) он уже аж 130МБ съедает.> Я конечно не эксперт, но разве это не много?Ты из какой мухосрани вещаешь, что для тебя 9 и 130 мб это много?
>>1510248И зачем ты это высрал, дебилоид? Можно полностью метод переписать, вот только сути написанного в книге это не изменит.
Есть ли смысл обмазываться wpf в 2019 году? На работе немного используется, но я только самые основы ухватил и просто пизжу код со стака, с горем по полам его переписывая. Может стоит овладеть им на нормальном уровне?
>>1510249Из глубокой. 100к населения.Но не в этом же суть. Просто мне кажется, что ну не должно быть так, что всего 1000 клиентов, которые отправляют пакеты по 10КБ, их сервер обрабатывает и шлет ответ уже жрут 100+МБ оперативки, а в будущем эта хрень должна минимум 100к клиентов на одном сервере поддерживать, даже если увеличение потребления памяти будет линейным, это все равно буде 10+гигов.Мне кажется, что я где-то наговнокодил, а ведь по сути еще ни СУБД не присобачил, ни логирования какого-то не сделал, ни интерфейс не запилил, ни всего остального не сделал. Так вот продолжу и будет эта хреновина кучу памяти жрать и тормозить.
>>1510261> даже если увеличение потребления памяти будет линейнымТак ты посмотри, линейное оно или нет. Скорее всего нет, потому что мусоросборщик начнет просыпаться чаще.
>>151026110 гигов на 100к человек это дохуя по твоему? Ну тогда пиздуй из треда в тред байтоебов на плюсах писать
>>1510255Я не спрашивал зачем там async, я спрашивал есть ли опечатка в книге и если есть, то в каком месте.
>>1510261>https://habr.com/ru/company/microsoft/blog/473172/>В наших тестах один экземпляр Standard_D1_v2 в Azure (1 vCPU, 3,5 ГБ памяти) мог обрабатывать более 5000 одновременно работающих пользователей без снижения задержки.>Экземпляр Standard_D3_V2 (4 vCPU, 14 ГБ памяти) обрабатывал более 20 000 одновременно работающих клиентов.
Блять, сярписты, посоветуйте как быть.Устроился на работу .NET разрабом. Работаю уже 2 неделю. Собеседовали на C# + ASP.NET + SQL Паттерцы-хуятерны, солид, кишочки шарпа. В итоге, насколько я понял, мне придется поддерживать код на VB.NET + ASP.NET Legacy + работа с SVN и Jira. На шарпе там только новые проекты, и я понимаю что быстро меня туда не пустят.Я понимаю что обосрамс, и надо перекатыватся. Но даже если отработать там пол года - год кушац хочеца, я могу претендовать на зп не как у человека с 0 опытом шарпа? Чисто за счет прокачанных софт скилов и вообще опыта коммерческой разработки? За условия что я буду пилить свои проекты на шарпах.
>>1510275Чего ты ожидал?За бугром сложные схемы отлова кадров на которые влияют еще сотрудничества института по контрактам с мсТы выучил это говно находясь в рамках мертвого .net рынка с аутсорсящими белонегроидными шарашкими конторамиНаслаждайся своей энтерпрайзной коммерческой разработкой, вряд ли найдешь лучше
>>1510275>я могу претендовать на зп не как у человека с 0 опытом шарпаЧто ты как маленький, на новой работе будешь рассказывать, как архитектором работал на этой.
Чем .Net отличается от .Net Core, особенно Asp.Net? Хочу галеру сменить, а вакансии почти все коровские. Что почитать или посмотреть?
>>1509074> зачем тогда добавлять модификатор async при объявлении функции?>>1510271>Я не спрашивал зачем там async,Шизик, успокаивайся.
Может кто-нибудь объяснить как в ASP.NET, RESTfull подход применять. Выставление на странице input formmethod="delete" и атрибута HttpDelete в контроллере не помогает. Вроде бы надо AJAX для посылки форм надо юзать, но я в душе не ебу и нагуглить что-то вразумительное с примерами не могу.
>>1510420И зачем ты из контекста вырываешь, шизик? При этом ты его убрал и переписал тело метода добавив хуеты, очевидно, что автор книги бы это заметил и опечатки там либо нет, либо она в чём то другом.
>>1510339У Кора упор на кросплатформенность и веб-приложения, а .Net это вообще всё что связано с .Net, те и core и framework
>>1510442Это называется соглашением об именовании. Всё кроме локальных переменных, имён полей и аргументов метода пишется с прописной буквы в ПаскальКейсе, эти три пишутся в камелКейсе со строчной.
Бля, Антоны, мне ответили, теперь придется повторять ебучий джаваскрипт и sql.Как думаете, знаний из современного учебника javascript хватит, чтобы пройти собеседование?
>>1510477Ты ничего о соглашениях не писал, будто это майкрософтская прихоть придерживаться подобных соглашений. Большинство внутри майкрософт посчитало, что так удобней и читается лучше, также как и в других случаях с подобными соглашениями.
Если я хочу написать базовый запрос на LINQ, а потом вызывать его обновляя результаты, как это сделать? Мне кажется что он при первом вызове выполнится, данные загрузятся в память и будут оттуда тянуться, несмотря на изменения в БД.
>>1510491Именно поэтому все linq запросы выполняются отложенно. Каждый раз перечисляя какое-либо перечислимое, которое состоит из linq запроса, ты получаешь обновленные данные.
>>1510491+ если хочешь зафиксировать результат, то нужно вызывать преобразовательные методы вида .ToList()/.ToArray()
>>1508629При этом опу никто не советует что-либо заменить. Но как обосрать - сбегается толпа экспертов мирового уровня.
>>1510521ОП смешал говно с годнотой, он мутанита то только недавно убрал, не смотря на то, что только редкостный говноед не высказывался о его хуевости. Я и сам стал жертвой мутанита, начав с него, но ничего, плохой опыт тоже опыт, теперь хотя бы есть с чем сравнить.
>>1510528Посоветовали и убрал. В остальном все сидят с кривым еблетом и морщатся, при этом ничего дельного предложить не в состоянии. Вы вообще опа не теребите лишний раз, уже забыли как пару лет шапка была из ШАРП ТРЕД и рандомной пикчи? Авось уйдёт от вас, будете потом эту платину (сап что прочесть ньюфагу) каждый день читать с горящей жопой. Алсо не понимаю гона на ментанит, никто же не заставлял его читать. Просто было написано вот есть такой сайт, посмотри.
>>1510531>Посоветовали и убрал.Советовали 100 раз, убрал только на 101, все поняли, что советовать смысла нет. Не малую роль играет то, что тут этих "всех" 1.5 анона. >Алсо не понимаю гона на ментанит, никто же не заставлял его читать. Просто было написано вот есть такой сайт, посмотри.Так сразу ссылку на гугл вставляй с запросом "C# books, tutorials", почему нет? Советы на то и советы чтобы отсеивать говно, а "вот есть такой сайт, посмотри" ничего о материале не говорит, особенно для новичка, который ничего до этого не читал. > Вы вообще опа не теребите лишний раз, уже забыли как пару лет шапка была из ШАРП ТРЕД и рандомной пикчи? Другого от анимешника ожидать и не приходится. После подставы с мутанитом мне вообще похуй на шапку, я просто захожу на https://libgen.is/, ищу материал по теме и самостоятельно выбираю.
Бля, кому вообще не похуй на шапку, вы серьезно ей пользуетесь, для кого она существует?Все нормальные посоны уже давно знают про учебники и годные ресурсы.
>>1510539ОПу и его ЧСВ, а также вкатывальщикам, которые верят, что на дваче могут посоветовать что-то полезное.
И, кстати, чем метанит так плох? Если нужно освежить знания по какому-нибудь говну, то почему бы и не почитать его?У Троелсона из книги в книгу копируется одно и тоже говно, есть разбор CLI, сам мутанит больше похож на книжку того Шилдта. В том же Троелсоне разобрано вообще не все, про отражение сказано мало, так что читайте Рихтера.
>>1510467Ну шизик. Нет там опечатки, читай по буквам, если тяжело воспринять сразу. Async там нужен только для того, чтоб не писать ретурны. Как сделать тоже самое, но без асинка, а с явными ретурнами я тебе показал, раз для тебя это оказалось слишком тяжело.
>>1510542Из треда в тред пишут почему мутанит говно, даже в этом треде написано почему он говно, но долбоебы (а скорее долбоеб) продолжает спрашивать "ЧЕМ МЕТАНИТ ПЛОХ!?!?!?!".>У Троелсона из книги в книгу копируется одно и тожеИ добавляется новое. Чем это плохо? Он объясняет всё хорошо и без лишних подробностей, именно поэтому с него и нужно начинать, после него у тебя в голове останется хороший пакет знаний, благодаря которым можно переходить на более детальное изучение и начинать делать свои проекты. >В том же Троелсоне разобрано вообще не все, про отражение сказано малоТо ли дело мутанит, да? С его "изучаем с# за 5 минут, все области". Чего там тебе мало? Обрисовано что это, показаны примеры использования. При этом он чуть ли не в каждой главе пишет, что можно и нужно заглядывать в офф. документацию майкрософтов, если ты хочешь узнать что-то более подробно. >читайте Рихтера.Сейчас бы в быстроразвивающемся мире IT советовать говно мамонта шестилетней давности. Не удивительно почему у тебя метанит подозрений не вызывает.
>>1510547>И добавляется новое. Чем это плохо? Он объясняет всё хорошо и без лишних подробностей, именно поэтому с него и нужно начинать, после него у тебя в голове останется хороший пакет знаний, благодаря которым можно переходить на более детальное изучение и начинать делать свои проекты.Читал еще год назад какую-то версию Троелсона, по сравнению с Рихтером он очень поверхностен, не вижу какой-то особой разницы с метанитом, кроме разбора CLI.>Чего там тебе мало?Я давно уже разбирался в этом дерьме, сейчас уже не вспомню, про что там Троелсон не написал. Но если хочешь, чтобы я полез в залупу, то сейчас могу пройти по тредам и отписать.>Сейчас бы в быстроразвивающемся мире IT советовать говно мамонта шестилетней давности.Зато оно сделано подробно, да и в языке не произошло чего-то особого, что делает Рихтера неактуальным, разве что выход .Net Core, но мне норм, ибо я к нему не прикасался и не собираюсь, пока разработка ведется не на нем.
>>1510551Да и не только отражение, Троелсен не рассматривает, как работают делегаты изнутри, у него мало про уборку мусора написано, про строки, про асинхронку и многопоточку.Этого даже для джуна не хватит по факту.
>>1510551>не вижу какой-то особой разницы с метанитомРазница в детальном объяснении, последовательности, отсутствии перепрыгивания с темы на тему, а также отсутствии желания рассказать всё на 5 страницах текста.>Зато оно сделано подробноДля подробного есть Альбахири, как раз его и нужно читать после Троелсена. >да и в языке не произошло чего-то особогоПроизошло C# 6.0, C# 7.0, а это кортежи, оператор is, switch по типам и с условиями when, локальные методы и еще куча годноты о которой твой Рихтер и не знал. >ибо я к нему не прикасался и не собираюсь, пока разработка ведется не на нем.Вот и приходим к действительному предназначению Рихтера - книга для будущих ковырялщиков легаси кода, который этот код улучшать не собираются. >как работают делегаты изнутриИ правильно делает, зачем новичку эта информация, особенно когда есть события и лямбда-выражения о которых будет полезнее знать, чем о том как внутри работают делегаты. При этом у него есть рассмотрение самого IL и упоминание ildasm, которые дадут почву для изучения всех внутренностей, если ты этого так хочешь.
>>1510551>в языке не произошло чего-то особого, что делает Рихтера неактуальным, разве что выход .Net Core, но мне норм, ибо я к нему не прикасался и не собираюсь, пока разработка ведется не на немOverдохуя вакансий на .NET Core 2.0+, рыночек перевернулся на Core, все перепиливают актуальные проекты под Core. И только анону на дваче это нахуй не надо, ибо его контора пишет на монолитном фреймворке. А когда легаси сгорит и его попрут из конторы - тогда и познакомится с Core. Наес
>>1510555>Произошло C# 6.0, C# 7.0, а это кортежи, оператор is, switch по типам и с условиями when, локальные методы и еще куча годноты Учится за день с одной рукой в трусах.>Вот и приходим к действительному предназначению Рихтера - книга для будущих ковырялщиков легаси кода, который этот код улучшать не собираютсяПросто ни с чего сделал вывод, ведь главное говном мазнуть.>И правильно делает, зачем новичку эта информация, особенно когда есть события и лямбда-выраженияЭто и у Рихтера разбирается.И новичку, видимо, не нужно знать про SynchronizationContext, встретит он ConfigureAwait(false) и все, иди кривую статью на MSDN ковыряй.>При этом у него есть рассмотрение самого IL и упоминание ildasm, которые дадут почву для изучения всех внутренностей, если ты этого так хочешь.Да, охуенно, что-то уровня указания на msdn
>>1510546Какие ретурны, долбоеб? Если убрать async и добавить return Task.CompletedTask и return actualImplementation(), функция будет возвращать Task от actualImplementation, в случае если всё оставить так как есть в книге, будет возвращаться Task функции MethodWithProblemsFixed, никто за тебя "ретурны" дописывать не будет. Зачем ты вообще продолжаешь срать себе в штаны, если написал, что MethodWithProblems и MethodWithProblemsFixed ничем не отличаются?
>>1510537Ух какой у нас бомбящий шизик в треде завёлся. Не иначе как тебя ментанит в жопу выебал в детстве. Иначе и не обьяснить этого хейта.>Советовали 100 раз, убрал только на 101, все поняли, что советовать смысла нет. Советовали РОВНО 1 раз в 4 треде, в 6 уже ссылки небыло. До этого были единичные посты "Ой чот мне лично ментанит не нравится". Хотя тут таких постов сотни про любой ресурс. Возьми хоть дебила который Visual Studio хейтил потому-что на мак не мог ссылку найти. Оп таких дятлов не слушает, я тоже и тебе советую.
>>1510565>Просто ни с чего сделал вывод, ведь главное говном мазнуть.Вывод сделан с того, что на момент написания рихтера был только C# 5>Учится за день с одной рукой в трусах.Сразу видно юного падавана мутанита. У того весь C# за один день с рукой в трусах учиться.>И новичку, видимо, не нужно знать про SynchronizationContext, встретит он ConfigureAwait(false)Для этого и есть книги за авторством Альбахири, от которых не воняет стариками типа рихтера. И новичку это действительно не нужно, новичку такая информация только помешает, потому что он на ней зависнет. >иди кривую статью на MSDN ковыряй.Проблемы быдла, который в 2к19 не знает английского, никого не волнуют, это правда. >Да, охуенно, что-то уровня указания на msdnЭто уровень последовательного и уместного повествования. Сначала читаешь Троелсена, потом читаешь Альбахири или про какие-то конкретные области, которые тебя интересуют.
>>1510570>Не иначе как тебя ментанит в жопу выебал в детстве.Может это он тебя выебал и сейчас у тебя Стокгольмский синдром из-за которого ты из треда в тред его защищаешь? >Советовали РОВНО 1 раз в 4 треде, в 6 уже ссылки небыло.Его тут каждый тред засерали, либо упоминали его в ироничном контексте, но у тебя то конечно всё учтено, прям до раза. Наверно и номера постов записаны, лол. Я даже лично расписывал по полочкам, тыкал носом в дерьмо метанита, но после этого он продолжал висеть в шапке.Хотя понятно, ведь любой совет можно списывать на "Ой чот мне лично ментанит не нравится", а потом еще и в пример какие-то случае с макоглиномесами приводить.
>>1510578>ты из треда в тред его защищаешь?Лул, я вообще впервые в треде про него пишу. Как впрочем и вообще впервые за 4 треде тут что-то пощу. Но видать тебе говна в жопу капитально залили, раз такая реакция. И видать каждый тебя спрашивает чё ты так бомбишь от него. А ты и перестать не можешь бомбить, видать от того что необучамый. >Его тут каждый тред засерали, либо упоминали его в ироничном контексте, Пруфы ты конечно не сможешь првести, ай как жаль...>но у тебя то конечно всё учтено, прям до раза.Ахуеть расчёты досчитать до одного! Рокет саенс, не иначе.>лично расписывал по полочкам, тыкал носом в дерьмо метанита, но после этого он продолжал висеть в шапке.Если ты это не писал ответом в оп пост - какие претензии? Ну бомбит кто-то про то что сайт не нравится. Бомби дальше, может тебе бомбить нравится, я не осуждаю.А вообще я не понимаю к чему ты этот срачь устроил снова. Метанита в шапке нет уже несколько тредов, а жопа у тебя по прежнему горит. Может быть дело всё-таки в тебе?
>>1510576>Сразу видно юного падавана мутанита.Ох лул, я в разработке уже 2 года и таки нововведения учил за день.>У того весь C# за один день с рукой в трусах учиться.Чувак, после этого тебя только нахуй послать можно, зачем ты кривляешься и пытаешься переврать мои слова? Тебя мама не учила правилу вежливой дискуссии или ты тут типа траллишь?>Для этого и есть книги за авторством Альбахири, от которых не воняет стариками типа рихтера.Бля, ну это уже вышка, Рихтер старик, а значит хуевый.Вот это аргументация.>Проблемы быдла, который в 2к19 не знает английского, никого не волнуют, это правда.>БЫДЛА НЕ ЗНАЕТ АНГЛИЙСКИЙ, АРЯЯЯНе, дите, ты меня уже смешишь, под кривой статьей на MSDN я подразумевал хуевую статью, внезапно, никаких указаний на то, что она хуевая, потому что написана на английском нет.>Сначала читаешь ТроелсенаТочно с такой же эффективностью сначала можно читать метанит, пиздецовой разницы нет.Говорю как человек, что читал и Троелсона и метанит и Рихтера и даже Албахари, которого ты считаешь очень подробным, хотя по факту это не так.
>>1510584>спрашивает про мутанита>продолжает рассуждать о нём>А вообще я не понимаю к чему ты этот срачь устроил сноваТы сам с собой разговариваешь что ли?
>>1510589>ОП смешал говно с годнотой, он мутанита то только недавно убрал, не смотря на то, что только редкостный говноед не высказывался о его хуевости.>Ну ты же сам спросил про мутанит!Тебе только галоперидол. Остальное уже не поможет.
>>1510590Мутанит это единственное, что ОП убрал, поэтому я его и упомянул, при этом это самый яркий пример говна о котором говорили много, но долго не убирали. Но ты конечно можешь выдумывать шизиков у себя в голове и приписывать это им.
>>1510569>если написал, что MethodWithProblems и MethodWithProblemsFixed ничем не отличаются?Пруф? Или опять шиза играет?>>1510569>"ретурны" дописывать не будет. Вот тут >>1510204 я тебе не просто так второй пик прикрепил.
>>1510587И вообще смешно, когда человек общается на уровне 13-летней залетухи из /b, но зато он АНГЛИЙСКИЙ выучил, а все, кто его не знают, они БЫДЛО, вот он особенный, ибо смог кое-как выучить один из легчайших языков.Козырял бы ты китайским или японским, то я бы еще это понял, но для изучения английского вообще никаких усилий прикладывать не надо.
>>1510593Пошли манявры. Ещё раз тебе шизику говорю, что ты сперва САМ его начал в треде форсить, потом сам же бомбанул от него, а потом ещё и попытался на меня стрелку перевести, мол это я его упомянул. Хуя ты шизик! >Мутанит это единственное, что ОП убрал, поэтому я его и упомянулЕщё раз тебе вопрос повторю, его убрали. Какие у тебя ещё блядские претензии ебобо? >при этом это самый яркий пример говна о котором говорили много, но долго не убирали. Что-то я захожу в прошлый тред и не вижу чтобы что-то просили убрать ещё. Видать это всё в твоём манямирке было. Говорят такое бывает когда ты шизойд.>Но ты конечно можешь выдумывать шизиков у себя в голове и приписывать это им.Ясно.
>>1510596Выгоните вообще этого шизика из нашего уютного тредика, не нравится шапка - пусть пишет свою. Хотя, блджад, кого она вообще ебет, можно и без нее, но пусть будет, если кому-то удобно
Тем кто не шизик я напоминаю что ОП СПЕЦИАЛЬНО создал >>1482359 пост. В котором всего 2 ответа. Вот и вся предложка. >>1510598Он тут в качестве анона который генерирует срачеконтент вокруг которого держится общение. Так как мы на дваче, такое поведение привлекает посетителей в тред. Адекватные аноны пьют чай и общаются друг с другом вежливо. А кому скучно может подразнить шизика и получить интересные посты в ответ. Ну разьве не милота?
>>1510601>Ну разьве не милота?Ну свое собственное цирковое животное - это может и хорошо, но поскольку я к вам не так часто заглядываю, ибо вопросов у меня обычно нет, то смотрите сами.Всех благ.
>>1510607Заглядывай почаще. Тут иногда такие тёплые беседы ведутся, что даже и просто почитать бывает интересно.
>>1510594>Пруф? Или опять шиза играет?>Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже.И вот еще относительный высер>Await сделает весь метод асинхронным //из моего поста>лол нет. //твой высерТроелсен пишет, что оборачивать в локальную функцию нужно для того чтобы разбить метод на синхронную и асинхронную часть, но долбоебу с двача, конечно, виднее. >Вот тут >>1510204 я тебе не просто так второй пик прикрепил.Может ты наконец перепишешь пример из книги и перестанешь выставлять свою тупость на показ? Ты написал return перед внутренним таском, который оборачивается в примере в локальный метод, говоря о том, что если оставить async, то этот return допишет за тебя компилятор. На деле при async он допишет его не перед локальным методом, а в конце метода MtethodWithProblemsFixed. Поэтому твой высер про "лень было прописывать ретурны" выглядит более чем нелепо.
>>1510596Ясно. Шизик любой пост с упоминанием метанита воспринимает как крясную тряпку и теряет его суть. Я мутанита как пример привёл, но у шизика почему-то пример превратился в претензию, лол. Еще и форсы какие-то придумал. Как я уже писал, мне похуй на шапку, можешь вернуть туда своих мутанитов и одноклассников, это не отменит того факта, что твой мутанит редкостное дерьмо.>Что-то я захожу в прошлый тредА, ну раз в прошлом треде нет, значит никогда не было. 10 из 10 логика, долбоеб.
>>1510664>Как я уже писал, мне похуй на шапку>Нет, тя не понял мне похуй>Посмотри вот на этот и ещё 24 поста о том как мне похуй
>>1510671>шизик понял, что обосрался и перешел на бессмысленный гринтекстПочему без боевых картиночек? Или может еще одним монологом вроде этого >>1510601 >>1510607 >>1510616 порадуешь?
>>1510680>Гринтекст не имеет смысла>Я не шизик, это ты шизик>А ещё ты семён>А ещё я скажу про картиночки чтобы было типа я олд>Я не шизик>Ну мааааааааам скажи им
А можно, кстати, пруфы к этому?>Вы можете (и должны) добавить в начало метода проверки, но поскольку весь метод является асинхронным, нет никакихгарантий, что такие проверки выполнятсяЕсли я впишу код проверки перед await Task.Run без этого вашего локального метода, то по идее все выполнится, так как стейт машина следит за последовательностью выполнения.
>>1510703Я, если честно, не понимаю проблемы.По идее и в самом таске можно впихнуть проверку данных и отменить операцию.
>>1510706>>1510703Короче, пока кто-нибудь не пруфнет, что проверка как на пике не сработает будем считать, что Троелсен написал хуйню.
>>1510660Ты снова обосрался. Ищи быстрей свой галоперидол.>Await сделает весь метод асинхронным <-твое>лол нет. <-мое>разбить метод на синхронную и асинхронную часть <-троелсенВидишь ли весь метод асинхронный (твое) и разбить метод на 2 части (троелсен), это разные вещи, потому я и написал нет (мое). Так, что это ты прешь против троелсена.>MethodWithProblems и MethodWithProblemsFixed ничем не отличаются <- ты приписал это мне>Локальна функция не причем, и да можно сделать проверку перед Task.Run(), результат тотже <- то, что я писалКак ты перешел от одного к другому не понятно. MethodWithProblems не делает проверок и валится в асинхронной части, метод MethodWithProblemsFixed делает проверку перед аинхронной части и он не валится. Этого можно добиться по-разному. Это и написан в приводимой тобой цитате.>>1510660>На деле при async он допишет его не перед локальным методом, а в конце метода MtethodWithProblemsFixed.Ты все еще еще не понимаешь чем разговор и во что компилятор разворачивает async/await. Да я и не писал куда компилятор вставит ретурн (это было на скрине), я показывал куда вставлять ретурны, если писать без async. Не путай меня со своими голосами в башке.
>>1510703>>1510706>>1510731Да по-разному можно проверить. Тем более тот пример не из главы про асинхронность, а про локальные методы. Плюс если делать метод с авэйтом, то еще и нормальный проброс ексепшона получишь. Но как я написал, там пример не про это.>>1510740нет неявного преобразования из дабл в инт. Либо приводи явно, либо пусть метод дабл возвращает.
>>1510740Разобрался. Число было вставлено из калькулятора (стандартный Windows 10), и он вставил в результат непечатаемые символы. Пришлось перепечатать всю строку, чтобы заработало.>>1510745> нет неявного преобразования из дабл в инт.Нет, он остановился на проблеме с отсутствующим ;. До преобразования даже не дошел.
>>1510750Спасибо, глюк оказался чуднее, чем я думал. Никогда такого ещё не встречал, но поимею в виду.
>>1510745>Но как я написал, там пример не про это.В любом случае, то, что он написал, что из-за того, что метод асинхронный проверка может не выполниться - это пиздеж.
>>1510745>Тем более тот пример не из главы про асинхронность, а про локальные методы.Это глава как раз про многопоточку и асинхронность и находится оно как раз в части с асинхронкой.>Плюс если делать метод с авэйтом, то еще и нормальный проброс ексепшона получишь.Где автор это сам указал? У него конкретно написано, что юзать локальный метод нужно из-за того, что проверка может не выполниться в силу асинхронности метода.Это неправда.Вот и читай вашего Троелсена после такого.
>>1510793Вот что значит отсутствие пояснения про StateMachine.Этот делегат в Task.Run никоим образом не может выполниться раньше проверки, никакой экзепшен тут не будет выбрасываться, поскольку выход из метода произойдёт прямо во время проверки.Вообще, эти локальные методы сомнительная штука.
>>1509175>а суть в том чтобы начало метода выполнялось синхронно для того чтобы не было ситуаций когда проверка выполняется после начала задачи, а не до.Этого вообще никак не может произойти.
Шарпаны, чому вы переменные и методы обзываете английскими словами? Неудобно же читать потом. Вот просто посмотрите на прикриплейд. Все ясно-понятно, не нужно пытаться вспомнить что значит какое-то слово и ты можешь даже без комментариев кодом пользоваться. Да и запомнить неймеспейсы, названия классов намного проще. Вот просто сравни:StreamReader и ПотоковыйЧтец. Вот сразу же понятно что оно делает.Надеюсь в будущем кто-нибудь сделает русскоязычную обертку для всего .Net, чтобы человек не тужился вспоминать: "Что это за Dictionary такой?", а сразу понимал: "Ага, словарь, сейчас в него запишу что-нибудь".
>>1510844Ну, знаешь ли, когда ты оказываешься в команде, где куча бывших джавистов, сишников и пару человек с асмом и все вы вместе пилите на шарпе, получается такая вот фигня, что джавист привык Map писать и к каждому словарю дописывает Map, UserMap, ClientMap, ListnerMap, а тебе нужно каждый раз из-за этого наводить мышкой чтобы понять что это Dictionary<>, сишник думает что писать что-то в духе "ctr1()"- круто, даже в шарпе и т.д. Писали бы по русски, не приходилось бы даже задумываться о том что это значит. Ну или хотя бы писали одинаково нет, каждый хуй хочет частичку себя, блядь, оставить и чтобы все потом охуели пытаясь понять, что за говно он там понаписал и как, а главное почему, оно вообще работает.
>>1510743>Видишь ли весь метод асинхронный (твое) и разбить метод на 2 части (троелсен), это разные вещи, потому я и написал нет (мое). Так, что это ты прешь против троелсена.Троелсен тоже пишет, что так как весь метод асинхронный, то нет гарантии того, в какое время будет выполнена проверка, поэтому мы делаем асинхронный метод внутри синхронного. > MethodWithProblems не делает проверок и валится в асинхронной части, Долбоебина тупорылая, троелсен пишет, что можно добавить проверку и в первый метод, но раз он весь асинхронный, то ... идёт то о чём я написал выше. Именно это там и написано. >Да я и не писал куда компилятор вставит ретурн (это было на скрине), я показывал куда вставлять ретурны, если писать без async. Не путай меня со своими голосами в башке.Ну да, на скрине одно, а писал ты совсем про другой. В голосину, тебе самому не смешно от своих нелепых оправданий?
>>1510804Троелсен называет такие ситуации одной из причин, по которой ввели локальные методы. Но вот не задача, Троелсену с его 20-ти летним опытом, про стейтмашин не пояснили оказывается. Не перестаю проигрывать со всезнающего анона.
>>1510827Троелсену это скажи. Он два примера разных приводит, но оказывается этого никак произойти не может.
>>1510853>Троелсен называет такие ситуации одной из причин, по которой ввели локальные методы. Но вот не задача, Троелсену с его 20-ти летним опытом, про стейтмашин не пояснили оказывается.Начнем с того, что ты тупо отсылаешь к авторитету Троелсена, что демагогия и вообще не аргумент.А теперь тебе вопрос, знаешь, чем отличается await Task.Run от обычного Task.Run?
>>1510854Окей, скажите мне, как с ним связаться.Вот вам, блядь, пример.Если я напишу await Task.Run, то такой случай невозможен.А знаете почему? Потому что стейтмашина сохраняет порядок вызова кода.
>>1510856Тебя уже выше по этому поводу обоссали, ты всё никак не угомонишься и за второй порцией лезешь? Прислушайся к этому >>1508506 посту и прекрати срать в тред.
И еще, это даже не только я могу подтвердить, но и обычный пример со стаковерфлоу, где человек говорит тоже самое, причем даже не один человек, а два.У них тоже проеб по всем фронтам, просто надо читать нормальную литературу, а не Троелсена. https://stackoverflow.com/questions/37360905/what-is-the-difference-between-task-run-and-await-task-run>The difference between them, is that in the first example, when Task.Run returns the code which immediately follows that line gets executed immediately(provided no thread switch happened). And in the second example the lines which follow await get executed only when LongOperation completed on some thread provided by the thread pool(DoWork immediately returns when it encounters await).Да и вообще, что это за аргумент ссаный, ты либо нормально Анону ответь по факту, либо не выебывайся.
>>1510866Да, чувак, мне есть охуенный смысл лезть в фотошоп, чтобы убедить шизика в треде, что я не Семен.По факту давай приводи пруфы, что Троелсен не обосрался.
>>1510865>речь про локальные функции и проверки в асинхронных функциях>долбоеб тащит стэковерфлоу с Task.Run и await Task.Run>ПАЧИМУМНЕНАРМАЛЬНА НИАТВИЧАЮТ МАААМ СКАЖИ ИМ!! ТРОИЛСИН ЛОХ!!!В голосину. Почему ты перескочил с асинхронной функции и локальных функции на await, хотя про него никто и не говорил и не спрашивал? Был скрин из книги авторитетного автора, был конкретный вопрос. Зачем ты сюда лезешь со своей обосранной сракой и своим "вы нихуя не понимаете, троелсен говно, верьте моему шизобреду"? Ты либо опровержение делай, подкрепляя авторитетными источниками, либо нахуй иди и не засоряй тред.
>>1510868> Был скрин из книги авторитетного автора, был конкретный вопросАвторитет автора хуйня, нужно все по факту проверять.>Почему ты перескочил с асинхронной функции и локальных функции на await, хотя про него никто и не говорил и не спрашивал?Вообще-то про await говорилось в самой книге Троелсена, у него вызывается делегат через await и сказано, что проверка может выполниться после.Я же привел пример со стаковерфлоу, где еще два человека, кроме меня, поясняется, что функция вызванная через await выполняется в том порядке, в котором она написана, что как бы подразумевает, что выполниться до какого-либо синхронного кода она не может.Но тебе, великому чтецу Троелсена, такая логика вообще непостижима видимо.
>>1510872И я могу закинуть пруфов, просто прочитайте то, как работает конечный автомат и сразу все станет ясно.
>>1510872>через await и сказано, что проверка может выполниться после.Да, потому что await делает эту функцию асинхронной, долбоебина ты тупорылая, если ты не используешь await в функции, то она не будет асинхронной. У него и говорилось про то, что в асинхронной функции тебе не известно когда произойдет проверка, поэтому нужно оборачивать ту часть, в которой нет проверки, в локальный метод, а проверки делать в оставшейся части, которая выполняется асинхронно. В том, что ты привел говорится о том, что выполнение кода не будет происходит дальше await до выполнения задачи которая следует после этого оператора, что вообще никакого отношения к написанному в книге не имеет.>>1510876Ты так сразу и скажи, что ничего не понял из того что на твоих скриншотах. Еще и в русике всё, а пытаешься на английском что-то читать. Оно и понятно откуда такие пробелы.
>>1510878>если ты не используешь await в функции, то она не будет асинхроннойВерно.>У него и говорилось про то, что в асинхронной функции тебе не известно когда произойдет проверка, поэтому нужно оборачивать ту часть, в которой нет проверки, в локальный метод, а проверки делать в оставшейся части, которая выполняется асинхронноТы сам себе противоречишь, в асинхронной функции неизвестно, когда произойдет проверка Хотя непонятно, с чего Троелсен это взял, но проверки надо делать в асинхронной части функции и после нее вызывать синхронно функцию из которой вызывается асинхронно делегат.>В том, что ты привел говорится о том, что выполнение кода не будет происходит дальше await до выполнения задачи которая следует после этого оператора, что вообще никакого отношения к написанному в книге не имеет.Нет, имеет, поскольку показывает свойство statemachine.>Еще и в русике всё, а пытаешься на английском что-то читать. Оно и понятно откуда такие пробелы.Ох лул, доказывай, что русский перевод хуев в этой части или получай мою струю урины.
>>1510916>>1510881Дегенерат умственно отсталый, вопрос был по книге и почему Троелсен так написал. Зачам ты сюда со своей хуйнёй лезешь? Если бы я этого не знал, у меня бы и не возникло никаких вопросов, я бы прочитал и пошел дальше.
>>1510850И как это решает перечисленные тобой проблемы? Джавист будет писать КлиентКарта, шарпист будет наводить мышкой чтобы понять что это Словарь<>. Сишник будет думать что хуй1() – это круто.
>>1510947Я просто надеюсь на то, что на русском они будут таки руководствоваться здравым смыслом при именовании, а не привычкой. В кодинге же такое дело: тривиальные задачи, коих 95% от работы, люди пишут на автомате, как привыкли. Если заставить всех резко писать на русском, они вынуждены будут хотя бы на секунду задуматься о том, как нужно обозвать переменную и, возможно, таки разум возьмет верх и человек напишет: СловарьПользователи. А потом это войдет в привычку, но уже будет более-менее понятно, что какой кусок кода делает.
>>1510934>вопрос был по книге и почему Троелсен так написалТроелсен хуйню написал про то, что асинхронный метод может вызваться до проверки, я даже уже код скомпилировал, чтобы показать, что такого быть не может.Либо я как-то неверно понимаю случай, когда порядок может измениться и проверка может выполниться после метода, тогда дайте пример такого кода.
>>1510979Создаешь CancellationTokenSource, передаешь из него .Token в метод который нужно остановить, добавляешь в цикл метода либо проверку .Token.IsCancellationRequested, либо .Token.ThrowIfCancellationRequested() , в останавливающем методе при необходимости вызываешь .Cancel у объекта CancellationTokenSource.
Стоит ли читать вот это https://www.introprogramming.info/wp-content/uploads/2013/07/Books/CSharpEn/Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013.pdfсовсем новичку в программировании или материал слишком устарел?
>>1511110Стоит, вполне хороший материал по основам. Устаревать там особо и нечему, потому что затрагиваются основы. Прочитай это, а потом можешь переходить на Троелсена или Рихтера.
>>1511110Да, только я бы посоветовал читать самые основы, потом про многопоточку уже у Троелсона можешь прочитать, ток будь осторожен и все проверяй, Троелсон и напиздеть может.
>>1499746 (OP)Привет шарпики. Кто-нибудь работал с FluentFtp? Срочно нужна помощь. Краткое описание проекта : WPF на "чистом" MVVM + FluentFtp. Проект типа простого Ftp клиентаПроблема заключается в том что ответ от сервера приходит с разным интервалом от 300 мс до 2 секунд. Ответ в плане получения списка файлов и папок на удаленном сервере.
>>1510441> я в душе не ебу и нагуглить что-то вразумительное с примерами не могуЕсли коротко - загугли ASP .NET Web API. Да, через ajax можно кидать форму (данные, пикчи и говно) по конкретному пути и получать ответ. Таким образом не только устанавливается связь View-Controller, но и появляется возможность бескостыльно использовать контроллеры как API для любых клиентов, гонять данные и юзать контроллеры без апдейтов страниц и прочее. Годная вещь, рекомендую к изучению.К слову, если полезешь в Core пробовать - очень советую сразу загуглить, как изменить дефолтный парсер JSON на Ньютонсофтовскую говнину. Дефолтный в Core не умеет в большие данные и крашится к хуям при передаче формы в 8 полей.
>>1503926>RiderПо факту лучшее иде для дотнета, я испытываю оргазм когда не пользуюсь эксплоером а просто щелкаю хоткею>>1504361ты говноед?
>>1500363>ASPdependency injection оно же частный случай dependency invercion, пайплайн, cicd, транспорт данных типа rabbitmq, мб кеш redis, тесты обязательно, желательно по bdd, причем не только юниты, можно сквозные писать (тестируют api) и ui тесты на селениуме
>>1509672а запрос, 2 кнопки, ну и установленных линукс, ты бы блять его сначала установил, а потом бы вопросы задавал, долбаеб
>>1509698лол у меня три тачки, на всех райдер и на всех я взломал, но камон 350 баксов в год, работающий дотнетер может себе позволить на лучшую иде в мире
Короче, меня раздражает студия тем, что она постоянно какую-то хуйню с неймспейсами творит по дефолту. Еще меня раздражает, что папка с исходниками превращается по дефолту в какое-то говно, где потом без студии хуй что найдешь. Какие есть нормальные альтернативы? Чтобы и интелисенс, и возможность в папочках все организовать и т.д.?
>>1511798Как вообще мое недовольство дефолтным поведении студии при выборе неймспейса связано со знанием языка, лол? Или то что мне не нравится что студия упорно не хочет создавать папки в проекте, а кидает исходники в одну папку, если ты вручную не переключишь режим на работу с папкой, но тогда у тебя пропадает возможность использовать шаблончики, которые таки очень удобны.
>>1511866Тут дело в неумении пользоваться студией, говорящее о том, что ты ни одной книги нормальной по шарпу не прочитал, следовательно его не знаешь. Начитаются своих метанитов, а потом оказывается, что студия виновата.
Есть такой код:class Fraction { public int num; public int denom; public Fraction() { } public Fraction(int N, int D) { num = N; denom = D; } public int Numerator { get { return num; } set { num = value; } } public int Denominator { get { return denom; } set { denom = value; } } public static Fraction Plus(Fraction fract1, Fraction fract2) { Fraction result = new Fraction(); if (fract1.Denominator != fract2.Denominator) { result.Numerator = fract1.Numerator fract2.Denominator + fract2.Numerator fract1.Denominator; result.Denominator = fract1.Denominator * fract2.Denominator; } else { result.Numerator = fract1.Numerator + fract2.Numerator; result.Denominator = fract1.Denominator; } return result; } public static Fraction Simple(Fraction result) { Fraction simpleResult = new Fraction(); int nod = NOD(simpleResult.num, simpleResult.denom); if (nod != 0) { simpleResult.num /= nod; simpleResult.denom /= nod; } return simpleResult; } public static int NOD(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } public override string ToString() { return num + "/" + denom; } } class Program { static void Main(string[] args) { Fraction fract1 = new Fraction(); Console.WriteLine("Введите числитель первой дроби: "); fract1.num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите знаменатель первой дроби: "); fract1.denom = Convert.ToInt32(Console.ReadLine()); Fraction fract2 = new Fraction(); Console.WriteLine("Введите числитель второй дроби: "); fract2.num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите знаменатель второй дроби: "); fract2.denom = Convert.ToInt32(Console.ReadLine()); Fraction result = Fraction.Plus(fract1, fract2); result = Fraction.Simple(result); Console.Write("Результат сложения: "); Console.WriteLine($"{fract1.num}/{fract1.denom} + {fract2.num}/{fract2.denom} = {result}"); Console.WriteLine("Нажмите ENTER, чтобы выйти..."); Console.ReadLine(); } }В методе NOD должен производиться поиск наибольшего общего делителя дроби, а в методе Simple, исходя из наличия НОД, должно производиться упрощение. Однако, при запуске программы, независимо от введенных данных, результат сложения выдается как "0/0". Если убрать эти два метода, код работает и всё правильно считает. Не могу понять, в чём проблема. Может кто подскажет.
>>1512046Ну давай, расскажи мне, как сделать так, чтобы студия1. По дефолту делала неймспейс вида: SolutionName.ProjectName.Folder1.SubFolder1.SubSubFilder...2. При создании проекта в солюшине по дефолту 1. Создавала папку проекта. 2. Кидала исходники в папку src и затем, при создании папки в проекте помещала исходники в эту папку на диске, не переключаясь между режимами папок и солюшинов.
>>1512308В методе Simple ты создаешь класс Fraction используя стандартный конструктор, т. е. задаешь полям значения по умолчанию, у int это 0, после чего ты делишь эти нули на то, что у тебя вернул метод NOD. Поэтому у тебя всегда будет выдаваться 0.И тебе нужно использовать автосвойства Numrator и Denominator или хотя бы сделать поля num и denom приватными, иначе никакого смысла в этих свойствах и полях нет.
Почему во всех примерах с TCPListener и сокетами данные сохраняют в byte[] методом Read? Чем плоха конструкция:List<byte> buf = new List<bute>();while(stream.DataAvailable){buf.Add((byte)stream.ReadByte());}?
Вечер в хату шарписты!Кароче я тут уже до строк добрался так что заданиями с цифрами вас заебывать не буду ,да и со строками наверное тоже.В общем подскажите где годной инфы глянуть или как гуглить про строки и работу с ними, сейчас нужна информация как определить тип символа в строке (число, буква, пунктуация и т.д.) Ну а елси вы мне тут чутка распишете про подобные методы и как использовать то я прям вам по Имэйлу тонну нефти скину.
>>1499746 (OP)Добрый день. Подскажите тупому, что я делаю не так.Ориентируюсь вот на этот гайд (https://metanit.com/sharp/windowsforms/1.1.php) как простенькое оконное приложение сделать. Но графического редактора не вылезает, всё перепробовал. Так же не добавляются никакие активные элементы ни в какой раздел, всё серого цвета. Вроде редактор XML слева вывел, но он тоже неактивен. Как бля сделать то это? Визуал перезапускал, проекты новые создавал - нихуя. Всё неактивно. В отладке окно возникает ясен хрен, но как его отредактировать вне отладки то?Я нуфаг если что. Подскажите, где у меня косяк.1 пик - редактирование, 2 пик - запущено.
>>1512537char.IsLetterOrDigitchar.IsPunctuationchar.IsSeparatorи т. д. Открываешь мсдн и читаешь всё про класс char и string.
>>1512663У меня его походу в принципе нет(стоит 2019 комьюнити бесплатная). Как его скачать и он вообще доступен в бесплатной версии?
Всем привет.В этом году вкатился в IT разработчиком на C#, хотя начинал изучать программирование на Java. Всё получается легко и интуитивно, мне очень нравится новая специальность.Теперь вопрос. Я сейчас пишу ПО для фреймворка BPM Online. Бэк - C#, по сути ASP.NET, фронт - JS, БД MSSQL, всё работает на IIS.В какую сторону развиваться теперь? Сел писать микросервис .NET + React.Если веритьhttps://stackoverflow.com/questions/51390971/im-lost-what-happened-to-asp-net-mvc-5.NET Framework умирает и будет полностью заменён .NET CORE.Всё верно?
>>1512771>.NET Framework умирает и будет полностью заменён .NET CORE.Нахуй ты стэковерфлоу читаешь, когда есть блог майкрософт? В нём они дали понять, что просто объединят Framework и Core и сделают из него Core 3.0 после чего именоваться всё будет только с окончанием Core. Понятно, что упор будет делаться на Core, так время диктует, но и про Framework никто забывать не будет, просто из названия уберут. С остальным тебе нужно идти сюда https://2ch.hk/pr/res/1512359.html потому что в этом треде 1.5 анона и все они вкатывальщики, ты не вписываешься в рамки текущего треда.
>>1512771>вкатился в IT разработчиком на C#>.NET Framework умирает и будет полностью заменён .NET CORE.Ты или долбоеб или пиздабол. Одно из двух..NET core - на текущий момент не может существовать без .net framework, т.к. по сути - это CLR+FCL+ВНИМАНИЕ! Сам .NET Core, как инструмент веб разработки.Как блять .NET framework может умереть? Произойдет объединение - скорее всего, т.к. потребность в WPF,UWP,Xamarin etc (who knows what else) может банально отпасть. Кто будет сапортить говно 20 летней давности?
>>1512663На NetCore конструктор ещё не допилен. Но он накатывается в виде плагина, гугли в этом направлении.
Сап хлопчаки. Вопрос по Ninject и DI контейнерам.https://gist.github.com/Hotriden/126f74448cadbdbef5f8eb7cebf94bb8Как по итогу инициализировать классы с DI? Везде создавать экземпляр интерфейса и передавать в конструктор класса?
>>1513403А с кором теперь можно собрать портабельное WPF с окошками без необходимости ставить фреймворк? Например чтоб на XP завести без ебли с пердолингом дотнета 4.5?
>>1513538>А с кором теперь можно собрать портабельное WPF с окошками без необходимости ставить фреймворк?Да.>>1513538>тоб на XP завести без ебли с пердолингом дотнета 4.5Нет. Кор дружит с виндой от 7 Sp1 и далее.
>>1513581Нет, ты дурачок. Во-первых, твой var делает твой код еще более нечитаемым чем он есть, во-вторых, конструкция !(counter > 3) ничем не отличается от более простого counter <= 3
>>1513599>твой var делает твой код еще более нечитаемымтут не соглашусь, все давно привыкли к вар, да и пишут в иде-хах а не блокнотах>!(counter > 3) ничем не отличается от более простого counter <= 3Да, но тогда декремент и сравнение не объединятся в один символ в так любимых местными шрифтами с лигатурами. Признайся, ты же подвис, читая эту строчку? Жаль автоформатирование это поломает.
>>1513444В контейнере регистрируешь соответствие интерфейсов и классов, настраиваешь время жизни и все остальное. Это место называется composition root. И если всё нормально спроектировано, то контейнер сам будет автоматически передавать нужные объекты в конструкторы.
Заимплементил свойство только для интерфейса (Interface.Property { get; }), но присвоить ему новый объект в конструкторе нельзя.Облом?
>>1513620>все давно привыкли к вар, да и пишут в иде-хах а не блокнотахДело не в привычке, а в читаемости кода. Пока не прочтешь то что после = не поймешь, что это булевая переменная. Каждый раз тебе нужно либо читать, либо наводить мышку на var. За такое в продакшене пиздят и обоссывают.> Признайся, ты же подвис, читая эту строчку?Нет, я сразу понял, что эту хуйню можно переписать в counter <= 3 и мне стало стыдно за человека, который эту строку написал.
>>1513721>За такое в продакшене пиздят и обоссывают.Какая-то у вас контора старперов. У нас наоборот стайлгайд предписывает вар использовать.>я сразу понял, что эту хуйню можно переписать в counter <= 3Значит код хорошо читаем. Жаль. Думал мозголомку придумал.
>>1513648>настраиваешь время жизниНе совсем понял. Насчет привязки интефейс-реализация это я понял - отдельным NinjectService выносить тригер при запуске приложения.У меня вопрос в передаче интерфейса через конструктор - получается цепь передачи конструкторов через вложение класса с DI контейнером в другие классы. Как пример из гиста:Я захочу создать класс объеденяющий самураев, к примеру - Baracks, то и в нем мне нужно будет делать передачу интерфейса IWeapon, т.к. вложение самурая требует в конструкторе этот интерфейс.Тоже самое при инициализации экземпляра у меня должен быть объевлен интерфейс IWeapon для передачи в конструктор.
>>1514066Так это системой рекомендовано, не все приложения в рамках этой системы заточены на подобное.
>>1512941Ты тоже читал плохо, походу. Майки пишут, что будет одна ветка - NET 5. Без какого-либо Core. По-сути, это и есть продолжение Core, он теперь и будет основным. Это как раз Core из названия уберут, его влили в основную ветку.>>1512771>Я сейчас пишу ПО для фреймворка BPM Online. Бэк - C#, по сути ASP.NET, фронт - JS, БД MSSQL, всё работает на IIS.Хрена себе, я точно на такую же вакансию недавно устроился. Только учил кресты, в основном. А, ну и еще база MySQL и через их прокладку взаимодействие.В какой энтерпрайз-сфере работаешь-то?
>>1514094Нет, достаточно прописать в манифест вот это: <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application>
>>1514087>>1512771И да, кстати говоря, BPM Online - это CRM-система, а не фреймворк. Ты, скорее всего, на шарпах конфигурационные сервисы пишешь в виде библиотек фронт для морды, бизнес процессы на JSe
>>1514106А с чего ты взял что я пишу dpiaware приложение? может я просто статистику собираю и мне нужно точное разрешение монитора.
>>1514133Мне похуй что ты пишешь, я сказал как узнать точное разрешение и что для этого ничего придумывать не надо.
>>1514152НЕТ ТЫ ПРЕДЛАГАЕШЬ ИЗДАТЬ МАНИФЕСТ ВИНДУВСУ ЧТО МОЕ ПРИЛОЖЕНИЕ НЕ НУЖНО СКЕЙЛИТЬ СИСТЕМНЫМИ ФУНКЦИЯМИ ВИНДОВС ПОТОМУ ЧТО Я ЕГО СКЕЙЛЮ САМ СВОИМ ЗАПАТЕНТОВАННЫМ МЕТОДОМ, а я просто хотел посмотреть разрешение экрана.
>>1514166Ты просто тупой и не знаешь, что эти настройки можно менять в рантайме, а не только в манифесте. Поменял на dpi aware -> узнал разрешение -> поменял на dpi unaware. Неужели в макдональдсе всё так плохо, что даже такие долбоебы уже в it лезут?
>>1514172Может это ты тупой? Везде специально для тебя написано, менять в рантайме - STRONGLY UNRECOMMENDED.
Для чего нужны хешкоды в объектах? Почему они формируются в Int32, а не в string с символами? Где вообще хешкоды применимы помимо Compare?
>>1514209ЭТА ТВОЙ ПОСТ >>1514201 ??????????ПОТОМУЧТО C# ТИПИЛИЗОВАНЫЙ ЯЗЫК, ТУТ НЕТУ JSON, ГДЕ ТЕБЕ ВСЕ ПЕРЕМЕННЫЕ ХРАНЯТСЯ В СТРОКЕ ВИДА {ХУЙ: [жопа]}
>>1514209>Для чего нужны хешкоды в объектах? Для того чтобы определять одинаковы объекты или нет, используя хэшкод.>Почему они формируются в Int32, а не в string с символами?Потому что string это ссылочный тип, а int32 значимый, нет никаких причин для того чтобы использовать дорогостоящий в плане ресурсов ссылочный тип для хранения хэшкода, да и сравниваться такие хэшкоды будут по ссылке, а не по значению. В общем, хранить в int32 легче и выгоднее. >Где вообще хешкоды применимы помимо Compare?Везде где тебе нужно узнать уникальность объекта в сравнении с объектами такого же типа.
>>1514222А ссышь ты тоже в кровать, ну и что что рекомендуют в унитаз, окно открыл, проветрил, можно дальше спать.
>>1514219>>1514222>>1514225Хуя тебе припекло, аж на окружающих кидаться начал и во всех своего обидчика видишь. Потом еще и такие >>1514205 глупые вопросы задаешь, когда говорят, что ты опасен для общества. Самому не смешно?
>>1514229>In .Net Framework Strings are immutable reference types. All .net datatypes has default size except string and user type. So String is a Reference type, because it does not have default allocation size.
>>1514224>Для того чтобы определять одинаковы объекты или нет, используя хэшкод.Не, я, конечно, могу предположить, что в шарпе такая хуйня.Но с вероятностью 99.9% ты - тупой хуесос, который сам не шарит, и анонов на дваче наебывает
>>1514248>СпасибоОн тебя наебал, мудилаTwo objects that are equal return hash codes that are equal. However, the reverse is not true: equal hash codes do not imply object equality, because different (unequal) objects can have identical hash codes.
>>1514256Что сказать то хотел, дурачок? Или ты просто пукнуть сюда зашел? >>1514260Я пишу:>Везде где тебе нужно узнать уникальность объекта в сравнении с объектами такого же типа.А в том что ты процитировал говорится об объектах в целом, без уточнения типа. Ну и конечно нужно учитывать, что GetHashCode это функция которую можно перезаписывать, и долбоеб вроде тебя может создать тип и перезаписать GetHashCode таким образом, что она всегда будет возвращать одинаковое значение, независимо от состояния объекта, поэтому только на неё нельзя полагаться. Но это уже проблема говнокодеров, а не предназначения функции.
>>1514277Уебок хэш-код нужен для равномерного распределения по корзинам в хэш-структурах. Единственное к нему (нестрогое) требование - именно равномерность. (Ну и, чтобы у двух одинаковых объектов был один хэш-код, чтобы не положить, блядь, их в разные ебаные корзины)Если ты используешь хеш-код для сравнения объектов на эквивалентность, ты просто безграмотный хуесос.Тебе два раза об этом сказали. Вместо того, чтобы почесать в затылке и почитать ЭЛЕМЕНТАРНУЮ теорию, ты продолжаешь с надутыми щеками пердеть в лужу.Пиздец, откуда в шарпном треде макаки с интеллектом яваскриптера?
>>1511349Вот кстати хорошая статья про json сериализаторы в 3.0https://michaelscodingspot.com/the-battle-of-c-to-json-serializers-in-net-core-3/
>>1514354В голосину с этого подрыва. Где я писал>используешь хеш-код для сравнения объектов на эквивалентностьИли может я написал, что метод Equals - не нужная хуета, потому что есть GetHashCode? >Ну и, чтобы у двух одинаковых объектов был один хэш-код, чтобы не положить, блядь, их в разные ебаные корзиныЭто я и имел ввиду. Хэш код это всего лишь добавление для Equals и существует он в основном для классов Hashtable и Dictionary<TKey, TValue>. Если ты не способен понять смысла прочитанного, то не нужно на нормальных срываться, это не поможет твоей проблеме.
>>1514224>Где вообще хешкоды применимы помимо Compare?>Везде где тебе нужно узнать уникальность объекта в сравнении с объектами такого же типа. Мы вам перезвоним.
>>1514427https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/intohttps://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/let-clause
>>1514427Или если тебе нужно из массива X взять результат, а потом объеденить его с результатом из массива Y, то можно писать так:from x in xarraywhere x.Length > 3from y in yarraywhere y.Length < 3select new { x, y};
>>1514411> Где я писал>используешь хеш-код для сравнения объектов на эквивалентностьВот здесь:>Для того чтобы определять одинаковы объекты или нет>Это я и имел ввиду.Но написал совершенно другое.Я понял. Для тебя не только с# непонятен, но и русским ты не владеешь.Иди на хуй, короче, уебок. Сри в мозги таким же пидорам, как ты сам, мне больше неинтересно.
>>1514465>>1514470Спасибо, похоже я пропустил что into появился. Let не подходит так как действует перед вычислением всего Select, а мне надо внутри лямбды под селектом аккумулятор держать.
>>1514549Похоже into мне тоже не подходит, он работает с группами или тоже всей последовательностью, а мне надо между элементами последовательность промежуточный разультат хранить.
>>1514652На входе последовательность в упакованном виде как приращение относительно предыдущего элемента, надо её распаковать.
Аноны, подскажите, web-api приложение, когда делаю post-запрос на добавление сущности выскакивает ошибка 500 (internal server error) (видно в swagger). Пошагово выполнение смотрел, ошибка появляется при использовании await _context.SaveChangesAsync(). Как быть - не знаю.
>>1514725Я погуглил, вроде это невозможно, по крайней мере на SO сам скит в похоже ситуации советовал кастомный итератор писать.
>>1514728хуя ты сеньер Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.
>>1514720ДЕБАГ КОНФИГУРАЦИЮ ПОСТАВЬ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Наслушался Radio-T, обсуждали темы сборщиков типо Docker,Basil. Внимание вопрос - какие сборщики используются в.NET разработке? С какими вы проектами сталкивались, написанные не только на .NET (JS/CoffeScript/TypeScript как фронт ASP.NET не в счет) и какими сборщиками пользовались вы?
>>1514752>>1514747А она разве не одно значение возвращает? Мне-то надо одну последовательность преобразовать в другую.