Вы видите копию треда, сохраненную 1 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- 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 - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/1440329.html#1451943 (М)
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) - разработка на шарпе под Unity
Introduction 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
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) - разработка на шарпе под Unity
Introduction 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
Богатый удобный язык. Хорошие зарплаты у миддлов.
Не гонюсь за хайпом. Язык, к тому же, хорошо развивается.
хз, вся корпоративная среда и майкрософтовская экосистема на шарпе. Это значит что что-то более менее серьёзное это только он.А всякие руби, котлины, и прочие скалы - говно без задач для гиков.
https://fossbytes.com/getting-pluralsight-subscription-for-free-for-6-months/
Правда надо какую-то годноту ещё поискать, чтобы потом не жалеть. Гайд по асп нет кору мне зашёл, пока не весь просмотрел, а только первый раздел.
Есть 3 класса с общими методами.
Так вот сам вопрос, стоит ли "совместные" методы вынести в отдельный интерфейс или абстрактный класс при условии что мне нужно будет из коллекции с "общим" типом внутри содержащую по экземпляру от каждого класса, брать по очереди по элементу и использовать наследуемые методы. Насколько я понимаю если наследуемые методы вынести в интерфейс то я не смогу напрямую использовать наследуемые методы и мне придется приводить каждый элемент к его "настоящему" типу посредством 'as' что выглядит несколько глупо как по мне. С другой стороны, если я правильно понимаю интерфейсы созданы для наследования методов, в то время как от абстрактных классов наследуются поля. В общем посоветуй, анон, как грамотней это сделать.
Как по мне, так ты всё неправильно понимаешь. Но я не умею красиво изъясняться, потому подождём пока кто пограмотнее ответит.
>"совместные" методы вынести в отдельный интерфейс
в интерфейсах только сигнатура методов. Нет смысла плодить одинаковые методы, если можно вынести в отдельный класс и использовать его.
Дальше начал читать эту лабуду и хочу дать только один совет - учи ООП. У тебя нет понимания взаимодействия объектов.
Вполне возможно, поэтому и прошу совета.
>>55734
Я неправильно написал соре.
В отдельный интерфейс/абстрактный класс вынести только сигнатуру методов а реализацию методов оставить в классах в которых они и находятся добавив только 'override'.
Вопрос в том, можно ли делать генерик коллекцию с интерфейсом в качестве хранимого типа и добавить туда экземпляры классов которые наследуются от этого интерфейса, и потом по очереди вытаскивать из коллекции эти элементы и вызывать методы без приведения элемента к типу которым он, по факту, является или же вместо интерфейса следует использовать абстрактный класс. Могу быстро написать код как это в идеале выглядит в моей голове.
> учи ООП
Я стараюсь анонче.
такс, наконец то тред с лучшей девочкой
Классы не наследуются от интерфейсов. Классы реализуют интерфейсы.
Например: class Собака : Млекопитающее, IПитомец
Собака унаследована от класса "млекопитающее", возможно даже от абстрактного, и реализует интерфейс "IПитомец", который указывает, что у реализующих его классов, должны быть указанные в нём члены, например, свойства ХозяинНэйм, АдресДома или метод ВернутьсяДомой()
При этом!
Допустим там же у нас есть класс Игуана: Рептилия, IПитомец и ещё класс Робот: Автомат, IПитомец. Казалось бы, они все унаследованы от разных классов, но благодаря интерфейсу, мы можем объединить их в один лист, перечислять, оправшивать, задавать им действия:
var списокПитомцев = new List<IПитомец>() { Тузик, Зюзя, Долботрон } // Пёс, игуана, робот
foreach (IПитомец питомец in списокПитомцев)
{
Console.Write(питомец.ХозяинНэйм);
питомец.ВернутьсяДомой();
}
То есть реализовываться каждый ВернутьсяДомой() будет так как описано в конкретно классе реализующем IПитомец? Спасибо большое, анон, соре за такой тупой вопрос.
Люблю, обнимаю, целую :3
Именно так. На первый взгляд это кажется тупо, попахивает индусским кодом, где классы вынуждены подчас копипастить однотипные куски кода, но зато на интерфейсах можно сделать такую композицию, как, например:
class Сундук : Фурнитура, IContainer, IMovable, IEnemy, IDestroyable // Сундук-мимик, который нападает на игрока, но которого можно таки убить и облутать.
class Древень : Деревья, ICharacter, IContainer // Говорящее дерево с инвентарём из которого награду за прохождение квеста выдаёт
Пожалуйста! Очприятно! Особенно учитывая то, что шарп я учу менее года как, а ООП, интерфейсы и всё такое знаю по дельфям, на которых кодил в нулевых.
{
Test x = new Test();
}
Class Test
{
}
В данном случае х - это переменная, которая хранит объект? Всегда слышал что это просто объект или экземпляр класса, инстанс. Но в ньюфаг треде сказали, что не так
Опять дизмораль, хотя не так много как в прошлый раз.
А вот вчера я вообще хорошо себя чувствовал, потому что сделал одну забавную программу. Вообще-то, приложение WinForms, ну ладно.
Конечно, всё это я делал, смотря Хачатура, который XpucT но всё никак не могу нормально так нырнуть в книгу Троелсона.
Всё то, что он приводит в первой части, стоит того, чтобы я это выучил? Это уже и есть то самое, что я должен по полной штудировать?
Отвечойте.
x - это просто ссылка на объект, под который была выделена память с помощью new
Так, стоп, падажжи. А если
var a = new byte();
Ведь byte - это структура, следовательно, лежит в стеке. Стало быть, new выделяет память либо в стеке, либо в куче в зависимости от создаваемого объекта
А, понял. Спасибо.
Я забыл дописать - если x это ссылка, то как назвать "а", если она хранит значение в стеке? Ссылка на стек?
>>55874
Сразу видно проверенного камрада
>>55867
Постепенно запомнишь, пока общую структуру этой таблицы в голову уложи - что есть целые числа, есть с плавающей запятой. Потом уже в нюансы округления и прочего дерьма влезешь
не ну а шо сложного? Просто запомни что есть целые числа, есть числа с точкой, есть строки, символы и правда, ложь.
Есть значимые типы, есть ссылочные.
Я видимо хуёво читаю, потому что этого ещё не видел.
хорошо что не трап.
Есть такой тип данных как класс. Его можно использовать для свойств в другом классе. И как это вообще понимать? Что это за тип такой. Чем его определять.
Если проигнорите - пойму. Буду тогда дальше гуглить, в ньюфаг треде сказали, что я какие-то не такие определения нахожу.
Вообще понятия "класс" и "тип данных" это не одно и то же. Когда мы говорим "класс", это значит что идет речь об определенном типе данных, например, "класс Cat" => тип данных Cat. То есть, "класс" сам по себе - это не тип данных, это просто слово, которое мы используем для описания определенного типа данных.
"Создать класс Animal" => объявить тип данных Animal.
"Класс Cat наследует класс Animal" => тип данных Cat наследует тип данных Animal.
Кроме того, в C# (и в большинстве других языков) присутствует ключевое слово class, которое как раз и используется для объявления (создания) новых типов, причем в C# это ключевое слово используется для объявления ссылочных типов (в противоположность значимым типам, которые объявляются ключевым словом struct).
Объявление нового типа данных (класса):
public class Dog
{ ... }
Класс - это объект, который хранит данные и методы, что ими манипулируют.
Например, нам нужно описать какой то объект, который характеризует персонажа в игре. (у него есть какие то характеристики, и дейсвтия, которые он может выполнять).
Мы создаем класс "Персонаж".
Добавляем в него 3 поля данных. (Сила, Ловкость, Интелект)
Констурктор нам нужен, что бы мы могли создавать экземпляры нашего класса. (Например, при создании экземпляра, мы могли сразу задать ему начальную силу, ловкость, интелект).
Свойства нам нужны, что бы получить доступ к приватным полям класса и задать какую нибудь бизнес логику, например нельзя создать персонажа с нулевой силой, ловкостью и т .д.
Ну и методы, это то что наш класс умеет делать. Например, наш персонаж может двигаться, и скорость движения может зависить от ловкости. Он может атаковать. Может кастовать какое-либо заклинание и т.д.
>Его можно использовать для свойств в другом классе.
Класс может наследоваться от другого класса. Например, наш новый класс "Враг", может наследоваться от класса "Персонаж", получив таким образом, доступ ко всем полям и методам "родительского" класса.
Таким образом, нам не нужно в классе "Враг" заного прописывать ему методы "Ходьбы" "Атаки" и "Каста заклинания", его экземпляр сможет сразу пользоваться методами "родительского" класса.
Но в классе "Враг" мы можем добавить метод, который может быть свойствован только классу "Враг".
>Класс - это объект
А объект - это экземпляр класса, то бишь класс - это экземпляр класса или объект - это экземпляр объекта.
соре, что я дебил
Они все будут обрабатываться один за другим или порядок может быть нарушен?
Я общаюсь с серваком двумя запросами, один на загрузку файла, другой на вывод текста, как это лучше всего реализовать?
Просто фишка в том, что второй запрос я отправляю после того, как мне сервер вышлет ответ на первый и если я отправлю сразу 3 запроса последовательно, то ответ на один из запросов может прийти раньше.
да ладно тебе. Всё это, почитывая Троелсена. Какой еще stackoverflow? Зачем так жестоко то?
Если не можешь объяснить значит закрой рот, а не учи ньюфагов неправильной терминологии, а потом выебывайся на поправки, даун.
Ну я вот нуб. И в геймдевелоп не собираюсь вкатываться, но все равно интересно, что именно подразумевают под этим требованием.
Асинхронный сервер?
Минимальное количество передаваемой информации в канале для синхронизации состояния?
Если так, то где про это можно почитать для общего развития
Читапй по фремворку 2.0 потом только то что додали в 3,5 -4,8
если вкатываешься, то для тебя нет разницы, разве что потом про интерполяцию строк почитаешь
Там же мало видео и канал мертв. Вопрос в том, почему додики смотрят видео, вместо обучения через учебники?
>мало видео
ты хоть до рефлекшина осилил?
>смотрят видео, вместо обучения через учебники?
а что, одно другому мешает? Или у тебя с логикой проблемы?
О, возвращение шизика.
Реально скучновата книжка-то, сука. :(
атклеилосс
Сегодня тоже начал это читать, из этой хуйни ты можешь понять что есть у майкрасофт в дот нете утилита ildasm.exe которая кушает скомпилированное приложение просто ехе файл и показывает внутрянки. Если ты с нуля то не думаю что тебе нужно в это вникать прям сейчас. Можешь пропустить до установки IDE и уже вернуться к тем темам когда понадобится.
Спасибо большое.
Я всё тот же онон, смотрящий Хачатура (уже успел сделать говноприложение по его видево, меж прочим)
Я тоже его смотрю, ещё extremecode смотрел, но сейчас на ХА переключился он ламповее что лина 15 уроке ща
Вот я торможу, потому что паранойя не даёт его нормально смотреть.
Типа, сначала текст, потом Хачатур.
Но это тоже заёбывает, ес чесна.
Ну я с видосиков начинал, слепил калькулятор. Он правда без ооп без нихуя, совсем кривой внутри. Но по функционалу как в винде обычный
И я не понял, почему нельзя было это загуглить, чёрным по белому всё написано ясно и понятно.
Гугл для пиндосрв вообще-то, надо говорить по-яндекси
Чего?
Учить винформы на C# для ентерпрайза тоже самое что учить PyQt. Формочки нужны для личного развития и небольших поделочек под себя
Респукт таким поцанам
Биг саенс = большая наука. Переведу
В решёточках хочу чета клёвое делать. Чё там ваще делают?
Там вообще что-то делают?
Главное не сайты, сайты в рот ебал.
А ещё можно всякое говно для старой-старой игры замутить, я думаю.
Мне кажется что с таким хайпом будет перегруз этих вычесляторов. И если в случае с тем же JS сайтики нужны всем, то просчет вероятнотностей дяде васе с подъезда не нужон, а значит научпокеры пососут и дружно пойдут в девопс
Я хочу рубить 300кк/нс.
>На WinForm и WPF
Делают програмки на твой комплютер чисто установил и радуешься.
>ASP.Net и Asp.net core
Ента WEB, по факту основная сфера в шарпе
>ну Unity еще игоры делают
А ИЩО в C# пишут что-то для Финансов и банков типа трейдботов наверн я не ебу. Но Java в этой сфере доминирует
Почему именно WinForm и WPF?
Чем отличаются? Нахуй их сделоле?
Про веб не упоминай, тому что я в это говно не полезу.
А про игоры: ну да, юнити-хуюнити, но есть Game Maker со своим gml, синтаксис которого схож на решётки.
Почему бы не объяснить, когда я чего-то не знал мне добрые аноны помогали же всяко.
Ну типа ВинФормочки если я не ошибаюсь еще с C++ Существуют. Ну и типа они попроще и более деревянные такие. А ВПФ ето модна стильно оригинально, но иногда криво
Спасибо, кстати.
Ты походу сам себя переиграл, ток не йобнись тут. Ты нам еще нужен, будем с тобой поднимать сервера на ASP в Рашке
Универсальная платформа Windows (UWP) – это специальная платформа для создания приложений на Windows 10. Вы можете разрабатывать приложения для UWP с помощью всего одного набора API, одного пакета приложений и одного магазина для доступа ко всем устройствам Windows 10 – ПК, планшета, телефона, Xbox, HoloLens, Surface Hub и других. Легче поддерживать несколько размеров экрана, а также различные модели взаимодействия, будь то сенсор, мышь и клавиатура, игровой контроллер или ручка. В основе приложений UWP лежит идея, что пользователи хотят, чтобы их работа, их задачи были мобильными через ВСЕ устройства, чтобы можно было использовать любое устройство, наиболее удобное или производительное для конкретной задачи.
UWP является гибким: вам не нужно использовать C# и XAML, если вы этого не хотите. Вам нравится развиваться в Unity или MonoGame? Предпочитаете JavaScript? Не проблема, используйте все, что хотите. У вас есть настольное приложение C++, которое вы хотите расширить с помощью функций UWP и продавать в магазине? И тут все будет работать.
>Шindoшs Сторе
Звучит как тематический клуб для людей с отклонениями. Люди вообще профит с ЮВП имеют?
Не лезь сожрет
Тут есть люди, работающие с другими человеками в офисе на решётках?
ЭТО ВСЕ ИЛЛЮЗИА, НИКТО НА НИХ НЕ ПИШЕТ ПРОГРАММЫ
Ну так новая технология )0
Но это реально как-то мне ничего не пояснило. Вакасний мало из-за чего?
Пройдите в GD )))
Во ты пользуешься виндовс стором? Я нет, я его вообще выпилил нахуй из винды чтоб не вздумал даже
Хз мб в 21 году стрельнет Core и тогда польются вакашки на тырпрайз, но это надо подождат пока
Блять, мы тут всем тредом учим просто так по-твоему? Нет смысла же ну
А ну еще тип этот UWP он для Windows PHONE который успешно ЗДОХ и унес с собой UWP в гроб
Согласен та же хуйня. Если чо у джавый приближенный синтаксис, но все равно не такой сасный
Да ебана
250x320, 0:33
@
СМОТРИШШ ХАЧАТУРА
@
ФАПАЕШ ТРОЕЛСОНАУ
@
В ПОРЫВЕ СТРАСТИ ЗАХОДИШЬ НА СОСАЧ
@
УСТРАИВАЕШЬ ШИЗОИДНЫЙ ПИЗДЕЦ В ГЛАВ.ТРЕДЕ РЕШОТОЧЕК
@
СХОДИШЬ С УМА, НЕ ПЫНЯМАЕШЬ, ЗАЧЕМ ВСЯ ЭТА ХУЙНЯ ВООБЩЕ НУЖНА
@
ПУК
@
СРЕНЬК
кстати, на гифке моя прога ет самое да
Советуйте, чё дальше делать
ещё не прочытал троелсона, ес шо
Я НЕ ПОЙДУ БЛЯДЬ В ВЕБ НЕ ПОЙДУ В ВЕБ НЕ ПОЙДУ НАХУЙ
Я НЕ МАКАКА Я НЕ МА КА КА ПОВТОРЯЮ Я НЕ МА КА КАК СУКАА
Тогда странно почему ты здесь, а не в МАШИНОЧКАХ-тред
Аа ты про скилл спрашивал, я думал что ты хочешь допилить свой софт, ну лана. Калькулятор уже делал? Запили тетрис в окошке, отработаешь отрисовочку
>Не делал калькулятор
Лично мне с нуля было сложно его слепить чтоб несколько действий в раз считал.
>Тетрис в Visual Studio
Ну так чисто по преколу, JSеры же делают змейку в бразере и ничо.
Я думаю если постараться, то тетрис даже красиво выйдет.
Чёт я гиперактивен.
>>56499
Я уверен, мне для этого нужно знать некоторые числа/переменные/цифры бля, ет самое, ёбана.
А я ж не знаю нихуя.
Если хочешь нудно как в школке на уроках было, то садись читать трольсона.
Если хочешь попроще то видосики твой выбор. Для совсем базовой хуеты самое то.
Но потом для углубления знаний один хрен читать придется что-то.
Ну и гугл с ютубом в помощь. НИПОНЯТНА -ЗАГУГЛИЛ Ток в дебри всякие не лезь типа "как сделать компилятор самому за 15 минут"
Мне неприятно читать книги бля на компе, потому что в Adobe Acrobat работает ёбанный cleartype, который НАХУЙ ВЫРЕЗАЕТСЯ СУКА БЛЯДЬ
Ну и тёмная тема не робит, хз почему
А на мобилку скинуть нельзя что ли?
Еще можно на бумаге купить, но там цена чет ай-яй у меня в срани 3500руб книга
ваще можно, но я такой пизданутый, что с телефона я тоже не умею читать
В смысле, умею, но нужно закинуться валерьянкой и не сдохнуть от скукоты.
ещё мешает такая хуйня: я типа не знаю, чего хочу от погроммирования, вернее от решёток
Вот в первую очередь определись лучше и вакансии посмотри у себя в городе на шарпе чего предлагают вообще, а то потратишь год и потом будешь работать в пятерочке
та там одно говно ёбанное, макак ищут
но я прост не люблю сайты делать, это ваще унизительно, нах
таким действом жидов унижали в третьем рейхе, меж прочим
а ты прикинь, если в 2021 чё-та-там ёбнет и будет десять тыщ вакансий? ето же пиздец!
Ну прям пиздец бабаха по вакансиям не будет это точно.
А вообще сейчас много чего в Веб уходит считай процентов 60 в программировании это Веб, вот и подумой теперь может и не надо тебе оно совсем
Есть Asm/C/C++, типа драйвера там всякие близкие к железу. Но ты облысеешь пока выучишься
А есть статистика по платформам/языкам? Интересно какую часть бекенда шарп занимает
Есть только по количеству программиздов вообще ну и сразу скажу что тут стат по американцам и еуропке
УЖЕ ГЕЙ
какие ещё языки годятся? кроме очевидного джаваскрипта
От силы 40 постов насрали, че ты. И вообще в чем проблема? Абу квоты выдает на перекаты или что?
Это уже не ко мне претензии
Шел 2014 год, я решил вкатиться и по совету бывшего одноклассника купил учебник по PHP и начал осваивать первые страницы. Потом залез в паблик ВК "Типичный погромист" (facepalm) и увидел 10+ постов о том, что PHP мертвый язык, #скоросдохнет etc.
2019 год - Ожидение - реальность
QA = 558 пиздец
PHP не мертвый, пока что, но старое переписывается если есть смысл. А новое на пхп пишут меньше чем раньше
посмотрел не нашел
первое окно - инициализация int i в классе Programm
второе окно - инициализация int b в методе Main
Нигде конструкторов типа int я не вижу
>QA = 558 пиздец
Под QA и обычных тестировщиков пишут. Сам работал как Junior QA, но по сути в ручную всё тестил
Всё равно их так много, а ещё у тебя вакансий шарпа больше чем джавы. Ты не из РФ да? Забери меня))
Я вообще другой анон
да
>первое окно - инициализация int i в классе Programm
>второе окно - инициализация int b в методе Main
Это работает только с примитивными типами, но ILDasm это не показывает (или я не знаю, где смотреть)
В глаза долблюсь соре, не знаю чем тебе помочь, для чего тебе такие штуки вообще понадобились? интереснинька
Ты придурочный какой-то, веб в 2019 это стандарт уже, вытесняющий нативные приложения на десктопе. Натив нужен только для игр, тяжёлых приложений типа Фотошопа, приложений которые ставят упор на производительность и скорость, ну и собственно всё.
Можешь ещё в мобилки пойти конечно или драйвера писать, да.
Господи, какой же ты шизик. Я охуеваю.
Я тут пару тредов назад искал решение UI для шарпа, кроссплатформенное. Мне и авалонию уже советовали. А вот вопрос, есть решения с веб-верствой в отдельном окне? Полагаю тоже будет кроссплатформенно же.
ОТписался в соседнем треде, но спрошу и тут у знающих анонов.
Может знаете, как обстоят дела с шарпом в европе? Через пару месяцев ждет релокация, после чего хочу дропнуться работу (~год-собственно, время для освоения) и вкатиться в backend или игры (но это слишком влажные фантазии). С погромированием знаком в целом и намерен вкатываться.
Спасибо
ps в гугле пишут, что с джавой лучше, и что с вашим ЯП лучше пидорить в сторону США, как же
Ты чё такое несёшь, на /b сказали, что веб-макаки это низший сорт программиста. Мне как теперь сюда вкатываться?
соглы, Слава Украине, Сишарпу Слава!
Валидацию модели знаю как делать, вопрос в реквестах как на пике - типо 403, 404 etc
А если два объекта разных типов? А если сотня? Пихать их все в один объект и его потом (де)сериализовать?
Алсо, как быть с коллекцией объектов, тип которых явно реализует ISerilizable, когда объект, получаемый при десериализации, передаётся в конструктор десериализация реконструированием? ? Полученный объект ведь не проитерировать, чтобы последовательно воссоздать объекты.
> веб в 2019 это стандарт уже, вытесняющий нативные приложения на десктопе.
Электронное приложение дискорда - лаганное говно, 0,5-1гб оперативы.
Обычная приложуха дискорда на qt, быстро, 19мб оперативы.
Собственно по этому, веб так и останется говном собаки. Потому что работать туда идут, как правило, одни дегенераты.
Ооо мартыхано провало
>недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая.
Ну ты понел
MVC изучить только в планах, сейчас SQL
Я даже не понял, что ты хочешь — исключения тупо в коде ловлю. Но сейчас у меня задача показать любой код, главное, чтобы он соответствовал ООП и был красивым. Показывать буду свою пет-какаху, которую написал на WPF. Так что мне очень интересно, о чем ты говоришь
Вот именно потому что все хипсторы выбрали жабу и жабаскрипт и заодно зафорсили у себя в коммифорнии, что микрософт и его продукты говно - на дотнете в разы меньше конкуренция и поток людей на вакансию. Поэтому сильно проще найти работу.
Плюс, шарп охуенно читабельный язык, интуитивно понятный, плюс статическая типизация. С++ и ЖС - уродливое, нечитабельное говно начиная с конвенции по написанию кода.
так сложно загуглить?
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications. With ASP.NET Core, you can:
Build web apps and services, IoT apps, and mobile backends.
Use your favorite development tools on Windows, macOS, and Linux.
Deploy to the cloud or on-premises.
Run on .NET Core or .NET Framework.
Апаю вопрос
Гавно архитектура. Убирай логику с котроллера, делай прослойку, переопредели свой респонс.
Однако же электронпараша всегда тормозная.
логики в контроллере нет, только экземпляры классы для реализации методов. Я вот тоже подумал об редиректе на View с ошибкой
Вот пример - у меня вот такая сигнатура метода:
public List<Request> GetSiteMaps(string site)
как мне его проестировать? создавать фейковый лист с N объектами типа Request? НИХУЯ НЕ ПОНЯТНО
кстати по поводу гавно-архитектуры. Context от EF выносят в отдельный класс или кидают в контроллер? Всегда интересовал этот вопрос
Если же это будет коллекция (например List<T>), то опять же десериализация вернёт object, который надо привести к List<T>, так?
А каков алгоритм десериализации коллекции типа, реализующего ISerializable? Я так понимаю, что BinaryFormatter.Deserialize() итерирует сериализованную коллекцию и последовательно создаёт новые инстансы через конструтор с сигнатурой (SerializationInfo, StreamingContext) - по крайней мере у меня так получается.
И как тогда "работает" десериализация в первом случае?
для обработки ошибок, никто не хочет видеть эксплоит у себя на странице, лучше это сделать в общей стилизации с намеком пользователю, что он что то сделал не так, как нужно
В WPF просто создаешь отдельный проект и там лупишь отдельные формы представления под каждую нужную тебе ошибку. В ASP.NET MVC, как мне от части подсказали и частично додумал сам - в каждом методе контроллера в блоке Try-catch делаешь редирект на метод для обработки ошибок
Context от EF в идеале должен бить в своем проекте(DAL), вся логика в бизнес уровне (BLL), по отдельних проектах. Также каждий проект должен иметь свои модели, тоесть бизнес уровень ничего не знает от тго где его будуть использовать, епта.
Еще вопрос, в т.ч. ко всем антонам, которые занимаются разработкой на ASP.NET MVC. Какой архитектурный паттерн самый популярный? (Имею ввиду Onion/Unit of Work etc)
Что насчет того, если я пасмаплю в /pr (возможно в /b/, но это сомнительно) свой пет проект, а аноны со всех щелей досок поучаствуют в таком себе опен сорс проекте, может даже сделают пару пул-реквестов и заслужат этим галочку в своем CV. Обмен опытом в реальном проекте - это обучение в х10 темпах, чем по учебниках или туторах.
Для более скиловых, которые уже вкатились - повод поделиться опытом/знаниями ну или потрясти писей с другими анона и направить их на путь праведный.
Ваши идеи и предложения? (Если пост наберет хотя бы 5 комментов, опишу дальнейший алгоритм взаимодействия)
>АбстрактФактори - это тот же ФакториМетод
Ну как бы да, но нет. ФМ тебе выплевывает объект, АФ всю
иерархию объектов
>>57305
Сериализатор сохраняет всю информацию о типах и весь граф объектов. Обжект возвращается исключительно потому, что на этапе компиляции неизвестно , что именно будет десириализованою
>MVC
Под спойлером - (Имею ввиду Onion/Unit of Work etc)
>тестовую строку
Метод генерирует 20+ объектов, которые включают в себя 5 полей. В Assert же не буду это совать. А проверка на null - это тухло.
>Тут мокать нечего
А что мокают тогда? Вчера впервые узнал об этом фреймворке, пока не вдупляю его предназначение.
А чому Newtonsoft JSON лучше? Я правда не понимаю. Пользовался всего один раз сериализацией, брал искоробочный вариант, просто подставив перед интересующими полями или классами [Serializable что-то там]
>Onion/Unit of Work
Это уж от проекта зависит
А что мокают тогда?
Зависимости класса. Например класс для получения данных использует репозиторий, который тянет данные с удаленной машины, на которой ответ генерируется на основании данных БД и лунного цикла и... Даже если твой метод Foo() написан правильно, то сбой в любом месте цепочки приведет к краху теста, да и вообще незачем тянуть всю эту лабуду для проверки Foo(). Поэтому делают мок репозитория, который гарантированно вернет заранее известные данные, бытро и без боли.
>>57556
>Метод генерирует 20+ объектов
Может он дофига детает? Один метод - одно действие. Вообще TDD подразумевает сначала написание теста, а потом уже код. Если ты сначала написал код, который не тестируется, ну что ж, переписывай.
Спасибо за ответ
> А чому Newtonsoft JSON лучше?
Он предоставляет универсальный, быстрый и простой интерфейс для сериализации твоих объектов в современный, лаконичный, быстрый, понятный как человеку, так и машине формат JSON.
Охоспаде, я пиаром чужого софта занимаюсь, лол.
Апаю вопрос (Сириосли? Или тут все .net core дрочат? Да и к тому же практически идентичные технологии)
Я, например, залётный из /gd/ ощутил слабость маняскриптов и начал изучать шарп, чтобы получить мощь в свои руки. Ентерпрайз ваш мне и даром не нужон.
Что ты хочешь-то? Нормально вопрос сформулируй. Еще и условия ставит, охренеть просто.
Или если не будет то покидайте плиз идей для пет проектов на асп коре или апи чисто гит набить, а то все вроде бы знаю а идей нету. не выкладывать же 140+ хеловорлдов где я тестил что учил.
Гугли "строка подключения MS SQL server" она нужна для подключения к БД. А дальше делаешь команды или через EF или в сырых SQL-кверях.
Теперь иди учи SQL и пиши запрос. Когда освоишься возьмешь ORM-ку и будешь работать с базой через нее, чтоб не пердолить запросы руками.
Да. Когда они увидят, что ты свободно оперируешь фреймворками и подключил нужную либу самостоятельно, вместо того, чтобы ебаться со старпёрским сикелем, они сразу тебя на работу возьмут.
Спасибо, надо попробовать
Предлагай. Я только закрыл Рихтера и открыл АСП НЭТ КОРЭ ИН ДЕПТХ (с примерами, между прочим)
>Аноны го пилить петпрожект вместе я тут делаю потихоньку
>Покажи
>Нет не покажу, может тебе ещё оффер...
Ну и пошел нахуй имбецил
Хм, а вот это уже интересно, если с тем аноном не прогорит то запилю.
В опенсорс попасть сложно, да
Есть советы от опытных как пережить этот час позора?
Так хули, чтобы переставать позориться нужно скиллы пиздежа прокачивать, а для этого надо всё равно ходить на собеседования.
Город писал в прошлом треде, Екб.
https://docs.microsoft.com/en-us/dotnet/api/?view=netframework-4.8
Это как если бы в вашем городе было 100 библиотек, в каждой из которых было по 50-100 не повторяющихся книг.
public override String ToString()
или
public static implicit operator String(Classname t)
?
В моей любимой джаве у нас только тустринги были, выбора не стояло. Как у вас принято?
Задание: https://pastebin.com/v9wm1ytX
Реализация: https://github.com/Anon1457675/CompressionTest
Мой репорт по заданию: https://pastebin.com/Dad7LxqU
Все ебашат тустринги. В особых случаях есть статик класс Convert с методом ToString(чотатам)
ToString(). У этих способов разная семантика, тустринг - класс выводит информацию о себе, о своем состоянии. implicit/explicit - это преобразование типов.
Это по твоему ООП и Dry? 0 Интерфейсов, метод меин на 100 строк с реализациями, 0 комментов, 0 тестов, раздутые методы. Где блоки Try-catch-finalize?
Зачем в регионы скрывать 1 экшен хендлер или константу? Что это блять за Return 1 в методе меин?
Я хз, что за какашку ты скинул, но в нее палкой можно тыкать очень долго.
Ясно же сказано, запердолить SQL запрос. Никаких ЕФ тебе не нужно.
https://www.db-fiddle.com/f/jQhknK2hPdPcPVL16ftMEZ/0
И скажи, чтоб меня взяли на галеру вместо тебя.
>0 Интерфейсов
Они излишни там, хотя в одном месте стоило бы, действительно
>метод меин на 100 строк с реализациями
Тут согласен, надо было запилить что то типо UIManager'а
>0 комментов
Коментами не покрыты только 1 класс для хранения данных, состоящий из 2 полей и сам компрессор. Компрессор стоило бы покрыть, согласен.
>0 тестов
Разве тесты входят в тестовое задание если это явно не указано?
>раздутые методы
Самый большой метод (пикрил). Не понимаю как переписать чтобы было не раздуто? Вынести действие цикла в отдельную функцию? Общая сложность кода не поменяется, так как он по размеру меньше экрана.
>Где блоки Try-catch-finalize?
На пикриле. Я все ошибки перехватываю и передаю наверх вызывающему методу, а в UI они не нужны, так как невалидные данные это не исключительная ситуация.
>Зачем в регионы скрывать 1 экшен хендлер или константу?
Для быстрой ориентации
>Что это блять за Return 1 в методе меин?
Это требование к заданию, возврат программой 0/1.
>>58453
А можно поконкретней? Я сюда писал не для того что бы понять что я днарь, а для того что бы понять почему.
> экран
У меня хорошо если 20 строк влезет7681368
Извини, не очень шарю, нечем дополнить. Но я бы добавил внедрение зависимостей и тесты, все же это единственная вакансия
>внедрение зависимостей и тесты
Ну DI здесь это стрельба из пушки по воробьям, а тесты может действительно надо будет делать к тестовым.
>все же это единственная вакансия
Так я ее уже просрал.
Да я так и думал, просто как получить запрос, когда уже всё сделал - без понятия. Не переписывать же всё в ручную?
Но спасибо за код ;3
Так цель в том, чтобы выпендриться своими знаниями? В этом ведь суть таких лаконичных заданий
Я в похожем положении, так что размышляю, как лучше сделать
>Они излишни там
интерфейсы - излишни. Зачем тебе тогда ООП вообще? Хуярь все монолитом в функциональном стиле
>Разве тесты входят в тестовое задание
Качаю я проект, первый раз вижу этот калл, как я пойму, что работает, а что нет? Или мне все строки кода вычитывать? А запуская тесты (где названия методов дают понять, что выполняет метод) я вижу, что и как работает
>чтобы было не раздуто?
должна быть логическая инфраструктура кода
>Это требование к заданию
Через точку входа выдавать результат? Ты ебнутый?
И как ты это говно из жопы запускал, если через дебагер VS у меня проскакивает к return 1, а при сборке эксплоит?
> И как ты это говно из жопы запускал, если через дебагер VS у меня проскакивает к return 1, а при сборке эксплоит?
Охуенный тестировщик. Пойдёшь к нам в студию?
мимоэйчар
>Через точку входа выдавать результат? Ты ебнутый?
А в чем проблема? Вполне стандартный способ уведомить о результате работы программы. Даже если ты делаешь войд мэйн оно автоматом ноль возвращает.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/main-and-command-args/main-return-values
мимокрокодил
уже дочитал - If void is returned from Main the exit code will be implicitly 0
но пихуй, сути не меняет. Впервые увидел такую порнографию (в консоли только hello world писал)
Мы вам перезвоним.
>Зачем тебе тогда ООП вообще? Хуярь все монолитом в функциональном стиле
ООП принципы нужно применять с умом, а не пихать интерфейсы на каждый класс.
>Или мне все строки кода вычитывать?
Я в репорте написал алгоритм словами, но мы не умеем читать.
>Через точку входа выдавать результат? Ты ебнутый?
Опять не умеем читать, ЭТО НАПИСАНО В ТРЕБОВАНИЯХ К ЗАДАНИЮ
>И как ты это говно из жопы запускал, если через дебагер VS у меня проскакивает к return 1
Это говно запускается через консоль и принимает аргументы оттуда же и это НАПИСАНО в описании.
Я бы не хотел тебя у себя в команде. Сказали как лучше, так переделай, че ты петушишся.
>ООП принципы нужно применять с умом
Так-то да, а теперь сходи посчитай количество классов FCL, которые не реализуют интерфейсов. Они есть не просят, и лучше чтоб они были.
>>58571
>Я в репорте написал алгоритм словами
Тесты больше показывают как пользоваться, а не какой там алгоритм. Плюс тесты не врут, а описание может быть устаревшим.
мимокрокодил
И как тебе уже намекали, от тебя хотят демонстрацию знаний ООП, о чем в задании написано, их ты и должен был показать (одно из).
да я смотрю ты знаток ООП, знаешь где нужно его применять, а где нет. А что в колбеке от работодателя вычитал? Почему не взяли?
P.S. Собрать свою какашку в Setup, чтобы получить .exe файл занимает 2 минуты. Даже если запускать с билда твоего проекта, получается как на пике
P.S.S. Только не говори, что ты это 4 дня делал
https://github.com/Vailucory/GZipCompression
>хохломухосранске
вообще хз, нахуя я вообще тебе советы давал, если ты так свой город и страну называешь. Таким токсикам только в маке "Вiльна каса" кричать
>А что в колбеке от работодателя вычитал?
>Привет твое задание не из лучших, спасибо за попытку
>получается как на пике
Проебался с валидацией. Вот и тесты вылезли. Там надо входной и выходной путь прописывать.
И вместо ИЛИ прописал, позор
> Только не говори, что ты это 4 дня делал
Делал за день, ждал пока ответят пару дней.
>>58601
А как назвать город 25К человек в Украине? Никогда не вкладывал токсичнось в слово "мухосрань" или "хохлы", зато примерно передает мое положение.
Иди на хуй, поцреот
> от тебя хотят демонстрацию знаний ООП, о чем в задании написано, их ты и должен был показать (одно из)
И как он должен был показать?
Реализовать абстрактный класс Compressor, от него унаследовать GZipCompressor, а потом ещё, чтобы точно перезвонили, создать интерфейс IAsyncParallelThreading в котором описать те методы, что касаются трединговой части задания и GZipCompressor чтобы реализовал этот интерфейс?
мимокрок
Вот у меня одна функция для нескольких классов, но там разное кол-во параметров для его реализации (в первом классе 1 параметр, в другом классе 3 параметра).
В интерфейсе мне не понятно что указать. Но я указал 1 функцию в интерфейсе, для 1 класса хорошо подходит, а для другого благодаря throw new добавил ещё 1 функцию. Не знаю, так нормально сделать или хуйня какая-то?
Оффер дали, теперь надо переезжать из своей мухосрани.
Вопросов дохуя штук 80 лол, без преувеличения, сидел полтора часа с этим, треть по базовым вещам типа инкапсуляции и боксинга, четверть где-то по скл (завалился совсем на транзакциях, но вроде похуй в целом), ещё немного по фронту спросили на всякий, ну и штук 10 по аспнету - связывание данных, хелперы разора, чуть-чуть линка ту энтитис, бандлы.
Ну и несколько мелких задач на понимание. Например, типа, есть сложный алгоритм который должен по двум полям формы вставлять данные в третье поле, твои действия. Спросил важно ли скрыть детали реализации, если важно то разместить на сервере и обращаться аяксом, если нет то тупо жсом событие на форму и функцию вызывать.
Вопросы про цели, последние прочитанные книги итд не упоминаю уже
В целом на удивление адекватно, поправляли и поясняли за то что не знаю. Видимо перечитал перезвоним-треда и ожидал худшего, а может повезло, тем более собеседовали лид и другой кодер.
PS чел который в контур пробовался, что там, или ещё тестовое пилишь?
на позицию ASP.NET dev?
По Js много дрочили? вообще знаешь ли его?
>есть сложный алгоритм который должен по двум полям формы вставлять данные в третье поле, твои действия. Спросил важно ли скрыть детали реализации, если важно то разместить на сервере и обращаться аяксом, если нет то тупо жсом событие на форму и функцию вызывать.
Их этот ответ устроил? Я думал они будут спрашивать за реализацию, а не за размещение...
>на позицию ASP.NET dev?
this
>По Js много дрочили?
Не очень. Скорее знаю чем нет, на вопросы ответил.
>Их этот ответ устроил?
Там не было самого алгоритма, именно как архитектурно это организовать. Ну там чуть глубже, спросили еще где именно функция на сервере, почему не в контроллере а в отдельном классе (потому что юниттестинг + потому что архитектура + разделение ответственности). Видимо для уровня ждуна достаточно.
JS сам по себе по сравнению с шарпом детский сад (имо), но блять от кол-ва информации по ASP.NET (с тоннами библиотек и архитектурных прослоек) голова кругом идет.
Энивей, молодец анон. Удачи пройти испыталку.
>но блять от кол-ва информации по ASP.NET (с тоннами библиотек и архитектурных прослоек) голова кругом идет.
Я думаю мало где досконально кишки спрашивают. У сеньора, возможно, и могут поинтересоваться, как бы он реализовал эту-то хуйню на 8-ом уровне абстракции, но джуну нужно уметь пилить веб-приложухи в первую очередь. Но это мой опыт и опыт знакомых, устраивавшихся ждунами на другие фреймворки-языки.
В отрыве от собеседований - согласен, но это со всеми крупными фреймворками так. Пробовал спринг немного, вот там абстрактные бобы из фабричных методов синглтонами погоняют на 20 слоях архитектуры, в ужасе вернулся к изучению ASP.NET.
>Энивей, молодец анон. Удачи пройти испыталку.
Tnx
Я хочу, чтобы можно было менять ширину не всего столбца, а отдельной строки, как это можно делать в html таблицах.
что в шапке делает эта шлюха? Возвращай Феликса♥
Хороша чертовка
То что зарплата ничего не говорит о ЯП и без этого известно было.
Меня интересует раст, классная и хайповач штука, я бы с радостью часть вебприложения на микросервисах перетащил на раст.
С другой стороны, раст крут, но работы на нем нет и не предвидится. Второй кандидат эрланг, хорошо зарекомендовавший себя старичок для веба.
А с третьей стороны, тянет в C#. Наконец-то кроссплатформенный, игры, настольные приложения, мобильные - все чего нельзя сделать на питоне можно на нем.
Если читать Троелсена, то думаю достаточно будет первые 13 глав. А дальше уже лезть в Unity API.
бампаю вопрос
Если я хочу написать класс с методом, в который я буду засовывать строку текста, отсылать ее через запрос и получая ответ оборачивать его в список, то мне статика вообще не нужна, верно?
>у меня встал
Почти одинаковые, потому что пример максимально простой. Ну а главная польза в разделении. В дальнейшем изменяя что-то в одном слое изменения не просачиваются в другие.>>59347
>не диспозятся
Значение знаешь, аль для красного словца вставил?
>>59347
>мне статика вообще не нужна
Если писать код нормально, то статика вообще редко нужна.
А зачем на моем примере могут понадобиться интерфейсы?
Я их только в связке со всяким БД кодом видел, если у меня класс с методом, через который я посылаю запрос, получаю ответ и оборачиваю его в лист, то интерфейсы могут понадобиться?
Чет я совсем подзабыл сишарп.
>Значение знаешь, аль для красного словца вставил?
Знаю, статические классы и поля остаются в памяти?
>Знаю
Тогда в чем смысл вопроса >статические классы же не диспозятся из памяти?
>>59361
Ну смотри, у тебя есть клиент, которому нужен этот лист, вот уже можно сделать интерфейс ISomeListProvider, прикручиваешь его через DI к клиенту. Потом создав наследников интерфейса ты сможешь пенять это провайдера на ходу в зависимости от положения венеры или каких-то других условий.
Да я, бля, уже забыл.
А, я понял, естественно, для DI.
Для хранения пар-ключей
Зачем он нужен? Он же бесполезен
Я не он, но язык которому требуется виртуалка, байткод. Вообще не выжимает и половину потенциала железа, неэффективная трата ресурсов ПК. Раньше все писали на Си, и все было пиздато. А потому высрали ООП и все пошло по пизде
Это ты не смог принять лицензионное соглашение Win 10 tweaker?
Ты прав. Двачеры кукарекают о том, что в пикабу все следуют за стадом, но сами не замечают, как бугуртят на тех, кто не согласен с их мнением, которое построено на мнении других долбоебов, которые так же навязывают свою идиотскую точку зрения
>Двачеры кукарекают о том, что в пикабу все следуют за стадом
Всем похуй на твое пикабу, залётный
>но сами не замечают, как бугуртят на тех, кто не согласен с их мнением
Точно залётный.
Я вообще не макака лол. Я в гейопс работаю, мой коды это говноскрипты для базовых задач. Программирование именно си в свободное время задрачиваю, потому что дико доставляет и гораздо проще чем куча ебанутых абстракций в clr.
>виртуалка
>кто-то не может в оптимизацию?
Вы теперь у нас РАЗРАБОТЧИК ВИРТУАЛЬНОЙ МАШИНЫ, который вообще не ебет что у него там происходит, там вообще ЧЕРНАЯ МАГИЯ В ЧЕРНОЙ КОРОБКЕ. Жс макаки то ладно, они животные им простительно, но походу им придется подвинуться на параше чтобы разработчики виртуальных машин рядом смогли присесть.
Ебет разработчик на уровне работы с потоками и уборкой мусора, если ему нужно.
2. Ассемблеры - Сверхразумы
3. C/C++ - Архимаги
4. Заклинатели виртуальных машин - плебеи, рабы
5. Скриптодауны - унтерменши. Цель для пули
Да ладно чел, ну что ты сразу начинаешь то
Тред уровня /а/
Хачатур говорит: "Хотите пользоваться антивирусами, пользуйтесь, но свою голову не выключайте."
А чё не так с касперским? Я когда торренты качаю, всегда антивирус спасает жёпу.
Как с этим бороться? Нужен именно код с первой пики
Почему разработчик на C# должен ковыряться в веб технологиях, хз я бы принципиально отказался от такого дерьма как гойскрипт
Потому, что Javascript IS EVERYWHERE
Куда не глянь, в любой вакансии - As plus - react/angular/vua/моча/говно.
Даже на позицию ASP.NET могут подрочить по JS (не шучу).
А по сабжу моего вопроса - занимаюсь парсингом данных.
В общем, есть одно апи, хочу поиграться с ним и сделать небольшую веб-приложуху, задеплоить её на своей впске через докер и все такое (я полоумный перекатчик с wpf/winforms).
Как вообще происходит взаимодействие с чужими рестфул-апишками?
Я так понимаю, мне надо получить ключик для авторизации (сделано) и каким-то образом распарсить эндпоинты апишки (есть автоматизированные средства для этого?), которые я затем буду дёргать у себя в коде как обычные методы, и затем приготовить классы-модели, которые будут забиваться из прилетающих жсонов, ну а дальше уже обычный дотнетовский код.
Я всё правильно понял, или что-то упустил?
Если это важно, то вот само апи:
https://bungie-net.github.io/
Нагуглить не могу. Такого вообще нет.
Снифер трафика юзаешь? Если нет - поставь обязательно, без него никогда не узнаешь, что не так (мб ты шлешь GET вместо POST или кукисов каких не хватает). Я юзаю Fiddler, брат жив, сайты парсятся
не юзаю, обычные HttpWebRequest-ы.
Нужно парсить 3 источника. В 2ух все збс, в 3ем такая шляпа, как на пике. Поковырялся и понял, что дело в прокси на этом ебучем ресурсе. И куки пытался передавать, ничего.
Сейчас поставил Selenium - окно браузера бота тронул - эксплоит. Зато работает
И жрет блять 3 окна браузера + апликуха, ищу как ебучий контент отключать
Это все Gloabal.asax.cs если что.
Советую почитать про swagger судя по ишакам на жидхабе, он там есть. А дальше дело за малым.
Нет DI библиотеки? Плюнь своему лиду в рожу. По поводу обработчика исключений, видимо какая то самописная - ViewEngine
Есть, но внедрялась гораздо позже наделанного там пиздеца сделанного армянами лол, который переписывать никто не хочет да и бюджета на это нет.
В новых проектах, правда уже на коре, всё по другому.
Тебе надо ставить cookie (_wer и _si) и браузер агент. Причём возможно куки нужно ставить каждый раз новые, которые сайт посылает.
А так всё работает
всегда диву давал тем пидорастически-жадным пидарасам, которые то индусам, то кидайцам, то еще %RANDOM_COUNTRY% дают проект на саппорт/создание, а потом всем миром говно из под них выбирать
572x350, 0:09
Добро пожаловать в реальный мир, где щедрая душа всё раздала и сидит на голой жопе, а жадные пидорасы стоят у рулей корпораций.
Поработав с этим заказчиком, всё стало на свои места, абсолютное не понимание сроков нужно вчера и не способность сформулировать нормальное задание да вы что по макетам не видите какой функционал нужен, но как начал работать с нами исправился и исправляется.
PS:
А ещё абсолютное не понимание, зачем нужно проектирование и почему на него уходит так много времени.
А что нужно для митапа? Почему бы просто не кинуть клич, собрать со всех немного денег на аренду зала и газировку, а потом собраться в условленный час и Сплетаемся в объятьях братских. Крепкие руки крепкие тела обхватывают. Целуем друг друга в уста. Молча целуем, по-мужски, без бабских нежностей. Целованием друг друга распаляем и приветствуем. Джуниоры между нами суетятся с горшками глиняными, мазью гатайской полными.Зачерпываем мази густой, ароматной, мажем себе уды. Снуют бессловесные эникеи аки тени, ибо не светится у них ничего.
Помогло?
не вижу связи. Группа асинхронных методов передаются без проблем, запускал с таймером. Как только добавляю синхронный метод, который блокирует поток, только тогда падает апликуха.
Сейчас переписываю все синхронные в асинхронные.
анончик, да это же работает! Спасибо большое, щастя, здоровья и всего всего! Теперь можно выкинуть ебучий селениум на помойку!
Суть в чем - есть список сигналов. Пользователь клацает "редактировать" на каком-нибудь из них, сигнал передается в новое окно. В зависимости от типа сигнала доступны различные поля, которые показываются/скрываются привязанными в классе Visibility.
Но это нарушает принцип DRY, причем при добавлении нового типа сигнала придется лезть в другой код
Альтернатива - создание под каждый тип сигнала своего обработчика, но, может быть, вы знаете какой-нибудь паттерн для моего случая
Хотя нет, не нарушает. Возможно, стоит написать какой-то удобный интерфейс к этому дерьму.
Или не мучаться и сделать пять окошек
Решил я оттестировать генератор сигналов. Можно ли как-то передавать в TestCase( ... ) тип, который должен создаваться для тестирования?
Есть родственные классы, например, синусоида и пилообразный - дочерние от HarmonicGenerator. Хотелось бы тестировать их через один метод. Например:
[TestCase(тип генератора: SineGenerator, аплитуда: 1, частота: 1, фаза: 0, время: 0, ожидаемый уровень сигнала: 0)]
А то получается по куче классов SineGeneratorTests, SawtoothGeneratorTests, в которых один и тот же метод, но с разными параметрами
Отдельные реквесты я умею делать, конечно, но неужели надо руками создавать метод под каждый эндпоинт?
Что такое эндпоинт?
>ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
профессор веб давно пора нахер выкидывать из шапки, еще год назад когда он пытался за счет пользователей майнить. есть куда лучше, и с поддержкой актуальности - метанит.
MVVM - для вкатывания оч удобен фреймвор Caliburn, небольшой цикл статей для вкатывания http://www.mindscapehq.com/blog/index.php/2012/1/12/caliburn-micro-part-1-getting-started/
ну и перетаскивай шапку на гит, чтоб и оглавление можно было запилить, и с перекатами проще, и пулреквесты на изменения.
библиотек - куча
- https://www.textcontrol.com
- https://github.com/xceedsoftware/DocX
- https://www.microsoft.com/en-us/download/details.aspx?id=5124
То что сходу нагуглил
Но я юзал
>microsoft office interop
эту какашку, но для Excel. Справлялась не плохо, правда поток данных был не большой.
Спасибо, анон, посмотрю их сегодня
Помогите
нахреначил однотипных тестов, но на будущее хочу знать. Кажется, пример и так понятен, поэтому код не заливал на пастебин. Если непонятно, давайте загружу
Почитай Бек Кент - Экстремальное программирование. Разработка через тестирование, там наглядно достаточно. Правда примеры на java, но так как используется фреймворк для тестов - то код переносится на решетки почти один в один
Спасибо. Java и C# во многом похожи, так что наверну поверх The Art Of Unit Testing
В голове. Вспомни чем ты занимаешься за компом и подумай, что из этого можно автоматизировать или сделать аналог проги, которой ты пользуешься, но в ней что-то не так.
Если ты в самом начале, можешь сходить на cyberforum и порешать лабы студентикам.
кажется про нее из The Art Of Unit Testing и узнал)
Вот сижу и думаю чем же я за компом занимаюсь..... Ну кроме программирования листаю /b/, телегу, дискорд.....ну и собственно все.... Идей для проектов тупо нет.
Бот для дискорда/телеги.
я первый один из первых проект - делал парсер на WPF для контента 2ch-a. Фап треды/WEBM etc. Взял отпуск даже, чтобы проект захуячить. После недели безсонных ночей жидко закомитив (мало опыта с гитом было) снес к хуям проект. Думал вскрыться, но вспомнил, что главное опыт, а не это говно для /b/тардов.
Перешел на ASP.NET, чувствую себя нормально, пульс в норме.
Вот ты и узнаешь, взлетит или нет. Удачи, анон.
Сливал мне челик по js курсы, которые продают за 50к
Хуета. Просто хуета. Тягомотина. Только если под чистку картошки зайдет
Я не понимаю, как это так происходит, что мы упаковываем код из крестов в библиотеку и можем вызывать функции из крестов?
По идее, сам сишарп обрабатывается через компилятор jit в машинный код, сами кресты тоже в таком случае работают через jit?
Прочитай про Interoperability с PE DLL
Хорошо, спасибо
Да
бамп
И всё таки? Мне было бы удобно разжеванное последовательное обучение от основ до уровня, когда можно будет задумываться об устройстве жуном. Хотя бы понять что к чему, как работать в VS, основы asp. Шарп немного знаю, пилил простенькие мобилки на юнити
Шапка хуевая. Во первых - что это за девочка? Во вторых нет ссылок на скачивовывание книг по C#.
только такое обучение кроме копипасты старого кода тебе ничего не даст в принципе. Мозгаби надо думать а не это вот всё.
все книги на либгене/рутрекере
нужные части помещай в рамку с фоном (иначе будет транспарент, и клики будут только по тому что имеет цветные пиксели), и на нее вешай обработку клика - открываешь окна и что хочешь делаешь, а на бэкграунд где расположено тривив, уже вешай обработку клика но для того чтоб сделать сброс.
https://pastebin.com/C8JBCB4t
public static void Login(string login, string password, out string session, out int userId)
можно ли ошибку cs0177 вывести в исключения?
Так это же ошибка возможного не инициализирования out параметра. Ошибки времени компиляции нельзя просто так взять и проигнорить.
Цель: опыт командной и вообще разработки, набивания гита.
Пошёл нахуй, не можешь в гугле найти, так нехуй тебе в сишарпе делать.
И найти толком почитать/посмотреть не могу ничего.
Нихуя, есть еще определенные типы ошибок, которые игнорируются блоком try catch?
Где почитать?
>Compiler Error CS0177 - The out parameter 'parameter' must be assigned to before control leaves the current method
>вероятно
если не знаешь, зачем высираешь свое "вероятно"?
Может на каждый copliler error высрем по посту? Их на минуточку овер 1к. Как раз на 2 треда
>и как же быть?
Ошибки cs - это ошибки компилятора. Значит ты написал невалидный код, решение только одно - написать правильно. Ты бы еще спросил "я вот написал jhfgkjdfdfguhu, почему оно не компилируется и не майнит биткоинты, может трай/кэтч добавить?".
я про другое, про ловлю исключений трайкачем. Ошибки должны исключать до эксепшинов.
я думаю он из сей/плюсов пришел, где через препроцессоры куски кода исключал лол)
Естественно, любая IDE, в том числе ее билдер тебе вывалит ошибку и не скомпилирует проект (ошибка компиляции КАРЛ). См. пикрил 3
Даже если ты заключишь в блок Try-Catch - сначала идет анализ всего синтаксического дерева от 1 строки до последней на наличие ошибок компилятора (блок try-catch игнорируется). См. пикрил 4
не забывай, что в .NET идет 2 уровневая компиляция - C#->MSIL->commands, где все косяки ловятся на этапе преобразования C#->MSIL, т.е. чтобы выстрелить себе в ногу нужно очень сильно постараться
все еще сидите на богомерзком сисярпе и обоссаной ИДЕ от мелкософта? Мне вас жаль (нет)
>Если у тебя нет мака - считай ты уже опущенец.
В этот раздел нужен мочератор, чтобы банил загульных вскукареков
Какой внутри Ксамарина используется язык? Я имею в виду какая версия Шарпа? Async-await завезли? Как треды в android приложении делятся на UI-поток и остальные потоки? Из UI не рекомендуется дёргать сеть, из остальных нельзя дёргать UI. Всякие нативные PageSnapHelper'ы из Андроида останутся или с Ксамарином идёт своя пачка инструментов?
ДА почти на все.
Возьми во внимание, что есть 2 замарина, один неитив, где пишеь разметку xml(на андроид) или свифтом(не помню что там отвечает за разметку), а есть формс, где гразметка XAML.
на нейтив придётся делать две вёрстки? Делать Нейтив под Андроид и Forms под iOS это гиблое дело, да?
Не удивлен что такие дауны в пр сидят.
>>63809
Слегка набросил просто. Всегда кекаю с сисярпа.
>>63819
Гиблое дело. У тебя все отвалится на ведройде Я пишу на нативе под обе платформы и мб на иосе. Да, сделать можно, какой нибудь ту ду лист.
Если пойдешь дальше - то я бы выбрал flutter, если ты уж так хочешь что-то сделать.
А так, лучше не лезть.
да хуйня этот selenium. Он для эмитации дейтельности подходит, но не для парсинга точно. Мне уже анон выше помог с этой задачей.
Перебирать окна у каждого процесса, найти процесс с интересующим тебя окном, прочитать значения.
Приветствую. Пишу редактор для простенькой игры застрял на сохранение уровней. Сохранение записывается в обычный блокнот. Компилятор выдаёт исключение когда пытаюсь сохранить уровень с большей шириной чем изначальной. Может кто знает в чём дело? Я уже все гляделки проглядел.
Пиздец.
Пастебин в твои края не завезли? Как мы должны на скрине длиной 10 километров баги искать?
> Компилятор выдаёт исключение, а какое - не скажу. Вот, полюбуйтесь на шакальный скриншот моего кода. Я у мамы дурачок.
Ты бы еще фотку из тетрадки с кодом приложил.
Хотя даже с пастебином этот эталон говнокода никто разбирать не станет. Я такого пиздеца давно не видел. Схороню, пожалуй.
Я бы с радостью сделал так как ты говоришь, если бы знал как. И если бы знал, то не спрашивал бы в тематическом треде. Чуешь подвох? Если нет, то подскажу: твой совет не поможет решить проблему.
Ты ебаное бездарное безвольное чмо. Пять секунд гугла, блядь:
http://www.cyberforum.ru/csharp-beginners/thread291420.html
http://www.cyberforum.ru/csharp-beginners/thread248881.html
https://ru.stackoverflow.com/questions/491082/Создание-списка-окон-получение-их-handle-и-title-на-c
Не перезвоним.
1. Первое, как уже сказали, залей на пастебин. Это нужно в дебагере посмотреть.
2. Конвенции кода/нейминг. Не следует называть переменные в snake_case на шарпе. Также не следует злоупотреблять сокращениями. Комменты желательно учись писать на ангельском.
>Зачем комментировать каждую строчку?
Что бы знать для чего она. Я только с прошлой зимы начал изучать C#, поэтому стараюсь не запутаться.
Я дико извиняюсь, но ты учишь уже минимум 8 месяцев сишарп, и тебе все ещё нужны комментарии "это переменная" и "это конструктор" чтобы не путаться?
я тупенький
То что он платный, не делает его менее говнокодом.
Рефы/ауты повсюду в 2019, когда все уже вроде бы осознали преимущества чистых функций.
Проебы отступов, влияющие на читаемость, и ебучий снейк_кейс.
Возврат null-а вместо явного эксепшна.
Это только едва окинув взглядом видно.
Платный код, через который училось сотни вкатывальщиков. Хули.
>Зря, это платный урок с вебинара на Юдеми, через который прошли за 4е года несколько сотен обучающихся.
Либо это ты навилосипедил такую хуйню, вырывая куски из курса, либо курс делал студент-первокурсник с кафедры лингвистики и ты успешно спустил деньги в унитаз, либо ты пиздишь вероятнее всего.
Ответ на твою проблему: забудь про сишарп и игры. Найди простую книжку по структурам данных и алгоритмам, потом почитаешь введение в ооп, через полгодика. Потом можешь попробовать пописать лаб0 на сишарпе.
Тебе с таким понимаем надо сидеть сортировку пузырьком задрачивать на питоне и рекурсии осваивать. У тебя одни и те же шмотки кода повторяются во всех методах, лол.
Хуевый совет на самом деле. Теорию надо параллельно практике дрочить, иначе все глаза перегорят за полгода теории и чел дропнет
Ну, по комментариям - похоже, что таки это урок с вебинара.
Алсо, непонятна причина возмущения.
Посмотрел по диагонали - там обычный дельфи-стайл говнокод, какой и должен быть на этом вашем шарпе.
Включая ресайз массива. Всё, как любят кузьмичи-дельфисты. Про векторы и прочие мудрёные структуры данных они ещё не знают, видимо.
>и чел дропнет
В его случае это только на пользу.
Пускай сначала хотя бы какие-нибудь коды хаффмана и поиски кратчайших путей научится писать, тем более если в геймдев вкатываться. Он даже про существование коллекций не знает.
Посмотри на этот код и скажи, чтобы ты ему мог бы предложить самостоятельно запилить?
>в геймдев
Чел, он делает какую то консольную игрушку, какой в жопу гейдейв? Написать змейку или тетрис - обычное дело для большинства начинающих.
Так в геймдеве оптимизон решает, обычные массивы жрут меньше твоих абстрактных структур.
> оптимизон решает
А давайте оптимизировать прежде, чем готово техническое демо? Ну давайте? Ну круто же. Будем сидеть над пустым окном студии и размышлять, на сколько микросекунд списки медленнее массивов.
Я приду к тебе домой и обоссу тебе ебало, когда проверю и это не сработает на хроме. Выебу твою мамку и собаку в придачу.
У меня есть список Rectangle, полученный путём обработки с графической либы.
Так вот, я хотел бы пройтись по списку этих самых четырёхугольников и отсеять всякий мусор.
Нужные мне четырехугольники упорядочены в линии вертикально, но они могут незначительно различаться в размере.
Так вот, как мне взять и проверить, нет ли рядом с нужным мне четырехугольником рядом похожих?
Это не тред помощи всяким наглым хуесосам и вообще не тред помощи, он посвящён языку, все остальное опционально.
Я изначально дружественно написал, и сказал что не могу найти ничего конкретного в моем случае, пока какой-то хуесос не предложил гуглить. Встретил бы такое уебище вживую - переебал бы, отброс человечества, к нему хорошо а он умный блядь гуглить посылает.
И да, мегамозг обоссан по факту - ни один из советов не помог, ссылки неверные, на мой вопрос не отвечает и проблему не решает. Все эти способы не дают размеров окна браузера хрома/хромиума. На скрине вивальди развернут на весь экран, а размеры выдает 160х28. Можете обтекать, чуханы. Вам не перезвонят.
>Либо это ты навилосипедил такую хуйню, вырывая куски из курса, >либо курс делал студент-первокурсник с кафедры лингвистики
Да нет, писал слова за слово, курс называется Сакобан (Создание игрового комплекса Sokoban с редактором уровней, игровым помощником, сетевого режима.) от Магистра математики и информатики, C#, Java, PHP программиста Евгения Волосатова
https://www.udemy.com/course/sokoban2/learn/lecture/11134866?start=1875#questions
У него вообще много курсов это второй курс, который я также пытаюсь осилить (кстати первый - Игры со спрайтами я так же написал, но игра отказывается работать lol)
>либо ты пиздишь
Да, нет.
>Ответ на твою проблему: забудь про сишарп и игры. Найди >простую книжку по структурам данных и алгоритмам, потом >почитаешь введение в ооп, через полгодика.
Всё так и делал по совету опытных товарищей - Рихтер Дж.
Программирование на платформе Microsoft .NET Framework 4.5 на
языке C#. 4-е изд. Только через пару месяцев изучения книги, где - то на 1/3 я окончательно запутался и перестал понимать, начинал заново и уже записывая в блокнот важные вещи, но ещё больше запутался. Посоветовали изучать С# по курсам с юдеми, вот и изучаю сначала был другой преподаватель с которым я успешно написал бумбермена и тетрис, змейку, а с этим уже вторую игру не могу осилить.
>В его случае это только на пользу.
Мне нравится язык и программировать, просто я думаю что уже поздно вкатываюсь.
>Он даже про существование коллекций не знает.
Это не те что списки?
>>64294
>Не получилось сохранить? Ну и лан)))0
Что можно исправить?
>от Магистра математики и информатики
Визжу нахуй в голос. Пиздец вкатывальщики непуганные, любое дерьмо едят, а МАГИСТРЫ МАТЕМАТИКИ и рады заливать им.
Курсы если и смотреть, то не от мнимых магистров, а тех кто в области чем-то известен.
Сто, сука, тысяч нахуй триллионов миллиардов бесплатных и качественных курсов. Не хочу, хочу смотреть говно за деньги. Вон, на https://ulearn.me/ посмотри от СКБ Контура. Только там не заходи в машлерн даже если очень захочется, сам автор курс называет устаревшим дерьмом
>Это не те что списки?
Это все те что находятся по запросу C# Collections. Тебе походу реально структуры данных изучить надо бы. Хотя бы базовые (листы и линкедлисты, LIFO/FIFO, хэшмэпы итд).
>Что можно исправить
3 варианта, может еще предложат
1)Просто выкидывать исключение вместо пустого возврата
2)Переименовать функцию в TrySaveLevel и возвращать из нее bool (результат сохранения, успешно или нет)
3)Завести enum с кодами ошибок, также переименовать функцию и возвращать из функции код ошибки (это если что-то пойти не так может в нескольких местах и тебе важно четко разделять причину ошибки, но эксепшены не хочется юзать).
Сейчас у тебя говно, которое просто говорит "ой, чет не сохранилось, я об этом никак не оповещу, пусть пользователь гадает, удалось или нет". Так не надо делать.
> Магистра математики и информатики
Тоже сиранул, вслед за аноном выше.
Как говорится, кто не умеет работать, идёт учить. А этот тип даже учить не умеет, раз у тебя игры не собираются. За деньги, раз ты уж платишь деньги, он должен вживую уделять тебе время. А эти ебланские курсы оптом бесплатно на руторе есть, если ты такой любитель говна въебать
Магистр твой тебе не рассказал про режим отладки? Врубай отладку, смотри какое значение индексов когда все падает. Тебе же пишет что там выход за границы.
> но выглядит что при одной из итераций z - delta оказывается меньше ноля и поэтому lines[z - delta] бросает ошибку
Я тоже думаю что просто получается отрицательное число вот он и выкидывает
>>64458
>Вон, на https://ulearn.me/ посмотри от СКБ Контура
спасибо
>3 варианта, может еще предложат
Понял, постараюсь что-то сделать.
>>64459
>А этот тип даже учить не умеет, раз у тебя игры не собираются.
Есть такое, постоянно допускаю опечатки, да и в примере выше я на 100% уверен, что где-то опять опечатался, но беда этого лектора, что он никогда не показывает свой код целиком, чтобы можно было свериться.
Ты же понимаешь, что корочка магистра это не так уж и сложно, если осилил 4 года бакалавра, то два года магистратуры скорее всего тоже пройдешь, так что чисто хуевый выебон, для СНГ уж точно
"C#, Java, PHP программист", а хули не "C#, ABC.Pascal, Perl, PHP, HTML&CSS, Javascript, Java, SQL программист", такое чувство, что они или сам не определился со сферой направленности, либо решил охватить все и сразу (ну или он скоро уйдет на пенсию, но судя по языкам, ему в районе 30), так эта широконаправленная личность еще и преподавать пошла, рофл
Да и еще и платить за инфу, которая уже кучами лежит в инете, что перебирать приходиться, хуй знает
1920x1080, 1:206 Мб, webm,
1280x720, 0:092,3 Мб, webm,
406x720, 0:2611,9 Мб, webm,
1280x720, 2:43
Стандартный путь - Троелсон или Шилдт, а лучше сразу двоих.
Никаких курсов или видео, все хуйня. Можете метании ещё читнуть, зачастую копипаста с Шилдта
Под пледик пойдёшь, няша?
Я анимешник. решил сделать свою игру. Пришёл в геде. Мне там говорят INSTALL UNITY. Начинаю гуглить, выясняю, что нужно знание шарпа. Иду на метанит (на самом деле нет, иду по первой ссылке в гугле на майсишарп-ру) и учу шарп. После этого вкатываюсь ИТТ и обсуждаю шарп.
А мог бы игры делать.
>Сортируешь по расстоянию между центрами
Не понял, каким образом, расстоянию между центрами от чего?
сажа, скрыл
Ну так ты нормально опиши.
Что за сортировка по расстоянию между центрами, что ты под этим подразумеваешь вообще.
Я подразумеваю длину прямой линии проложенной из центра одной фигуры к центру второй фигуры. Ты вычисляешь все эти скаляры для каждой пары фигур и записываешь в список. Затем список сортируешь по возрастанию. Таким образом у тебя будет в голове списка пара из двух ближайших фигур.
Говорю, пасть свою заткни! Так… ну я тебе щас лекцию прочитаю. Значит, юдеми, перед вкатом в айти, а именно — Магистр математики и информатики, C#, Java, PHP программист Евгений Волосатов, задумали расхуячить джуниорские мозги во всем интернете, то, что потом вошло в историю, как катастрофа в Стак Оверфлоу. Слушай и запоминай. Командующим адмиральским флотом был программист из скиллбокса. Средний программист на самом деле, но исполнительный… исполнительный, безусловно, профессионал. Но без фантазии, у разрабов вообще людей с фантазиями было немного. Дерьмо на палочке, ничего, бл*дь, не знаешь, ничего не можешь. Чё ты вообще, блядь, на дваче делаешь?
>Магистра математики и информатики, C#, Java, PHP программиста Евгения Волосатова
В небольшой прокуренной аудитории была находилось около десятка человек. Гробовая тишина создавала довольно напряженную атмосферу. Вдруг в коридоре послышались довольно громкие уверенные шаги.
-Труд всей моей жизни оказался не нужен - тихо дрожащим голосом сказал старый лысеющий мужичок в очках, сидевший в самом дальнем углу. А ведь я уже переписал заново первый том под новый язык...
-Мистер Кнут, я вас прекрасно понимаю. Я тоже всю жизнь посвятил написанию книг и выпустил бесплатный курс на курсере. Оказалось, что их никто не смотрит. После того, как у Евгения Волосатова, магистра математики и информатики, вышел курс трехчасовой курс по итераторам для профессионалов, я, и даже мистер Рихтер решили, что нам уже точно пора на покой -сказал так же тихо Роберт Седжвик
С другой стороны тоже начали осторожно переговариваться
-Странно, что я его ни разу не видел
-Гарольд, он в СНГ магистром стал. Думаешь, ты смог бы его чему-то научить?
-Слышал, что Кармак после того, как потратил деньги с последней проданной феррари на вступление в клуб формулистов, начал вычищать интернет от исходников дума и квейка. А ведь он всего лишь хотел посмотреть, как писать сокобан.
Вдруг Эндрю Троелсен встает и быстрыми шагами выходит со словами: "Господи, я же даже джаву с пхп не знаю, я не вынесу этого позора".
Тем временем по звуку шагов было понятно, что кто-то вот-вот войдет к ним. Дверь резко открывается, и стоящий в проходе высокий излучающий непоколебимую уверенность мужчина начинает говорить:
"Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.
После взноса 256 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.
Стоимость 1 дня за первый месяц: всего 8 рублей.
Первый взнос - 256 руб./30 дней.
Через 30 дней будет списано 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.
Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.
Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 256 рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.
Ну что, готовый написать сокобан? Джонни уже понял, как он должен был написать свой дум на шарпах. Это не ваша митовская хуйня в открытом доступе и даже не книжки-хуижки с торрентов. Это, блять, ПЛАТНЫЕ КУРСЫ БЕЗ ОБРАТНОЙ СВЯЗИ!"
>Магистра математики и информатики, C#, Java, PHP программиста Евгения Волосатова
В небольшой прокуренной аудитории была находилось около десятка человек. Гробовая тишина создавала довольно напряженную атмосферу. Вдруг в коридоре послышались довольно громкие уверенные шаги.
-Труд всей моей жизни оказался не нужен - тихо дрожащим голосом сказал старый лысеющий мужичок в очках, сидевший в самом дальнем углу. А ведь я уже переписал заново первый том под новый язык...
-Мистер Кнут, я вас прекрасно понимаю. Я тоже всю жизнь посвятил написанию книг и выпустил бесплатный курс на курсере. Оказалось, что их никто не смотрит. После того, как у Евгения Волосатова, магистра математики и информатики, вышел курс трехчасовой курс по итераторам для профессионалов, я, и даже мистер Рихтер решили, что нам уже точно пора на покой -сказал так же тихо Роберт Седжвик
С другой стороны тоже начали осторожно переговариваться
-Странно, что я его ни разу не видел
-Гарольд, он в СНГ магистром стал. Думаешь, ты смог бы его чему-то научить?
-Слышал, что Кармак после того, как потратил деньги с последней проданной феррари на вступление в клуб формулистов, начал вычищать интернет от исходников дума и квейка. А ведь он всего лишь хотел посмотреть, как писать сокобан.
Вдруг Эндрю Троелсен встает и быстрыми шагами выходит со словами: "Господи, я же даже джаву с пхп не знаю, я не вынесу этого позора".
Тем временем по звуку шагов было понятно, что кто-то вот-вот войдет к ним. Дверь резко открывается, и стоящий в проходе высокий излучающий непоколебимую уверенность мужчина начинает говорить:
"Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.
После взноса 256 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.
Стоимость 1 дня за первый месяц: всего 8 рублей.
Первый взнос - 256 руб./30 дней.
Через 30 дней будет списано 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.
Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.
Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 256 рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.
Ну что, готовый написать сокобан? Джонни уже понял, как он должен был написать свой дум на шарпах. Это не ваша митовская хуйня в открытом доступе и даже не книжки-хуижки с торрентов. Это, блять, ПЛАТНЫЕ КУРСЫ БЕЗ ОБРАТНОЙ СВЯЗИ!"
>Ты вычисляешь все эти скаляры для каждой пары фигур и записываешь в список. Затем список сортируешь по возрастанию.
Хм, а если фигур у меня 400 или еще больше?
Лучше бы делом занимались.
Тред проскроль отсюда вверх.
>Постер закинул простыню кода картинкой
>Почему у меня вылетает ексепшн?? (не говорит какой)
>Скинь код на пастебин, посмотрим в отладчике
>Игнор
>Еще одно напоминание о пастебине
>Автор поста, который учит шарп 8 месяцев, со вчерашнего дня не может посмотреть в отладчике почему у него индекс ексепшн
Ну и конечно срач про говнокурсы без обратной связи, когда человек заплатил деньги, а спрашивает помощи в шарпотреде.
> а если фигур у меня 400 или еще больше?
Тогда тебе лучше нанять себе программиста в помощь.
Нет я.
>Скинь код на пастебин, посмотрим в отладчике
>Игнор
>Еще одно напоминание о пастебине
Я просто не совсем понял, что за пастебин.
Вот ниже скинул.
Класс загрузки и сохранения файла (проблемный)
https://pastebin.com/zTCaqHHR
Основной класс редактора
https://pastebin.com/LJvjj45D
>>64462
>Магистр твой тебе не рассказал про режим отладки? Врубай отладку,
Спасибо. Благодаря этому товарищу целый день возился с отладкой выяснил что исключение происходит в уравнении lines[z - delta] получается отрицательное число.
z - delta = -1 я так понимаю индекс массива не может быть отрицательным
>>64489
>>64633
>>64652
>>64680
Зря вы так, человеку нравится его дело, пусть даже и коряво (даже мне понятно из предыдущих его уроков) но он пытается донести знания в массы.
И здесь думал о 2х вариантах или сделать проверку чтобы z всегда был всегда больше delta или смотреть почему curr (это переменная состояния массива) постоянно равна 0.
Проблема в том что только первый уровень не переписывается, не меняет размеры остальные уровни работают нормально. Более того если менять 1й уровень по одной строке и/или одному столбцу, то так же программа работает.
Сейчас исключение вылетает только если я сразу захочу поменять в большую сторону несколько строк или столбцов, на уменьшение отлично работает.
Но если я перепишу строку int delta = cell.Getlength(1) - height, на int delta = height - cell.Getlength(1) то первый уровень начинает сохраняться при добавлении дополнительных строк или столбцов, но теперь исключение появляется при удалении нескольких строк или столбцов.
>он пытается донести знания в массы.
За 3к в месяц учит писать хеллоуворды и объясняет копипасты из кнута и stackoverflow. Герой нашего времени.
>z - delta = -1 я так понимаю индекс массива не может быть отрицательным
>>64871
>И здесь думал о 2х вариантах или сделать проверку чтобы z всегда был всегда больше delta или смотреть почему curr (это переменная состояния массива) постоянно равна 0.
>>64888
>Но если я перепишу строку int delta = cell.Getlength(1) - height, на int delta = height - cell.Getlength(1) то первый уровень начинает сохраняться при добавлении дополнительных строк или столбцов, но теперь исключение появляется при удалении нескольких строк или столбцов.
Блять, пощади, завтра уже весь тред от смеха вымрет. Ты перебором что ли код пишешь?
Время поста на пастебине увеличил
Это класс загрузки уровня
https://pastebin.com/9QmwTunK
Основной класс
https://pastebin.com/h4nfR4vf
>>64892
>Блять, пощади, завтра уже весь тред от смеха вымрет.
Я думал вы здесь серьёзные люди.
>Ты перебором что ли код пишешь?
Скорее выполняю тесты, для того чтобы правильно отладить программу я смутно представляю её работу.
Чет сижу и вообще не понимаю логику.
Если у нас есть уровень, и мы хотим просто его сохранить в файл, зачем нам его читать из файла и что то там делать с ним? Разве не должен метод LoadLevel доставать уровень из файла, а SaveLevel только записывать его обратно в файл?
> О(1)
Посрать на ваши ботанские штучки. Старый добрый массив тупа быстрее чем эти ваши ООП-классы.
Магистерскую степень получишь - поймёшь
Волосатов, нахуй ты весь тред засрал?
Вот и думай.
2чую. Кстати, аноны, пробовал кто курсы на юдеми делать? Делов-то хуйня, берешь тот же LINQ и начинаешь говнокодить. Или там без рекламы не получится ничего?
Нет, леплю костыли и удивился, что такое возможно и вроде даже нормально работает. Потом подумал и не нашел не одной причины почему оно не должно работать и решил спросить у двача не упускаю ли я что. Вообще через статический конструктор делал потокобезопасную инициализацию бд в еф, но что-то выглядит хуевенько, лучше сделаю руками через lock.
Мне кажется, это ещё по божески. Типа стажировки
Потому что нет
- Владение Git, Mercurial, SVN
- Опыта от одного года работы с одним из UI фреймворков
- ... сейчас опять бомбить начнёт, закрываю двач
жри свое говно молча
удаляй всё нахуй что написал. Делай структуру данных, и открой для себя сериализацию.
>НЕ ПРО ЭТО
формулируй мысли правильно, приводи примеры. Понятно, что на досках вопросы аутисты задают, которые не осилили SOF, но старайся хотя бы
ты меня спутал с долбоебом который пысался трайкетчем ошибки компиляции обойти. А я сказал что вы тут охуенно живете и ловите через трайкатч все исключения. вместо нормальной обработки ситуаций в коде. трайкетч это самый крайний случай, злоупотребление ими может оч знатно тормозить софт.
ага, так еще и до октября нужно определиться. Видимо плачевный опыт после предыдущего потока.
Хуйня это все, нам тоже мозги ебали про октябрь крайний срок, в итоге челики ещё в феврале-марте по темам скакали лол.
Можно как-то внутри метода треда подождать?
Спасибо, но как-то криво работает. При 6 тредпулах и задержке в 15000 - отвисает через 7 секунд и начинает якобы делиться на 2 и уменьшать отвисание. Очевидно что я что-то не понимаю.
Но я уже забил хуй, оставлю без задержек.
for (int i = 0; i < threadcount; ++i)
{
ThreadPool.QueueUserWorkItem((WaitCallback) (state =>
{
while (true)
{
lock (this)
{
if (!_running)
break;
}
try
{
DelatHuinyPokaNeOstanovyat();
}
catch
{
HochuPodozhdat();
}
}
}));
}
> Очевидно что я что-то не понимаю
Асинхронный метод создаёт ещё один тред. В твоём треде. Всё по заветам икзибита.
1280x720, 0:03
На этом мои знания заканчиваются. Ты уже работаешь с тредами, возможно тебе не мешало бы перекроить архитектуру и подход.
public Array NameButton()
{
string[] s = new string[2];
int colums = 0;
using (connect = new OdbcConnection(connection))
{
query = "select buttonsetting.buttoncontent from buttonsetting where buttonsetting.fk_unit= 1";
cmd = new OdbcCommand(query, connect);
try
{
connect.Open();
dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
colums= dataReader.GetValues(s);
for (int i = 0; i < colums; i++)
{
MessageBox.Show(s.ToString());
}
}
//connect.Close();
}
catch (OdbcException e)
{
MessageBox.Show("Невозможно подключится к базе данных" + e.Message);
}
}
return s;
}
//Вызываю метод NameButton
public ObservableCollection<Button> StackCollection { get; set; }
StackCollection = new ObservableCollection<Button>();
dal = new DAL();
//string[] gg = new string[3];
//gg = dal.NameButton[0] as string[];
foreach (string s in dal.NameButton())
{
MessageBox.Show(s);
StackCollection.Add(new Button()
{
Content = s,
// Content = dal.NameButton(),
});
}
public Array NameButton()
{
string[] s = new string[2];
int colums = 0;
using (connect = new OdbcConnection(connection))
{
query = "select buttonsetting.buttoncontent from buttonsetting where buttonsetting.fk_unit= 1";
cmd = new OdbcCommand(query, connect);
try
{
connect.Open();
dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
colums= dataReader.GetValues(s);
for (int i = 0; i < colums; i++)
{
MessageBox.Show(s.ToString());
}
}
//connect.Close();
}
catch (OdbcException e)
{
MessageBox.Show("Невозможно подключится к базе данных" + e.Message);
}
}
return s;
}
//Вызываю метод NameButton
public ObservableCollection<Button> StackCollection { get; set; }
StackCollection = new ObservableCollection<Button>();
dal = new DAL();
//string[] gg = new string[3];
//gg = dal.NameButton[0] as string[];
foreach (string s in dal.NameButton())
{
MessageBox.Show(s);
StackCollection.Add(new Button()
{
Content = s,
// Content = dal.NameButton(),
});
}
Твой метод возвращает пустой массив string. И в следующий раз кидай pastebin
Ладно, я проебался, не пустой массив. А ты в курсе вообще, что такое отладка? Ты блять код отлаживаешь мессадж боксами, это пиздец. Почитай об отладке, попробуй выполнить пошагово программу и скорее всего ты сам найдешь проблему.
1. User
2. Site
3. Request
Иерархия такова
- User 1- Site (один ко многим)
- Site 1- Requests
Внимание вопрос: Нужно ли хранить внутри Site и Request идентификатор сущности уровня выше?
Пример:
User{
int Id ;
DateTime RegistrationDate;
string UserIp;
IList<Sitemap> Sitemaps + создание экземляра через конструктор
Лучше нарисуй свои таблицы и связи, будет гораздо понятнее. А вообще так:
1. Один к одному - А и B имеют ссылки на идентификаторы друг друга
2. Один ко многим - тех кого много имеют ссылку на идентификатор одного
3. Многие ко многим - через дополнительную таблицу, содержащую связи.
Нужно ли хранить в С ссылку на А в случае А->B->C? Зависит от использования. Можно путем увеличения размера базы ускорить поиск соответствия C<->A, либо не хранить ссылку, тогда база будет меньше но поиск соответствия будет через джоин таблиц.
ПЕРЕКАТ, няши!
Новый тред тут
https://2ch.hk/pr/res/1466365.html (М)
https://2ch.hk/pr/res/1466365.html (М)
https://2ch.hk/pr/res/1466365.html (М)
Как то так, как на пикче.
Все сущности - уникальны. Даже если сайты будут повторяться, то SummaryTime будет варироваться +- секунды.
Из за чего возник вопрос - в процессе деление на Data access layout (DAL), business logic layout (BLL) и UI По совету анона из метанита кста - https://metanit.com/sharp/mvc5/23.8.php
В процессе формирования BLL уровня возник вопрос реализации GetUser/GetRequest методов репозитория, как должны хвататься сущности связанные по цепочке (Т.е. User->Sites->Requests), если BLL уровень не содержит внутри себя коллекций связанных объектов, т.е. в UserDTO (Data transfer object) уже нет коллекций, как на пике 2.
Если разберешь, что я пытаюсь донести, буду очень благодарен.
Не знаю, почему я так заморачиваюсь над архитектурным строением всех объектов будучи даже не джуном, но кайфую от правильно постоенного взаимодействия объектов больше, чем от их реализации.
Так в бизнес-логике ты можешь ворочать бизнес-сущностями, у которых есть ссылки друг на друга. А в контроллер уже возвращать DTO.
@pytest.mark.parametrize('count', [1, 2, 3, 4])
@pytest.mark.parametrize('name_type', ['n1', 'n2'])
def test__init__func1(count, name_type)
и работает оно так, что функция вызывается с комбинацией всех вариантов параметров.
Можно ли такое же в NUnit повторить, или только руками чеерз TestCase все комбинации описывать?
Если мне нужно передать в контроллер UserDTO, на котором висят в БД другие сущности, как их привязывать, если в DTO на них нет ссылки? Если делать это отдельными репозиториями типо UserRepository - перечень юзеров, SiteRepository - перечень сайтов, то как SiteRepository поймет, какие сущности нужны для конкретного User-a?
это я виедл. оно сопоставляет 1 к 1,
а в примере выше на питоне был бы вызов тестов с сочетанием параметров:
1 n1
1 n2
2 n1
2 n2
3 n1
3 n2
4 n1
4 n2
Ну напиши в TestCaseSource
foreach(var a in data1)
foreach(var b in data2)
...yield return new TestCaseData(a, b);
Ща прочитал статью в ссылке, что сам тебе скинул и вот:
https://nunit.org/docs/2.6.4/combinatorial.html
а ты не читал её, а-я-яй!
Я так понял уже можно не ждать, да?
Честна говоря да, ебты бля, лучше через форыч уелд)) да и вообще бнит-тесты для лохов неуверенных)
У меня TDD прекрасно без них идёт
да в планах рефакторинг, надо тесты чтоб быть увереным что ничего не проебал. только бизнеслогику покрыть важно. остальное плевать)
да и как то уже начало нравиться, сформулировать задачу проблему, а потом кодом ее решать)
Вы видите копию треда, сохраненную 1 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.