Это копия, сохраненная 22 августа 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
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/766002.html (М)
- 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 Asyn_chronous 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
- 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 Asyn_chronous 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
я про .net core говорю, или ты, даун, не осилил сего посыла?
Скоро же сделают. А так постгря. В ef6 не было codefirst и миграций, в ef7 codefirst завезли, а про миграции не знаю.
Первый вариант естественно.
MongoDB.
Использую OpenGL через OpenTK для отображения картинок (1000x1000 - 3000x3000), но у меня оно медленно работает и память замусоривается.
Схема примерно такая:
Загрузить необходимые текстуры.
Привязать текстуру.
Нарисовать прямоугольник (с текстурой).
Отвязать текстуру.
Удалить текстуру (GL.DeleteTexture), так как она не используется далее. И так несколько раз.
Но даже со сбором мусора вручную (GC.Collect) оно всё-равно забивает всю видеопамять вскоре.
За день досконально разобраться? А ты смешной
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration
И у меня не хочет подключатся к mssqllocaldb, пробовал все, названия инстансов с паппки АппЛокаль, пердолил консольку, в СКЛсервере подключается к серверу с именем компа. А вижуал - нет. ЧЯДНТ??!
c emailом проебался, там string конечно же, но дела это не меняет, возвращет null
по-моему this.Json(примитив) всегда норовит вернуть какую-нибудь нёх по дефолту. попробуй исправить на new{success=true}. лучше, конечно, во всех вариантах возвращать одинаковую по структуре модель
а вообще, я, может быть, уже запутался во всех версиях асп фреймфорков, но ты юзаешь православный MVC
Я про это и говорил, в примере то нихуя не они, но надо же и знать почему, у нас же здесь не бидлокодеров тред, а? А? А?
так сюда не учиться приходят, в бОльшей массе, а узнать
> я вот тут написал govno_kod_neim, как мне сделать pezpoleznaya_huinya_4erez_anus_neim
Скажите, вот, я хочу учить сшарп. В какое направление лучше смотреть, какие у него перспективы, где чаще используется? Книжка head first C# норм или лучше players guide?
Ну, блин, вот реально, мне синтаксис показался каким-то "монолитным" что ли. Вот просто понравился, да и IDE охуенное, эта Visual Studio - чудо (хоть и монстроузоное).
Когда фуллСтек станешь - поймешь. Веб это всегда линь, а не шинда с иис
Учите лучше джаву, джиэс и постгрис. Иначе соснете со своим сишарпом как подрастете
Еще у джава божественный синтаксис - ловерКамелКейс, который идеально коррелирует с вебом, чего не скажешь про решетку
За рулем писал, не придерайтесь
{
int i = 1;
foreach (var p in items.GetAll())
{
var city = new City { Name = p.Name };
city.Id = i;
i++;
db.Citys.Add(city);
}
db.SaveChanges();
}
Как мне сделать это в одну строчку на LINQ?
на linq-в-одну-строчку этот код будет менее эффективным
protected void Add(SomeContext db)
{
items.GetAll().Select((item, index) => new City {Id = index + 1, Name = item.Name}).ToList().ForEach(item => db.Citys.Add(item));
db.SaveChanges();
}
но, если у тебя db.Citys типа DbSet<T>, но можно сделать db.Citys.AddRange(вся линка до тулист)
Анимацию лучше через Visual Blend фигачить.
Вроде через аккаунт майковский всё делается, а по умолчанию триал ставится.
Абанта, посгрес, орм не использую, хватает даппера.
for (int i = 0; i < count; i++)
{
await Task.Run(() => FullReg());
await Task.Delay(5000);
if (checkBox1.Checked)
{
if (i % proxyswitch == 0 && i != 0)
{
//Task.WaitAll(); -- ТУТ ДОЛЖНА БЫТЬ ПРИОСТАНОВКА ВСЕХ ТАСКОВ
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\HMA! Pro VPN\bin\HMA! Pro VPN.exe", "-changeip");
await Task.Delay(10000);
}
}
}
while(int.Parse(CountFailedAccLabel.Text) + int.Parse(CountFailedAccLabel.Text) != count)
{
await Task.Delay(proxyswitch*5000);
await Task.Run(() => ChangeIPHMAButton_Click(sender, e));
await Task.Delay(10000);
//System.Diagnostics.Process.Start(@"C:\Program Files (x86)\HMA! Pro VPN\bin\HMA! Pro VPN.exe", "-changeip");
}
https://social.msdn.microsoft.com/Forums/vstudio/en-US/ac5d86bf-54f9-403c-9249-dd9023bd5623/pausing-a-task?forum=csharpgeneral
все 3
> платформозависимый
Программирую ASP.NET на макбуке, деплою на линукс.
Виндой не пользовался уже пару лет.
>платформозависимый
Долбоеб не смог в чтение спецификаций и срачей в GNU сообществе. Маня, C# полностью независим от платформы, но зависит от исполняемой среды, которая может быть написана любым мимокрокодилом под любую платформу без оплаты в казну Билли. С таким же успехом мы можем влетать и кукарекать аля ЗАВИСИМЫЕ ОТ СРЕДЫ/ФРЕЙМВОРКА/ПАРАШИ
На подобии Tabs Studio
Гугли TPL, а лучше наверни главу 19 Троелсена.
У тебя есть множество потоков, которые действуют независимо, но что если они перебегают друг другу дорогу? Например, им всем необходимо произвести вывод своей работы в консоль или на вьюху. Чтобы программа не выдавала хуйню и не выкидывала исключение, можно выдать любой объект за некий светофор аля можно ли приступать к данному коду или нет. То есть, косвенно реализовывавется пауза.
У Троелсена будет пример с 10 потоками, которые выводят числа от 0 до 9. Без данного светофора (lock), они все напишут хуйню из разряда 0,0,0,1,0.1,1,1,2... А если предоставлять вывод потокам по очереди, то они нормально выведут числа от 0 до 9.
У тебя задача похожая. При смене IP адреса, ты блокируешь или выставляешь красный свет светофору для потоков, у которых в начале своей итерации или жизнедеятельности стоит
lock(obj){} //Не пихай сюда код, иначе потоки будут его делать по очереди
И пока меняется IP, потоки ожидают своей очереди на строчке выше. Что надо сделать?
1. Объявить единый для потоков объект, который будет являтся флагом
private static object obj = new object();
2. Функцию по смене IP адреса завернуть в конструкцию lock
lock(obj){ смена IP }
3. В функции, выполняющей итерационное действие выставить пустую конструкцию lock
lock(obj){ } тут код
В идеале, у тебя должен быть массив, информирующий об окончании итерации, для последующей смены IP адреса, если не ожидается окончание таска. Иначе, можно было бы прописать WaitAll();
Ну и собственно итог:
Потоки, выполняющие итерационное действие приостанавливаются до тех пор, пока не смогут заблокировать самостоятельно объект obj. Так как они ничего с ним не делают, задержки между потоками не должно быть явным (её нету).
А вот смена IP - действие длительное и замораживающее. Дождавшись окончание итерации или окончание всех тасков, что правильно и вообще пул потоков надо было использовать, происходит смена IP адреса. В это же время, итерационные потоки не смогут продолжить свой код, так как они не могут заблокировать объект obj, который используется сменой IP адреса. Как только IP адрес будут сменён, они смогут продолжить свою работу в штатном режиме.
все, что можно сделать в цикле, можно переписать на linq. вопрос эффективности онли
Ты уверен, что это лэйблы надо двигать, а не текст местами менять? если я тебя правильно понял
Labels.Text = sortedValues.ToString()
Эффективность пока не важна, хочу разобраться с linq
>>798541
Да уверен. Потом может вместо лейбелов будут другие элементы. Интересует именно как отсортировать ControlCollection формы.
Нельзя создать экземпляр абстактного пацана, тащемтв
Обязательно надо ждать окончание итерации на всех тредах, где используется ип, иначе раз на раз будешь ловить эксепшн
> Читаю Троелсена
Это как советские учебники по физике - где-там полезный базис и тонны устаревшего материала. Не рекомендую
Не знаю, базис по C# 6.0, TPL и LINQ зашёл, а вот EF 6.0 и WCF нет, хотя последний норм. Надеюсь, что WPF нормально пройдет, а ASP.NET у Адама изучу его.
http://professorweb.ru/my/csharp/thread_and_files/1/1_16.php
На самом деле, мы не знаем, что ты пытаешься сотворить, но могу предположить, что брутфорс или парсер поеботы.
>>797970
может ли лок принять Task.Delay???
мне во втором пункте еще нужна приостановка после смены IP, если делать через тред слип, у меня весь поток повиснит
int i = Int32.Parse(Console.ReadLine());
i++;
Console.WriteLine(i);
В Си я в таком случае ставил
while ( Пользователь ввел хуйню) {Пусть вводит еще раз}
И все работало, а здесь из-за вылета такого не получается.
Может есть какой то более простой способ получать числа с ввода, который бы не вылетал?
Благодарю анон, не представляешь как мне помог. Теперь могу не боятся неправильных вводов.
Туплю
Как добавить сюда проверку (Materials.Name).Equals(item.Name)
шошо?
Не понял тебя. Куда добавить?
Отбой, всем спасибо за внимание
Туплю сильно, пошел спать
.Any(x => x.Name.Equals(item.Name)
Через Change ili Add?
через reset --hard
В каких из этих книг объясняется именно шарп и только шарп(т.е. LINQ, делегаты и т.д.), а не разжёвывается, что такое класс и что такое функция?
Пытался осилить когда-то несколько книг по шарпу - не смог. Они все начинаются с объясния крайне элементарных вещей вида "чтобы сложить переменную a и переменную b, напишите a + b". Мне от таких вещей становилось крайне скучно и я забивал.
В шарп чуть-чуть могу, но без всяких фич вроде лямбд и делегатов. Класс создать могу, метод написать могу, из стандартной библиотеки функцию вызвать могу. В принципе, больше ничего и не могу.
почитай конкретные главы троелсена и все. если тебе становится скучно, пропускай до сделующей главы. в чем проблемс?
нет таких книг, которые не сначала, но и не о сложном. люди, как правило, системно подходят к обучению
3 месяца, но у тебя не получится
>>79920
абаснуй , может че подскажет какой подход к изучению
Ага есть такой косяк ,для передачи доброжелательных намерений. Так все-таки может подскажите как лучше учить ? И критерии джуна на С#?и какое ориентировочное количество часов брать ?
присоединяюсь к этому, нужно цифры для расчетов
хз. почитай албахари, если тебе нравится
Я пытался начать с Троэлсена , но как то не пошло по этому отыскал себе репетитора , я работаю и как бы времени не очень много . По этому я и спрашиваю у гуру что должен знать и уметь джун и сколько приблизительно часов придется оплатить репетирору ибо как бы бабки не малые )
> погромирование
> оплатить репетирору
подозревал, что пограмач улетает на дно, но вот чтоб уже
О папашки прогеры понабегали , когда есть желание и не особо времени и чуток денег лучше заплатить человеку который втеме и может объяснить нежели самому привозмагать
Если не можешь в книги, то лучше не вкатывайся... Репетиторы тут не помогут, все эти курсы, стань успешным айтишником за 2 месяца йоба курсов - хуйня
хзхз, имхо это будет тоже самое, что самоучеба + потраченные деньги. ну да, возможно, что-то тебе объяснят сразу, не придется расшибать лоб об гугол, но тут такое
Я это осознаю ,но все-таки если рядом есть человек который поможет кой че объяснит и скоректирует в случае чего , и подскажет может из своего опыта я думаю это того стоит. Полюс стимул учится ибо бабки плочены
Ну почитал я Троэлсена но как бы там нет заданий ,которые можно было бы делать , а задачек в инете особо не отыскал ) опять таки мотивация к быстрому усвоению инфы ибо я уже не купил то что очень хотел в пользу учебы . А остается в том дерьме в котором я сейчас с теми перспективами которые мне светят если не шевелится достаточно фиговые
придумай себе микропроект с каким-нибудь ололополезным функционалом. мы поможем
Ты вообще чем хочешь заниматься? Веб/десктоп/мобилы. Хотя базовый с# в любом случае нужен
Что за хрень в нем твориться с прозрачностью? Поставил у фигурки BackColor - Transparent и ее фон вместо того чтобы исчезнуть стал цвета окна. ВТФ, как это починить?
> Windows Form
НАХУЯ?
Если не дочитал, то дочитывай Троелсена и по WPF ченить. И запили калькулятор. Или вон, как чувак, шахматы сделай
Зачем осваивать мертвые технологии?
Есть же ВПФ, пысть даже ты и будешь использовать 10% его функционала
на форме есть свойство TransparentKey. он, по сути, задает цвет прозрачности (звучит как лол)
http://pastebin.com/v5L3eqS7
Помогите запустить ее на UWP. Выдает следующие:
'Delegate' does not contain a definition for 'CreateDelegate'
Молодец! Скоро джуном будешь
Там куча классов, типа:
ImmutableArray, ImmutableDictionary, ImmutableHashSe, ImmutableList
ImmutableQueue, ImmutableSortedDictionary, ImmutableSortedSet, ImmutableStack, ImmutableStack
При изменение элементов, они создают новый экземпляр коллекции, не меняя оригинальной.
Для функционального программирования, это вообще прекрасно.
Смешной вопрос, конечно, существует.
Много ли и возьмут ли на эту работу тебя лично - другое дело.
Только стринг
Гугли "Вопросы на собеседовании c# WPF/ASP.NET MVC/Xamarin" и тд, смотря в какой области кодить будешь
КОД ПОЛЬЁТСЯ МОРЕМ
Вот ты и ответил на вопрос
Лично я их попробовал пока в UI Test Xamarin.
Передаю комплексный объект в метод через ImmutableDictionary.
1) В языке появляется скриптова динамичность.
Для объявления структур данных тебе не нужно создавать новые class/structure.
Правда для этого уже есть dynamic (хоть он и mutable) + C# 7.0 вроде завезут "tutpe" и "записи"
https://habrahabr.ru/post/280978/
2) Независимо от сложности объекта ты знаешь что никто его не может поменять.
Ты можешь сохранить этот объект на любое время не боясь его изменения/необходимости синхронизации.
Вот read-only списки точно пригодятся.
Да или VisualStudioCode, там и IntelliSense есть и отладка.
Гуглил, не нашёл ничего особо важного для себя на тостерах/мсднах/собсно майковском сайте, где указаны отличия версий но тут ведь возможно, что либо я пока что просто не пользовался функционалом, недоступным в комьюнити и доступным в других версиях, и когда узнаю, придётся перекачивать и всё такое, либо есть ещё какие то камни в испольовании комьюнити версии. И кстати, если купить на торрентах профессиональную/энтерпрайз и подкинуть ей легитимный ключ, обновления ведь всё равно будут приходить, или ребята в майкрософт чухнут, что я пиздюк и зобанят мне VS?
Меня напрягло больше всего:
1) Отсутствие CodeLens (хорошо когда сразу видно кто ссылается на метод/класс)
2) Отсутствие возможность построить карту классов и их зависимостей.
Решил значит рефакторингом заняться, а не понятно как найти наиболее связанные классы.
P.S.
Есть конечно отдельные плагины, но они тоже платные.
>2016
Просто хуею с тех кто что читает про WPF! Вы совсем ебанутые? Вы еще про сильверлайт почитайте или вебформс. Учите блять.Net Core и JS/TS, а лучше английский выучите уже наконец, пиздец нахуй
А UI быстрый на чем делать?
В текущем состояние JS может предоставить только нагромождение <div> + CSS
Вот когда, запилят нормальные WebComponent, тогда и приходи.
Джаваскриптоблядь выползла из своего шконаря, а ну полезай обратно и говно свое забери.
В десктопе и вебе например.
Поясните плз.
Обычно баги фиксить несколько месяцев и вкатываться в проект.
Раздвигать булки по первому требованию тимлида и команды.
Первое время будешь весь день фикситьмелкие баги.
Это будет обязательно в каком нибудь интерпрайзном говне, в котором тебе никто не поможет,
тк его авторы уже умерли от старости/малярии в Индии.
Попробуй лучше Clojure, он вроде и по .NET есть,
а если что потом сможешь перескочить на Java или JS (ClojuseScript)
Неплохо, но хотелось бы все же про F# услышать. Стоит он того, чтобы в него вкатываться?
F# это OCaml и по синтаксису ближе к Haskel, а это значит конструкции типа:
[1; 2; 5]
|> List.map ((+) 1)
|> List.filter (fun x -> x % 2 = 0)
|> List.sum // 8
Зато хорошая поддержка .NET (и только его)
Clojure это лисп:
(defn hello [x] (println "Hello" x))
(hello "World")
Если хочешь вкатится в мл-подобную хуиту без задач и проектов, за которую неплатят от слова совсем – дерзай.
На платят похуй, для кода под личные нужды надо, сишарп уже просто в одном месте. Вроде годный дотнет, студия и комьюнити, но от ООПа во всех щелях хочется вешаться.
Репорчу результаты. У них занюханная конторка, работают они на апворке, штат-25 тел, к концу года планируют до 40 расширяться, как мне сказала эйчэрка. Находятся в здании какого-то то ли еще работающего, то ли уже нет горного института. Вопросы на собеседовании-хуйня полная, в плане сложности. Первый месяц они не оплачивают, потом при полной загрузке-20к. Екатеринбург. Полное говно кароч, послал их в жопу.
> ООПа во всех щелях хочется вешаться
В чем проблема?
1) First-class function - есть (Func<T>, Action<T> и тд)
2) Immutable структуры данных (списки, словари) - есть, а в C# 7.0 еще больше будет
3) Pattern maching - будет в 7.0
Пиши в функциональном стили, сколько влезет.
Значит я просто ебанутый. Почему-то не получается, через месяц-два уже не могу распарсить своё скорописное функциональное дерьмо и проще написать с нуля, чем рефакторить в нормальный ООП.
Гайз, хелпайте. Не могу понять, как дебажить консольное приложение в VS CODE? Как && что настроить? пикирелейтед
И алсо ещё вопрос: у меня цветовая тема для VS CODE одна: называется chelevra. Как бы мне её запихнуть в Visual Studio? Там разные форматы, а в маркете такой цветовой темы нет.
> как дебажить консольное приложение в VS CODE
Эту зеленую кнопку нажать не пробовал?
И поменяй язык интерфейса на английский уже.
Тебе самому не противно пользоваться такой локализацией?
Мне нужно из C# кода включить на удаленной машине групповую политику(пикрелейтед). У меня есть возможность запустить на удаленной машине PowerShell скрипт или просто выполнять отдельные команды в cmd.exe.
С помощью ProcMon мне удалось выяснить что после включения политики через ГУЙ в реестре создаются такие ключи:
HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{какой-то страшный GUID}Machine\Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon\SyncForegroundPolicy
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon\SyncForegroundPolicy
Судя по гуглу, просто взять и без задней мысли изменить свойство политики специальным командлетом нельзя т.к. такого командлета нет. Как мне совладать с групповой политикой? (про возможность создать ключи в реестре я знаю, но не понимаю откуда берется GUID)
Смотря для чего тебе язык.
Да. Сишарп это дельфи третьего тысячелетия.
да, зимаскоро.
У меня эти файлы (launch.json и tasks.json) VSC создала при первом открытие проекта.
И нормально компилятся консольные приложения? Давно обновлял VS Code?
До сих пор пытаюсь, чтобы дебажило. Ничего не получается. Мб версия баганая. Сегодня обновил. А раньше не чекал.
test-core-clr это название проекта.
Я ничего не прописывал, эти файлы (*.json) создались автоматически.
Угу. Уже обновил сегодня.
Ладно, спасибо за помощь.
Собираюсь использовать его тогда только как редактор кода, дебагать буду же, наверное, на Visual Stduio. Больно уж красивый этот VS Code.
Как я планирую его обучать C#:
скажу чтобы самостоятельно дома читал C# Players Guide, делал задачки оттуда, я прихожу к нему раз-два в неделю и мы разбираем, что у него не получилось, что не понятно. Что бы вы добавили или сделали по другому? Какие программы можно попробовать написать для закрепления материала (после прохождения книги или во время)?
>одного парня
Моя ванга прорицает, что тот парень - это девушка.
>сделали по другому
Лучше конфу сделай и сиди в ней по вечерам. Мотивация писать программы и сразу их показывать/обсуждать будет выше из-за быстрого отзыва. Идти домой лишнее, единственное исключение, если посиделки закончатся годным трахом.
мухосранск или миллионник?
Тогда все тлен.
Ходи, отбывай часы, бери баблосы, а там хоть книжку по шарпу ему вслух зачитывай - похуй.
А зачем тебе множественное наследование? Просто чтобы было?
Интерфейсы/композиция намного удобнее.
Ю каннот инту интерфейс?
А ты уверен, что сисярп подходит для обучения с нуля? Язык обладает спецификой - ООП. Не лучше начать со скриптопараш/Scheme?
Все современные ООП языки делаются без него, та же скала. А в том же свифте оно через протокольный анус сделано.
Тащемта кодить и знать теорию - разные вещи. Я, если честно, не смогу дать определение классу, с трудом на пальцах ещё что-то объясню, если надо, но это не мешает мне уметь в ООП.
убирай брейкпоинты, дебажь как пацан - через Console.WriteLine();
Плюсую, кстати. Я сам методами проб, ошибок, изучения чужого кода научился кодить. Вот ты сказал про класс и я понял, что не смогу объяснить - что это такое, зато применяю постоянно же. Вот что за хуйня?
А что ему на замену должно придти?
судя по всему, у тебя pdb файлы не соответствуют текущему исходному коду. удали все в bin/obj, попробуй заново сребилдить солюшн
>>801137
> Вот что за хуйня
отсутствие словарного запаса?
> научился кодить
Угу видал я это твое "научился кодить" помноженное на желание менеджера "сделать побыстрее".
Потом либо приходится заново переписывать, пытаясь вносить изменения точечно.
Либо, если понимаешь что это растянется на долго - работу менять.
Вот за это индусов и никто не любит, вчера он коров пас,
сегодня "кодит" без малейшего теор. знаний об архитектуре ПО.
Это потому что ты на какие-нибудь объявления переменных ставишь брейкпоиты.
Это не исполняемый код (на уровне байткода) и VS/Xamrin смещает их к ближайшему возможному месту для брейкпоита (начало функции).
Вот ты злой такой. Обнять бы тебя и вместе так сидеть, чтобы ты не злился, а потом мы бы поцеловались, независимо от твоего пола. Просто хочу посидеть с тобой в обнимку, чтобы ты не злился!
ООП можно не использовать, писать программу в одном классе. По поводу питона - зачем его изучать, если все равно потом переходить на C#?
Хм, я же вроде был сама вежливость, даже ни одного ругательного слова не сказал.
Да и по философски к этому отношусь, ибо это уже стало нормой.
Nullable<int> pizdatvoeymamki = null;
pizdatvoeymamki в данном случае разъёбаная структура и при этом null;
А почему должен вылетать NRE? Читай как он работает или вызови GetType, получишь NRE.
Спасибо!
Полуебок, это синтаксис такой, нет там никакого присваивания null.
Смотри картинку с IL-кодом:
1) Вот как выглядит присваивание null (ldnull и starg.s X)
2) Здесь происходит сброс полей структуры Nullable<T>
https://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes.initobj(v=vs.110).aspx
Ну так если проперти на нуле вызывать, то нулреф должен вылетать. ToString вызови и не получишь.
при геттайп() происходит боксирование жы
а хэшкод виртуальная функция, к тому же, для значимых типов там вообще по дефолту идет рефлексия по полям/пропертям, кроче, для выброса НРЕ нужно постараться
Подытожим:
1) Nullable как и любая структура не может хранить null, но имеет свои правила боксинга.
2) Nullable имеет особые правила боксинга: Runtime боксит не саму структуру, а ее Value.
При этом он проверяет HasValue и если HasValue равно false, то возвращает null.
https://msdn.microsoft.com/en-us/library/b3h38hb0(v=vs.110).aspx (раздел Boxing and Unboxing)
3) Метод GetType() не переопределен в Nullable<T>, по этому он вызывается у базового класса object в (C# все наследуется от object).
Для этого Runtime приходится делать боксинг, а как мы знаем (2) там свои правила и возвращается null, это и вызвает NRE.
Закрепляющий пример на картинке:
ToString() на int? не вызовет ошибки, но после боксинга к object, уже вызывает NRE
>Зачем осваивать мертвые технологии?
Несколько месяцев искал работу, взяли только по вакнасии на винформс.
Так сложилось, что на древние технологии берут всех, желающих мало.
на одном из собесов меня завернули потому што я не знаю аспформы, кек. молодая динамично развивающаяся фирма
Может нужно как-то изменить outputFormat?
Ему нужен не C#, а что-нибудь по проще. Предложы Visual Basic.
А то скоро каждый гуммнонитарий будет знать C#.
>А то скоро каждый гуммнонитарий будет знать C#.
Язык очень простой. При желании можно и макаку писать на нём научить.
[code lang="c#"]
if (someHandler != null)
{
someHandler();
}
[/code]
на [code lang="c#"]someHandler?.Invoke();[/code]
Но у нас проект на .net 4.5 и многие сидят на vs2013, у них же не будет работать эта хуйня? Или я чего-то не понимаю?
Так а ты им скажи что теперь весь код зохвачен новым компилятором и пускай перекатываются, 2015 студия вышла хуй знает когда уже.
Как установить sharpdevelop на usb? Есть пека на которой у меня нет админских прав, но нужно на нем кодить.
эта фича из C# 6.
Оный почти весь поддерживается на .NET 4.0 и 4.5
пруф: https://stackoverflow.com/questions/28921701/does-c-sharp-6-0-work-for-net-4-0
Однако на студии 2013 прикручивание шарпа 6 связано с гемором
https://stackoverflow.com/questions/27093908/how-to-enable-c-sharp-6-0-feature-in-visual-studio-2013
Так что можно юзать только если все товарищи перейдут на 2015
inb4 google.ru/... stackoverflow.com/... и прочие не надо позязя, я сам параллельно гуглю, просто вдруг какой нибудь анон сам может объяснить
Любви и добра!
спасибо
Затем, что в нем отсутствует пикрил. Ты спрашивай если тебе что-то не понятно, а то будешь до смерти спермохлебом.
Как записать 2D массив в CSV файл? Именно так, чтобы строки стали строками, а ряды - рядами.
Напиши простенькую функцию в два цикла for.
Ты с выбором языка/треда кажись ошибся.
Прошу вас пройти в тред для прыщеблядков >>780630 (OP) и фапочку из фольги одеть не забудь.
Расклад такой.
Есть у меня 2 тачки:
1 - билд сервак с бамбу на моей стороне.
2 - виртуалка с iis на другой стороне океана. НА компе - Win 8 Enterprise
Задача ебануть автодеплой с бамбу туды.
Web deploy не работае т.к. windows 8 (не сервер) - http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later
Какие есть ещё варики котаны?
Можно конечно с билд сервака ложить зипку на удаленный, а там какой-то скрипт раз в 2 минуты чекает и распаковывает папку в нужное место.
Но не хочется эту елду делать с нуля.
Есть ли какие-то готовые решения?
Codelense уже в community есть
То есть это нормально, да?
Алсо, эксперты так и не ответили на мой вопрос >>801814
VisualStudioCode точно так же не могу установить на флешку. Это вообще возможно?
Множественное наследование нарушает философию ООП. Интерфейсы - чистый, элегантный и совершенно неизбежный способ.
что за говно? куда писать?
Гугл вроде посылает в Options->Environment->Fonts and Colors
Но там ничего не нахожу, в Text Editor только вижу настройки к C++ которые никак не влияют на C#.
Любое наследование нарушает философию ООП, спроси Алана Кея.
Ещё есть Mono.
Ну разве не пиздец?
хуй знает. я ж не чекал.
Но вот что нашёл. https://github.com/garethflowers/vscode-portable/issues/6
снова 2 секи
Случайно не SharpDevelopers контора? Хотя весной у них прайс пожирнее был
Не актуально.
Другой вопрос.
Есть код
string[] words = text.Split(new char[] { ' ', '!', '.', ',', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var result = words.GroupBy(x => x)
.Where(x => x.Count() > 0)
.Select(x => new { Word = x.Key, Frequency = x.Count() });
var sortedres = result.OrderByDescending(x =>x.Frequency);
foreach (var item in sortedres)
{
Console.WriteLine("Слово: {0}\tКоличество повторов: {1}", item.Word, item.Frequency);
}
Почему не работает '\n'? Надо чтоб учитывался перенос строки.
попробуй оттак
string[] z = A.Split(new string[] { ",", "\r\n" },StringSplitOptions.RemoveEmptyEntries);
Эм. В си/плюсах знак переноса строки был чаром, т.к. добавлялся в конец строки.
В с# знак переноса строки является строкой? Не понимаю.
предполагаю, потому что \r - символ спецвозврата каретки или как там мать её называют, а \n - спецсимвол перехода на новую строку. или наоборот, это лучше всего на мсдне проверить, если важно.
итого, \r и \n - отдельные символы, следовательно, комбинация двух символов - уже строка, ну и видать отдельно символа \r\n не завезли в сисярп.
\rВозврат каретки
\nНовая строка (перевод строки)
По факту, ты можешь сделать '\r','\n'. И он не являетя строкой. Если ты просмотришь некоторые доки на наличие байта \r, то поймешь почему так
спецсимвол возврата, самофикс понел да.
Не отзовётся. Она же генерируется
public void randmas()
{
Random r = new Random();
for (int i = 0; i < mas.Length; i++)
{
mas = r.Next(100);
}
}
в смысле "сюда"? в метод? в сигнатуре в качестве параметра указываешь массив в качестве параметра:
public void randmas(int [] mas)
{
}
Я дебил, не туда копипастнул.
спасибо.
Нахуячил я некоторое количество контролов на формочку, все унаследованы от UserControl. И вот теперь в них во всех есть пара одинаковых совершенно флагов.
Выглядит это как то так
public partial class MyControl : UserControl
{
public bool isNew = false;
public bool isFirst = true;
public MyControl()
{
InitializeComponent();
}
}
Соответственно ечсть еще MyControl2, MyControl3, MyControl[n] и так далее.
Прорблема в том, что мне сейчас надо все их обходить в цикле и проверять эти самые переменные. Но сделать это по человечекски не выходит, т.к. все они разные и надо каждому типу делать свой цикл и хуярить в него только контролы конкретного типа.
Можно это как нибудь обойти?
Интерфейс. Или класс MyUserControl и от него уже все остальные.
Берешь троелсена и ебошишь тему наследование
Запили им интерфейс или абстрактный класс с определением тех булов. Затем наследуй от него и еби свои говноформы как хочешь. Вместо Object'а должен быть UserControl или любой другой базовый класс. Можно через интерфейс.
Это я пробовал. Same shit.
Выглядит в окне это все так: имеется грид с тремя строками. У первой и третьей фиксированая высота. У второй стоит minHeight. В эту строку и засунут датагрид.
Хуи сосёшь? Бан желаешь?
Методы мин и макс должны возвращать тру или фолс в данной ситуации, а не циферки.
Но если я поменяю на булево, то оно все равно ругаться будет, я уже пробовал.
Ошибка где-то еще мб?
Как ты его меняешь? И какой тип возвращает smax? В любом случае, ты не ответишь на вопросы и поэтому я отвечаю заранее Convert.ToBoolean(smax(...)); или smax(...)>0
>Как ты его меняешь?
Пишу в методе его тип - bool.
>И какой тип возвращает smax?
Никакой, это делегат для sortmax
UPD я забыл менять тип делегату. Все заработало, спасибо.
Ты тут еще долго, у меня еще пара тупых задачек есть?
да-да, все так и было.
>Пишу в методе тип
Распаковываешь аля (bool)smax(...);? Эквивалент, но я хз, что у тебя пошло не так.
>никакой
Так то делегаты могут возвращать типы. Он служит контейнером для неизвестной заранее функции. Например, нажатие по кнопке. Хуй знает, что надо делать, при её нажатии. Поэтому ты говоришь делегату (пиздабол я - событию, который своего рода делегат), что тебе надо исполнить это. P.S. Изучай логику обратных вызовов в любой из областей. Хоть в схемотехнике. Работает также.
>Еще пара тупых задачек
Задавай, но если будут огромные пробелы по синтаксису. Пошлю штрубить Троелсена
Сука (горит уже), ты хотя бы кидал определения класса Book, который насилуешь. И да, не еби мозг сеттером
1. Не используй второй пикрилейтед, если не требуется проверка выставляемых данных. Ты можешь реализовать точно такую же конструкцию за счет автоматического свойства
public string Author {get;set;}
В такой конструкции и приватная переменная не нужна, потому что ты ничего не делаешь, по сути. В Java тебя бы заставили писать функции GetAuthor и SetAuthor, что в C# скрыто за словами get; set;
2. Приватные переменные начинаются с маленькой, а публичные с большой. Поэтому
private string author = string.Empty;
public string Author {get;set;}
3. String - ссылочный тип и поэтоу private string Author у тебя по умолчанию null. А присвоить ему значение нельзя, потому что ты не выделил память под него, поэтому либо ты используешь автоматическое свойство или пишешь
private string author = string.Empty;
А еще, давай я помогу за денежку написать это говно, которое требует от тебя ВУЗик. Потому что чем дальше, тем больше вопросов у тебя будет. Скайп: live:sparin285
Хотя я долбоеб и ошибся. Это когда ты получаешь объект, да и по умолчанию он хз чем должен быть. В любом случае, а какому типу равен Author?
>Сука (горит уже), ты хотя бы кидал определения класса Book, который насилуешь
Закинуть весь код? Окей
http://ideone.com/kYa4Qm
>не еби мозг сеттером
Это что?
>А еще, давай я помогу за денежку написать это говно, которое требует от тебя ВУЗик
Заманчивое предложение, но увы. Да и толку от такой учебы, так я хотя бы строки кода до кучи собираю, а так вообще ничего не запомню.
Ты объявил массив ссылочного типа. По умолчанию, ссылочный тип равен null. Прежде чем начать с ним работать, тебе необходимо выделить под него место, банально применив стандартный конструктор
for(int i =0; i<10; i++)
arrLib = new Book();
По факту, дописав в класс Lib
public Lib()
{
for(int i =0; i<10; i++)
arrLib = new Book();
}
И вообще, если хочешь понимать, что ты делаешь, то начни с Троелсена, имхо это уже базис идёт, за что здесь могут послать нахуй.
Пару косяков нашел - забыл конструктор по умолчанию и при получении индекса массива надо отнимать еденицу, а не прибавлять.
Дописал конструктор, однако проблема та же самая, говорит нет экземпляра обьекта.
public Book()
{
Autor ="";
Name="";
Publish="";
Printing=0;
Price=0;
}
Парень, прошу. Прочитай Троелсена. Первые 10 глав. Тебе хватит. Остановись.
Да работает, спасибо.
За рекомендацию почитать тоже спасибо, месяц пропустил - хз что вообще пишу (
Есть стул с игрой, в которой используется отрисовка через Geometry и анимация по пути, который опять же Geometry.
Что использовать, если без анимации не как? Visual, в котором непонятно как реализовывать анимацию, но производительный аки хуй? Или Shapes.Path, который поддерживает всё необходимое с избытком, из-за чего менее производительный?
Ожидаемое количество объектов до 1000, из них половина анимированы. Хотя можно разделить на 500 Visual и 500 Shape, но это частичное извращение.
Киньте примеры анимации с использованием Visual, если не сложно.
if (!collection.Any(x => x.id == id))
И вот вдруг решарпер предложил мне поменять это условие на
if (collection.All(x => x.id != id))
И я не могу уловить суть этой оптимизации. Чем это лучше, на вид все одинаково.
Чем лучше?
Есть массив 1, 2, 3
Any(x == 2)
Дойдет по 2 и вернет true
All(x != 2)
Дойдет до 2 и вернет false
Число шагов одинаковое. Что не так?
ну у тебя в условие if функция не должна принимать значение, т.е. тело самой функции че там произойдет не учитывается, а в примере решарпера принимается аргумент, т.е. учитывается то, что происходит в теле.
я убитый, как то так.
> какой нахуй стиля!?!?
> Так это оптимизация кода или оптимизация стиля его написания?
Ну вот хули ты к словам препираешься, кроме тебя все все поняли и так.
Я же выше написал:
> Считается что отрицание в if уменьшают читаемость кода.
На 3 символа короче, привыкай ценить лаконизм.
> кроме тебя все все поняли и так.
А это уже и не я, это какой то посторонний анон.
А у меня еще вопрос. Решарпер люто настаивает херачить половине методов модификатор private. Тут я как бы понимаю зачем ему это. Но стало интересно, отражается это как то на производительности или это просто секурность?
Но я не очень понимаю, что такое IEnumerable, как работает и что с ним дальше делать. Прочитал, что это интерфейс.
Я так понимаю на скрине функция. Я создал переменную типа IEnumerable и присвоил ей значение SafeEnumerateFiles(<мои аргументы>).
Потом использовал foreach, чтобы достать все найденные значения. Все правильно сделал?
Почему здесь нельзя было использовать массив или коллекцию, а нужен интерфейс и что это вообще такое?
Да фиг его знаешь.
Если есть возможность, то из public/private надо выбирать конечно private, что бы API/контракт класса был почище.
В C# если нет модификатора, то метод/поле считаются приватными, но при этом есть два подхода:
1. Resharper и Rider IDE (которая сделана на IDEA+Resharper) хочет явно это проставлять.
2. В XamarinStudio наоборот редактор подсказывает что "private" писать явно не обязательно и их можно удалить.
Чувак читай книжки из шапки или иди в прикрепленный-тред.
Должно быть стыдно, приходить в тред языка с такими вопросами.
даже не знаю, куда тебя первее послать читать
> Почему здесь нельзя было использовать массив или коллекцию
А кто сказал, что нельзя? Просто делаешь возвращаемому значению ToList или ToArray
Нашёл, короче, как текстбокс отобразить. Panel.ZIndex поставить больше нужно было.
На 32 разрядных системах теоретически может оторажаться. Для публичных типов обычно генерируются более длинные ссылки. На 64 разрядной скорее всего даже в этом нет разницы.
Есть ли сравнения каким-то бенчмарком?
Буду очень признателен.
хуй его знает, иди да проверь
Вопрос снят, в первый раз гугл подвел, но не тут то было.
Бенчмарков полно, но к любому из них можно высказать обоснованные претензии.
Вот известный бенчмарк, если кому-то интересно: http://benchmarksgame.alioth.debian.org/u64q/csharp.html
Достаточно знать, что .NET и Java обладают сопоставимой скоростью, Mono, возможно, немного медленнее.
ролл
>Не может написать каклькулятор
>Говорит, что индусский код говно.
Я так и не понял. Ты крутой или тупой?
Чего ожидаешь от калькулятора? Применения паттернов/интерфейсов/дипенеденси инжекшена/просветления аллаха?
это ж блять, калькулятор.
есть какой-то адекватный способ использовать Route атрибуты на WebAPI, но при этом юзать MessageHandlerPipeline для той или иной группы маршрутов?
WPF MVVM CALCULATOR BASED ON REGEX FUNCTIONS AND MOTHER OF ALLAH
Проиграл на всю квартиру
Анон, поясните за кэширование в WPF.
Как применять?
Как работает?
у тебя должен быть один контекст для реквеста, если это веб прилага, или сам определяй lifetime.
1. Пользователь выбирает файл
2. Вписывает данные в боксы
Например
Rate.Drop.Item.Poor (по дефолту, не изменяется) = 1 (введенное значение)
Rate.Drop.Item.Normal = 2
Rate.Drop.Item.Uncommon = 3
3. Прога находит текст Rate.Drop.Item.Poor и заменяет цифру ПОСЛЕ этого текста
4. После замены всех цифр напротив каждого текста пользователь сохраняет файл и закрывает прогу.
Проблема в этой самой замене. После текста стоит несколько пробелов, каждый раз разное количество. Нужно как то пропустить эти пробелы со знаком равно и исправить только цифру. Напрямую через text.replace разумеется не получится. Я думаю что это как то решается через regex, но как именно?
Простите за неровный почерк.
Разобрался. Стояло свойство SizeToContent="WidthAndHeight".
Забавно то, что в один момент я оборачивал датагрид в DockPanel и, если руками ресайзил форму, то ее не пидорасило.
2016й на дворе, а у нас все еще нет вменяемого UI фреймворка для десктопов.
>Мужики, можете в след. тредах чето по ASP.core в шапку забросить годное?
Забрось.
Расскажи как вообще вкатиться в ASP.NET
Тогда ASP.NET MVC, если хочешь куда-то вкатиться и что-то зарабатывать. А если хочешь кодить в свой досуг "для души", то кто ж тебя знает, что у тебя на душе.
Кстати, в Unity можно делать и 2D игры. И это не единственный игровой движок/фреймворк, использующий шарп, есть еще как минимум Monogame и Xenko, правда, они в сумме не имеют 0,1% популярности Юнити, но зато опенсорсные, швятая швабода же.
>>805631
Берёшь и вкатываешься. Ну реально, это ж самое востребованное направление разработки на C#, если в одну компанию не возьмут - иди в другую, если один туториал не понравится - изучай другой. Выбор большой. Или есть конкретные вопросы?
Общие вопросы - я долго крестоблядствовал, но теперь хочу СИСЯРП. Порылся по HH, пришел к выводу что почти везде нужен ASP.NET, часто с MVC. Всё правильно понял? (А где нет ASP - там нужен Xamarin и/или Unity, да?)
Конкретные вопросы:
Сколько времени нужно на вкатывание? (.NET не совсем чужд, баловался иногда, в MSIL код повтыкать если что - не побоюсь)
Можно ли сразу смотреть ASP.NET 5 или он ещё мало где?
Какой туториал посоветуешь?
На какую вилку рассчитывать (ДС2)?
>везде нужен ASP.NET, часто с MVC
Не везде, но самое распространённое. Для новых проектов - только MVC, для легаси - нередко ASP.NET WebForms.
>(А где нет ASP - там нужен Xamarin и/или Unity, да?)
Да. Особенно Unity.
Есть ещё вымирающая ниша десктопных приложений, но полностью она не вымрет никогда.
>Сколько времени нужно на вкатывание? (.NET не совсем чужд, баловался иногда, в MSIL код повтыкать если что - не побоюсь)
Смотря кем. Джуниором так наверное прямо сейчас, судя по тому, как ты себя описываешь, но захочешь ли ты? Вообще я думаю, что с твоим опытом ты можешь хотя бы примерно представлять, что требуется от разработчика (не именно C#, а вообще) и сколько времени нужно, чтобы это изучить. Думаю, в C# примерно также, только порог вхождения ниже.
>в MSIL код повтыкать если что - не побоюсь
Это от среднего кодера и не требуется.
>Можно ли сразу смотреть ASP.NET 5 или он ещё мало где?
Он же вроде переименовал в ASP.NET Core. И да, он мало где, но изучать можно уже сейчас.
>Какой туториал посоветуешь?
Именно по ASP.NET?
>Смотря кем. Джуниором так наверное прямо сейчас, судя по тому, как ты себя описываешь, но захочешь ли ты?
А таки что мне еще остаётся? (Это риторический вопрос - выже джуна я прямо вот сразу пока не готов. Но побыть джуном - почему бы и нет?)
>Это от среднего кодера и не требуется.
Часто бывало интересно посмотреть как что работает (в плюсах тоже)
>И да, он мало где, но изучать можно уже сейчас.
Я к тому чтобы не получилось, что я весь такой модный а у всех Говно.Мамонта 3.0 (прости, вообще не в теме пока что)
>Именно по ASP.NET?
Да, по нему и по MVC. Шарп сам по себе я и сам вспомню.
>>805669
> > На какую вилку
>Ту, котрой чистят нужники
Что ты злой такой? Все когда то были джунами, но не задарма же.
рсс агегатор,
соц сеточка типа инстаграма,
твиттер,
фейсук,
cms своя.
да даже копия двача.
просто берешь то, что тебе нравится и пытаешься повторить.
Хотя бы базу.
БАМП
то есть я вполне реально могу из своей мухосрани работать за еду на этом вашем с#?
Ну если повезет, то да
Создать текстовый файл в той же директории, где и исполняемый файл приложения, если файл с таким именем уже существует, то заменить в нем весь текст новым текстом(удалить весь текст и записать по-новому).
Это легко ищется в гуголе
[code]
using (System.IO.StreamReader SR = new StreamReader(new FileStream(directorystring,...,FileMode.Create),Encoding.GetEncoding(1251))
{
while(yourCondition)
\tSR.WriteLine(yourstring);
}
[/code]
public DbSet<MyBaseAbstractClassViewModel> Model;
во втором появляется куча объявлений уровня
public DbSet<TagViewModel> Tags;
public DbSet<PostViewModel> Post;
Никто, сижу вот разбираюсь, хочу как пет-проект блог написать, а как надо-то?
Через отдельную дата-модель?
Для джуна, наверное, достаточно знать сам язык C#, общие принципы веб-разработки и изучить ASP.NET MVC.
>Да, по нему и по MVC. Шарп сам по себе я и сам вспомню.
Вот устаревший на 3 года туториал: https://habrahabr.ru/post/175999/. Но даёт хорошее представление о том, как в принципе устроен фреймворк.
Да, но это не так просто. 50% заказов для фрилансеров, хоть как-то связанных с программированием, - это сайтики на вордпрессе. Ещё 25 % приходится на другие виды пхп-говна. И 25 % на прочие языки, из них может 3 или 5 % .NET.
>Какой туториал посоветуешь?
Туториалы на все случаи жизни, в т. ч. по ASP.NET, есть на http://www.w3schools.com/ и http://www.tutorialspoint.com
Но они какие-то поверхностные.
Ответы json.
{"lol": {
"id": 155767,
"name": "L O L",
"profileIconId": 7,
"revisionDate": 1443795620000,
"summonerLevel": 30
}}
{"rofl": {
"id": 56834539,
"name": "ROFL",
"profileIconId": 784,
"revisionDate": 1469541932000,
"summonerLevel": 30
}}
Запрос на два аккаунта, собсвенно, что бы разобрать по любому нужен класс под json, в котором меняется имя под класс. Может я не с той стороны лезу?
Когда слышишь о предшественниках C#, из которых он заимствовал концепции, обычно слышишь о Java, C++ и Delphi.
С первым случаем всё понятно, со вторым более-менее, а насчёт третьего - что такого специфического (чего нет в Java или C++) создатели C# взяли у Делфи? Насколько я помню, там даже полноценного сборщика мусора нет.
Это Dictionary<string, Yoba>
public async Task AddYoba(Yoba yobik)
{
db.Yobas.Add(yobik);
await db.SaveChangesAsync();
}
Когда я вызываю его дальше в коде
await db.AddYoba(someYoba);
Он крашится сетуя на налл. Без авейта(синхронно) работает нормально. В чем проблем?
Проебался в остальном коде (
по выходу из блока оператора using у созданных в скобках оператора потоках/любых других классов, реализующих IDisposable, вызывается .Dispose(), что вроде как включает в себя .Close()
Ребят, хелп плиз.
Есть 2 вопроса:
1) По шкале от 1 до 10, на сколько сложен C# для изучения с нуля?
2) Смогу ли я кодить примитивные проги в Unity? Просто я на нём как-то пилил 2D поатыормеры, и мне понравился drag-and-drop интерфейс.
Не ссы, 0/10. Я за 2 месяца ОЧЕНЬ ленивого обучения (3-4 часа в неделю) написал пару хеллоуворлдов с использованием БД, парсер для авито на WinForms и раннер на юнити. Десктоп проги делай в VisualStudio, там тот же драгндроп только ещё удобней.
Спасибо. И ещё, у меня МакБук.
Стоит ли мне тогда дрочить Swift? Или лучше сразу учить актуальный язык?
VisualStudio есть на мак?
пикрандом
Смотря зачем ты учишь язык. Есть CODE для мак. А вообще погромированние часто путают со знанием языка, а это совсем разные навыки.
MIT лицензию не забудь, а то ж еще делится придется.
Господа, самостоятельно копошусь на первых этапах связок с БД. Возник вопрос, как можно вместо уебищного аксессоподобного датагридвью делать простые таблички для вывода на форму?
на формах это норма. А что с ним не так, бро?
>аутофелляция
>инженер-римминг
зато ты, ебать, слышал и спешишь об этом всех оповестить, малолетний ты долбоёб.
1. А разве она как-то выключается? Я уже сотни всяких мануалов посмотрел, кругом оно юзается (т.е. окошко с пермисиями нужно кликнуть, перед тем как апи заработает).
2. Ну так вроде самый распространенный почтовик. Что, если не его?
>Что, если не его?
1) поставить тестовый сервак с почтой
2) yandex/yahoo/mail.ru/.../милион других почтовиков
3) лично я для тестов юзаю https://www.guerrillamail.com/GuerrillaMailAPI.html
Спасибо.
Ado .net
у гугела раньше были так называемые пароли приложений. т.е. в ящик с браузера зайти было по нему нельзя, ток используя соответствующие ендпоинты. как с этим сейчас - не знаю
Visual Studio нет.
Есть MonoDevelop, Xamarin Studio (по идее, её можно использовать не только для создания Xamarin-приложений, кажется, она форк MonoDevelop или что-то в этом роде) и вскоре будет Rider (я так понимаю, платный).
Нашел я на сайте CyberBionic Systematics(ITVDN) такую хуёвину пик, на которой сказано что если вы захотите вкатываться во фронтэнд, то нужно обязательно пройти первую ветвь .net. Так-ли это? Или она нужна только для бекэнда и тд? Хотя на том же сайте я нашел 2 пик, на котором в предварительных требованиях не указано обязательно знание 1 ветви.
Или я что то не понимаю?
Блять, не туда написал.
не нужно проходить.
Ты забыл про VisualStudio Code.
Он тоже поддерживает рефакторинг и отладку,
при этом жрет (VSC+OmniSharp) чуть больше 100MB оперативы и запускается за секунду.
И всё?
Не вздумай читать ето говно
Автор туториала так топорно пишет, что желание отпадает читать дальше на втором уроке.
Лучше унылого хохла с ITVDN послушай.
я с этого туториала вообще вскочил в аспнет
и, кстати, сей автор тоже хахел. не знаю, зачем тебе эта информация
Раз уж тред про .NET, добавь пожалуйста годных учебников по VB.
Спасибо.
Ошибся, Ивано-Франковск (но это примерно то же что и Тернополь). Это если мы об одном и том же авторе говорим, я лично о хабровском туториале по ASP.NET MVC: https://habrahabr.ru/users/chernikov/
http://metanit.com/videocourses.php
Интресно за шо хотят 55 бачей, статейки вроде годные
> VB
Где-то слышал в этом году фразу с которой ржал весь зал "ВП используют только мазохисты и джавафанатики"
>>807110
Причина простая - нет особого выбора. В последнее время много работаю с excell'ем, в котором искаропки отсутствует нужная мне функциональность. Сам я учусь по "C# players guide", но возможности писать напрямую C#-код там нет.
Искал трансляторы кода, почти все они говно, а те что не говно - все равно надо в коде хорошо разбираться.
Мало того, в этом excell'е используется дремучий VBA, но если уж вступать в это говно, то пусть уж будет .NET.
Вот и все.
с мм офисом из .нет приложений можно работать через InteropServices.MicrosoftOffice.%AppName%
ну логика как бы подсказывает, что без наличия доступа к серверу, нехрен туда лезть. по крайней мере, именно таким бы образом я бы и выстраивал
Попробуй в своем AJAX запросе указать что ждешь в ответ JSON ( dataType: "json")
Не пингуется, tcp же не всегда может быть включен? Если имя сервера SRVNAME какой хост прописывать?
А она гарантированно отработает вне зависимости от настроек файрвола компа? Надо что бы у клиентов на любом компе это сработало.
А если порт будет не дефолтный?
sql студейка то не всегда находит, а ты хочешь. Если фаервол блокирует - ты ничем не подключишься, если порт другой - никто не найдет, можешь только все порты на всех устройствах посканить, а если сервер только локалхост слушает, а если named pipes, а если... Выбери себе только нужные варианты, а не всю вселенную.
И да, плюсую тот совет про скл запрос, если инстанса просто нет - будет одна ошибка, если есть, но логин/пароль не подходят - другая, если подходят - безопасность протекла.
Похоже этот подход через пинг геморный и не 100% рабочий. Решил открывать подключение с левым именем, если напишет что логин не подошел это значит по любому сервер уже нашелся.
Как вариант получать список процессов, искать скуль и по айди в списке активных тцп получать слушаемый порт. А так если установка нестандартная то больше никак.
https://msdn.microsoft.com/ru-ru/library/cc221403(v=vs.95).aspx
>эти скобки
У меня есть нулевой опыт в программировании, некоторый пассивный доход с продуктов компьютерной графики, кириллистическая мечта и бесконечность свободного времени.
Собственно, есть пару вопросов которые серьёзнее, чем может показаться из-за манеры изложения.
Хочу зделоть свой гениальный онлайн-шутер от первого лица, суть такова: графон на уровне тим-фортесс говна и веток, не высокое требование к железу, чтобы сервера были как в контер-страйках и конченный пользователь мог в джва клика скачать и захостить свой сервер.
После пары статей и видео на ютубе на общею тематику про деланье игор и поверхностные обзоры скриптовых языков, решил изучить Си шарп и Юнити для реализации того, что описал выше. Всё правильно сделал? Какие подводные камни?
>Какие подводные камни?
Никаких, миллионы онлаен шутеров и полный стим говна не могут ошибаться. Плыви с миром.
Двачую
С учетом того что в стим попадает и покупается всякое говно уровня видеолейтед, без покупателей ты наверняка не останешься.
https://www.youtube.com/watch?v=yA2dSTG-jbw
В каком смысле кастомайза? Можно хоть весь template переписать, хуль тебе еще нужно?
Объзмеился слегка :3
Ну это что-то из разряда "кипи випку"
Полехчи паринь, я уже спиздил твою идею. Релиз на следующей неделе.
Хотя идея мне не нра, нет изначального повода донатить и корная тусовка может не собраться. А без нее игорь умрет, тихие сервера без нищебродов, но с визгливыми школьниками-мажорчиками будут как никогда тихими.
Это чтобы потом внутрь скобок можно было добавить ||, а снаружи – &&.
Вообще смешно, что такую репутацию имеет мощный современный язык, в котором есть полноценное ООП, полноценные generics, лямбды, LINQ, Async/Await и много чего ещё, в т. ч. то, о чём джависты могут только мечтать.
в if-е тоже?
В общем когда запускаю цикл вместе с Thread.Sleep из этого примера https://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx
Все нормально работает ничего не подвисает, в лейбл все выводится проценты и спокойно могу работать с программой, пока фоново там что-то делается. А вот запускаю код по ссылке в начале где server.Connect весь интерфейс нахуй зависает нельзя ничего сделать и в конце когда уже соединился с сервером, выдает "DONE" и все отвисает, я нихуя не пойму, я же вынес его в отдельный поток, почему он подвешивает основной?
Неделю-две, потом дропнешь.
Я себе так купил книжку про питон на 2к+ страниц, лежит теперь где-то за шкафом с коричневыми страницами.
Лол, нахуя ты их купил? Можно же было просто скачать. Ты не русский что ли?
Господа, посоветуйте годной литературы по WPF MVVM. Ну пожалуйста.
А я SICP себе взял с ozon, так и не открыл (не ожидал что она такая толстая будет).
Пару лет, минимум.
бля я даун.
Есть набор проксей, из них явно дохуя нерабочих. Чекаю их запросом к определённому url, приходит Json. Как я могу прикрутить к этому асинхронность?
Сейчас работает очень грустно, тк если сервер молчит, то поток виснет на 10-15 секунд.
[code]
_webRequest = (HttpWebRequest)WebRequest.Create(url);
WebProxy myproxy = new WebProxy(proxy.ToString()) {BypassProxyOnLocal = false};
_webRequest.Proxy = myproxy;
_webRequest.Method = "GET";
try
{
HttpWebResponse response = (HttpWebResponse)_webRequest.GetResponse();
_logger.Items.Add($"Work! {proxy.ToString()}");
}
catch (Exception e)
{
_logger.Items.Add($"{e.Message} with {proxy.ToString()}");
return false;
}
[/code]
И на пасте.
http://pastebin.com/F7YntniY
я ещё нюфаня если чё
webrequest - уже устарел.
Есть ли у тебя возможнасть использовать httpClient?
Если есть - то делай через него.
Там уже есть обычный асинхронные методы, а не говно с beginInvoke/endinvoke
ну только учти, что в тот момент когда ты завалишь асинхронность ее много где по прилаге придётся протаскивать.
Плохого в этом ничего нету. но важно не забыть.
грят, мнение "специалиста" с рутрекера про wpf лучше читать "MacDonald M. - Pro WPF 4.5 in C#. Windows Presentation Foundation in .NET 4.5 (The Experts Voice in .NET) - 2012", но мне не особо помог, хотя я не интересовался детально MVVM и прочими глубокими теоретическими знаниями (хотя там есть инфа и про mvvm, DI и прочее), меня больше интересовали некоторые контролы и основы стайлинга и шаблонов, дак вот, в книгах нихуя такого нету, где приводились бы реально сложные и интересные шаблоны/стили. я пришёл к выводу, что все эти книги лично для меня бесполезны, и объясняют там элементарнейшие основы, которые проще и быстрее загуглить.
а вот и битордик со смишными картиночками и анализом по пасте подъехал
не задерживайся проходи под шконарь -> >>806369 (OP)
завтра параши (>>802533 (OP) >>804519 (OP) >>806729 (OP) >>796165 (OP)) пойдёшь чистить
Implement, please, web aplication:
On a main page must placed 2 input box, and submit button
In one input will enter the command that needs to be run. For example: "git log"
In the second path to the folder where you have to run the command
On button click execute commnad
After command will execute you must show command output and spend time
The advantage is:
Implement log
Implement the ability to interrupt command
Но я апплаился не на джуна
Вот еще, кстати, несложное
https://docs.google.com/document/d/1qCKy3tWEe9O7XlCi_HO5lxT-J1JhCw9EnWDCDikys8w/mobilebasic
Кто такую хуиту вообще проектирует?
В один массив -> Подставить minDate в начало и maxDate в конец -> Можно добавить if на удаление даты, если она повторяет minDate/maxDate (Следственно, не добавляем minDate/maxDate) -> сформировать обратно ебанутую кострукцию двумерного массива
Меня возьмут на работу?
Еще проще. Мне нужно сделать привязку по времени многих элементов со своей анимацией (разница лишь в длительности анимации) к MediaElement со своим Timelin'ом в виде видео. Карач, единый старт для всей анимации с минимальными потерями.
Не смог прочитать :(
1. Преобразовываешь двумерный массив в List<DateTime>, при помощи LINQ
2. Insert minDate и maxDate по концам
3. Формируешь двумерный массив обратно
4. return
Это должно быть быстрее, чем перебор, поэтому это решение должно их удовлетворять. Но я бы сделал проверку крайних элементов на эквивалентность minDate и maxDate, чтобы не было пары из { minDate, minDate };
Помогите с вопросом >>809068
вб такой же древний, как, к примеру, делфи. если бы то дотнет не ставил за цель интеграцию всех совместимых языков под крышей одного рантайма, то бейсик остался и дальше архаичным говном для макросов мс ворд (я знаю, что вба != вб) и преложэний заводских программистишек
> примерно столько же общего
т.е. немало
>>809445
Visual Basic for Applications
ты из села что ли?
Ну бамп жи
Они что, типа ограничивают поля на чтение и запись? Если только get, то мы можем читать данные из поля, но повлиять ни на что не сможем? И set - это изменять их?
Как вообще это можно сформулировать на человеческом языке? Алсо, в каких случаях следует юзать get-set фичи?
На заре инкапсуляции посоны сказали что поля не должны выпирать наружу, обращайтесь к ним только через методы getYoba() и setYoba(Yoba yoba). Ну и все согласились. Потом мама-курочка говорит папе-курочке: чет я забался бойлерплейт писать)), давай накинем сахарку! И накинули. Теперь это уже Yoba {get;set;}. А цыплятки потом: да вы охуели там штоле блядь, как теперь readonly property то делать? РУКАМИ? Так оно стало Yoba {get;}
>в каких случаях следует юзать get-set фичи
Во всех!
На такие долбоебские вопросы по-другому не овтетишь.
На практике - я чаще всего использую auto properties для того, чтобы разграничить доступ на запись и на чтение.
Например
public double CockLength { get; private set; }
Если и get, и set имеют один модификатор доступа, то смысла использовать их вместо обычных полей, на мой взгляд, нет. Хотя если совсем угореть по ООП, то по идее все поля должны быть приватными, а всё публичное - properties.
А вообще что такое properties ты читал? Если нет, то сначала разберись, что это вообще такое.
Вот гайд, когда использовать properties: https://msdn.microsoft.com/en-us/library/ms229054(v=vs.100).aspx (но он касается не auto properties, а обычных).
>А цыплятки потом: да вы охуели там штоле блядь, как теперь readonly property то делать? РУКАМИ? Так оно стало Yoba {get;}
А его можно задать в конструкторе, кстати?
Ну хуй знает, я общаюсь со своими знакомыми из разных компаний, и пока еще нигде на шестом не пишут.
Большинство - разумеется нет.
Но я реально не вижу причин использовать проперти, если и геттер, и сеттер публичные и не используют никаких проверок. Если что, переделать поле в проперти можно в любой момент.
У них там 3.5 фреймворк то штоле?
>переделать поле в проперти можно в любой момент
Через тред такая фраза встречается, каждый раз советуют вспомнить, что от когда от твоего кода зависят другие библиотечки и ты поменял поле на свойство - то их придется перекомпилить, если ты просто поменял логику в геттере/сеттере - не придется.
Ни разу не писал такой код, надо будет учесть, если что.
Есть 4 drop-down ComboBox списка, каждый зависит от предыдущего. Например - планета, страна, город, улица.
Программа должна иметь следующие возможности:
1. При выборе планета => страна => город => улица показывать кол-во домов.
2. Возможность изменить/добавить/удалить запись.
Все возможные варианты с соответсвующим количеством домов записаны в CSV файл, каждая строка - отдельный вариант:
{планета,страна,город,улица : кол-во домов}.
Как это вообще реализуется?
Да, забыл добавить, все что я нагуглил использует DataBinding и SQL, что логично, но я учусь по "C# Player's Guide", и до этого еще не дошел.
Что лучше всего использовать? Список массивов? Dictionary?
Выручай пожалуйста.
> Список массивов
Ты c# вообще? Список твоих моделей конечно же.
Ты либо сам парсишь csv, либо да, ты же учишься. Ну а потом ехал linq через linq.
Да, это будет объектное представление твоего списочка в csv
анон, если у тебя на работе есть девопс - ты щастлив. Но вашпето пограмист должен наверное такое знать, не?
ну распарсит csv в классики - это не сложная задачка.
Остальное гуглится по запросу "winforms cascading combobox" если я тебя правильно понял
> должен
ну хз. хорошо, когда ты знаешь и умеешь больше. плохо, когда тебя заставляют выполнять несвойственную должности работу
got it.
Ну мне просто казалось что наверное ктото ещё с таким сталкивался.
Лады. Сам разберусь.
Почему эта хуйня такая глючная, даже хелловорд не запускается без 100500 ерроров? Интересно, Майкрософт хотя бы сделает из неё что то удобоваримое, а то пиздц же.
Что это и откуда оно берет значение этой переменной?
читай про директивы препроцессора и условную компиляцию
Глючная была год назад. Уже сейчас достаточно стабильная.
Юзаю формс на вижле 2015 комьюнити.
Пишу под иос и дроид. Есть конечно нюансы, но не так, чтобы совсем уж всё плохо.
а что про Хейлсберга скажешь? я полистал немного, на первый взгляд мне понравилось.
ничего не могу сказать, анон.
Я читал сначала троелсена, потом рихтера.
Этого предостаточно для того, чтобы понять как что работает. Последнего перечитываю иногда (всмысле избранные главы).
Если товарищ Хйлсберг годный перец, а он годный, ведь именно он и создавал с#, то смело можешь читать его.
Хз правда, на каком уровне его книги. Ну то есть насколько глубоко он поясняет.
так и не понял, зачем люди используют девекспресс
(в коммерческой разработке с ним не сталкивался)
будешь долбиться в жопу. Девэкспрес хорошо только на самплах. как только ты захочешь что-то кастоймазить (а тебе неприменно блять это понадобится) - ты проиграл.
Сам юзал эту хуйню на впф и на мвс. Знаю о чем речь идёт.
>Меньше тратишь время на разработку UI.
Я ж вроде пояснил. По идее дешевле купить обосрацца грид/ворд контрол/ещё чтото чем делать с нуля.
Вот и выгода тебе
учитывая, сколько оно все стоит, я не думаю. хотя хер знает
в любом случае, если нужна прям такая кастомизация, проще перейти на впф
Не, чувак. Бывает необходимость пилить репорты на вебе, или делать охуительные гриды с деревьями и т.д.
Короче, похуй почему. Просто все эти контролы - говно. Они хорошо только в базвовой комплектации. Главное к ним ничего не прикручивать.
Поискал решение, охуел от сложности. Можно как-то попроще сделать это? Мне не нужно блять свою поисковую систему создавать, как предлагает гугол.
Вот тут http://stackoverflow.com/questions/18389714/search-keywords-in-google-through-c-sharp-window-application самый нижний ответ норм, но там он юзает API, где мне его скачать-то? К удивлению нихуя найти не смог
А зачем что-то писать под виндофон?
Еще нашел вот это https://github.com/google/google-api-dotnet-client, что это вообще за хуйня, что с ней делать и как использовать в программе?
На удивление, искать в интернете ты вообще не умеешь
https://developers.google.com/api-client-library/dotnet/apis/customsearch/v1
> Install a NuGet package from those available at Google.Apis.customsearch.
На удивление, читать ты вообще не умеешь
>Можно как-то попроще сделать это? Мне не нужно блять свою поисковую систему создавать, как предлагает гугол.
ты поехал, какую поисковую систему?
> var client = new GwebSearchClient("http://www.google.com");
> var results = client.Search("google api for .NET", 100);
это все, что тебе надо, только вместо ста - int.max или допустимое для апи значение
потому что его юзают только конченные извращенцы
Да я поехал, потому что блять хуйня, на которую я планировал потратить 5 минут, превратилась в занозу в жопе.
Ну установил я через эту ебаную консольку кастомсёрч. Пишу:
>using Google.Apis;
про твой код он вообще ничего не знает, подчеркивает.
Пишу как нашел в интронете:
>string apiKey = "ключ";
>Google.Apis.Customsearch.v1.CustomsearchService svc = new Google.Apis.Customsearch.v1.CustomsearchService();
>svc.Key = apiKey;
Подчеркивает svc.Key мол не знает о таком.
И куда мне ключ писать тогда? Просто пиздос
>>810000
Так, так, спасибо, направление я понял. И очень рад, что дошел до этого сам, я не безнадежен!
Значит так, поправь меня если не так:
1. Каждая строка в CSV формируется в объект, поля которого - ряды в этой строке.
2. Этот объект добавляется в список объектов.
3. С помощью LINQ можно уже извращаться с объектами.
Можно пожалуйста ссылку на похожий код для изучения?
Спасибо.
в get started для этого api есть пример. ты его пробовал использовать?
пытаюсь въехать в wpf после пару годов winforms.
пока что не особо успешно. разобрался с контейнерами, хамл как записывать.
сейчас мне нужно сделать вот что.
у меня естьрадиобатон, и я хочу, чтобы когдя я его кликнул, то у пары текстбоксов enabled было равно радиобатон.чекед.
как мне это сделать?
<RadioButton Name="rbAlreadyHas" FontSize="18" GroupName="rbGroup" Checked="rbAlreadyHas_Checked">
Я уже зарегестрирован в системе
</RadioButton>
<ComboBox Name="cbRegisteredUsers" FontSize="18" IsEnabled="{Binding Path=Checked, UpdateSourceTrigger=PropertyChanged, ElementName=rbAlreadyHas}"/>
пробовал вот так, не пашет. только выключает мой комбобокс и все, все зависимости от радиобатона
то есть mvvm,вот это все сразу припиливать?
начальник на работе просто в сраку ебет, чтобы быстрее кодил(
Попробуй забиндить на IsChecked, потому что биндить на event здорово, но как то выбивается из концепции.
>>810960
Лучше раньше чем позже. Без этого у тебя получится windows forms 2.0, и хотя концепция тебе знакома и ты все быстро напишешь, и, как следствие, не будешь выебан в сраку, это не wpf way.
>IsChecked
та же хуйня.
<RadioButton Name="rbAlreadyHas" FontSize="18" GroupName="rbGroup" Checked="rbAlreadyHas_Checked">
Я уже зарегестрирован в системе
</RadioButton>
<ComboBox Name="cbRegisteredUsers" FontSize="18" IsEnabled="{Binding Path=IsChecked, ElementName=rbAlreadyHas }"/>
блять, пришлось написать обработчик. винформс 2.0 блят
зачем модели знать что-то про вьюмодел?
для конвертации из модели во вм можно использовать любую из библиотек-мапперов. для наоборот можно обойтись чем-угодно, хоть методами-расширения, вопрос в том, что и как ты используешь
Я понимаю, я про то, чтобы создать отдельную фабрику, чтобы не писать каждый раз в контроллерах что - то уровня:
Mapper.Map<ModelName>(viewModel);
или
var model = new Model(viewModel);
а создать одну большую фабрику, которая будет все это выполнять, например
var model = ModelFactory.Create(viewModel);
вот вариант статической "фабрики", который я видел, я и хочу узнать как лучше.
>Нет нет нет, пиши сам.
Я так и собирался, но хотелось бы сравнить с кодом того, кто действительно умеет программировать.
И еще один вопрос, если можно:
Когда я выбираю все объекты с определенной планетой (a => a.Planet == Mars), как составить список ну или массив всех возможных стран на этой планете? Естественно, без повторений, чтобы можно было скормить этот список стран в формочку, когда выбирается определенная планета.
Гуглится только "removing duplicates using LINQ", а мне надо не убирать повторы, а изначально составлять список без повторов.
Спасибо большое.
var countriesOnMars = planets.where(x=>x.Planet == mars).SelectMany(planet=>planet.countries).ToList();
Ну или если у тебя один марс только:
planets.First(x=>x.Planet == mars).Select(planet=>planet.countries).ToList();
Если нужны только уникальные - то надо ебануть Distinct() перед ToList.
А ваще - попробуй разберись сам. linq - очень важная штука в соверменном програмировании.
Анон,
Я дебил, гуглил remove duplicates вместо distinct values. Вроде нашел:
List<int> lst_DistinctCountry= objList
.Where(o => o.Planet == "Mars)
.Select(o => o.Country)
.Distinct()
.ToList();
молодец, анончик
если у тебя нет никакой другой логики для переключения радиобатона и вообще, почему не чекбокс? разве не логичнее его использовать?, то убирай нахуй обработчик события Checked у него, дай радиобатону имя (x:name = anything), и в комбобоксе или что ты там выключать собрался пифы:
<Combobox ... IsEnabled = "{Binding ElementName = anything, Path = IsChecked ВОЗМОЖНО понадобится вот это ещё: NotifyOnSourceUpdate = True, UpdateSourceTrigger = PropertyChanged}" />
не пропусти бротан
перекат https://2ch.hk/pr/res/811482.html (М)
самокат https://2ch.hk/pr/res/811482.html (М)
андеркат https://2ch.hk/pr/res/811482.html (М)
брудершафт https://2ch.hk/pr/res/811482.html (М)
алконафт https://2ch.hk/pr/res/811482.html (М)
я вчера таки подпилил)
вот так
<RadioButton Name="rbNewUser" Grid.Row="0" Grid.ColumnSpan="3" FontSize="18" GroupName="rbGroup" >Зарегестрировать и войти как новый пользователь</RadioButton>
<TextBlock Text="Фамилия" HorizontalAlignment="Center" Grid.Row="1" Grid.Column="0" FontSize="18" IsEnabled="{Binding Path=IsChecked, ElementName=rbNewUser, Mode=TwoWay }"/>
Работаешь где-то?
если кому интересно - позже накатаю свой вариант, но не кажется мне идеальным
Есть класс B, в котором нужно перезаписать абстрактный метод класса A, но без наследования B от A. Чтобы прям в конструкторе класса B повесить код в абстрактный метод класса A. Чтобы как в джаве. Как сделать?
Некоторые компании раздают бесплатно разработчикам. Но да, нужно покупать.
Хочу сделать рандомную генерацию матрицы из символов. Накидал на c# её реализацию, но почему-то создается лишь из одного символа случайного вся матрица. То бишь рандомный символ выбирается один раз и заполняет всю матрицу. Как это починить?
Вот мой код: http://pastebin.com/L0fiprXK
Спасибо большое!
Это копия, сохраненная 22 августа 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.