Шапка https://github.com/CSharpShapka/SharpHat/wikiПрошлый >>992654 (OP)
И сразу вопрос. Пишу я, допустим, блекджек. Есть солюшн. Хочу создать класс для карт и класс для игроков. Куда класть файл с дополнительными классами? Создавать новый каталог? Класть в какой-то из существующих? Если создавать, то как назвать? Существует ли какое-нибудь соглашение, стандартные названия?
>>999281Если не используешь паттерны вроде MVVM, то похуй куда класть. Сделай папку Classes и клади туда. Названия классов с большой буквы в одиночном числе. Папки во множественном.
>>999285Спасибо!
Друзья, возникла небольшая проблема. Как организовать поиск 1-ой и последней буквы в слове и поменять их местами?
>>999368Я нихуя не понял. Поиск или просто замена. Объясни что тебе надоо, желательно с примерами.
>>999368Для начала получаешь слово из строки. После узнаешь длину слова. Потом меняешь местами первую и последнюю буквы.
>>999368Разбиваешь строку на массив символов, создаешь 2 локальные переменные, которым присваиваешь значения первого и последнего элементов массива, склеиваешь массив в строку. Вуаля
string str = "31535173"; char[] chars = str.OrderBy(x => x).Reverse().ToArray();long number = long.Parse(new string(chars));Можно сократить линком?IEnumerable<char> -> char[] -> string -> long
Сап анончики, может ли кто помочь написать небольшую прогу для анализа финансового состояния?
>>999509Зависит от объемов твоего финансирования.
>>999368https://ideone.com/XeDLoa
Вечер в хату, братишки.В чем принципиальное различие между indexer и dictionary?Вроде делают одно и тоже, только indexer более гибок.В книге не очень заморачиваются объяснениями.
>>999675Ты какую-то херню спрашиваешь.indexer - синтаксический сахар для удобной итерации по содержимому объекта.dictionary - струкстура данных типа ключ-значение.
>>999281> Существует ли какое-нибудь соглашение, стандартные названия? Как на галере взялись называть так и будешь типо GvnHelper, PDRHelper и т. д.
>>999401>>999440>>999608Ого, сколько экспертов в треде.
сап мамкины архитекторы и простые разработчики, встала задача сделать небольшое winform app. Решил делать по MVP из - за абстракции представления (на будущее), так вот может кто пояcнить чо пихать в Model, понимаю что там должна быть бизнес логика, но в чем она заключается? Это, например, работа с бд, или же вообще вся логика??? поясните дауну
Раскидайте долбоебу вкрадце разницу между методом и свойтством, массивом и списком List<T>. Когда и что лучше использовать. Например для реализации сранног оплейлиста лучше использовать что?
>>999888А все вижу на метаинте этот ебанутый набор методов, свойств и интерфейсов на все случаи жизни.
Создал через EF code first базу с таблицами. Теперь в энтити добавил кое-что, из-за чего должна добавиться еще одна таблица, а в прошлых удалиться столбец. Такое же через migration решается? Я его сделал, а он ничего не выполняет. В MigrationHistory пусто, запускаю через команду update-database. Я чего-то недопонимаю?
>>999888список содержит в себе массив и предоставляет удобные методы и тд для работы с данными внутри
>>999846Смотри, во view у тебя например форма, которая связана с презентором, в презенторе ты определяешь основную логику,например пусть там будут евенты от формы и основная логика, а в модели ты уже определяешь реализации конкретные. Например , тебе нужно определить свою логгер который в зависимости от типа сообщения который пользователь выбрал на форме , будет писать сообщение в разные штуки(На консоль,либо файл,можно еще в сеть).Ты пишешь интерфейс ILogger в модели и пишешь в нем метод Log(string message), в конструкторе презентора принимаешь ILogger, и соединяешь евент формы(клик)с этим методом ILogger.Log. В модели пишешь уже конкретную реализацию интерфейса ILogger, например FileLogger, Console logger. Принцип работы - в конструктор презентора передаешь нужную модель(реализацию) и все. Если у других будет критика к мне , You are welcome. Надеюсь я понятно выразился
>>999897Да. Спасибо. Плюс еще он очень удобен, когда нужен динамический массив. Хорошо сделоли.
>>999701Ок, понял. Я почему то подумал что одно это сахарок/обёртка для другого.
Нужно запилить бекэнд сервис для сайта. Чтоб он предоставлял всякую информацию из разных источников для последующего рисования пикрелейтед. Как получить информацию вопросов нет. Но вот как реализовать сам этот сервис пока не особо понимаю. Веб прогер сказал что ему в идеале подошел бы веб сервис, что бы он мог тягать страницу с параметрами. Это значит asp.net проект с одной страницей без авторизации? Или есть еще варианты?
>>999893В PM сначала включаешь миграции: Enable-MigrationsПотом добавляешь миграцию: Add-MigrationА потом уже обновляешь бд: Update-Database
>>999899Вроде как понял, спасибки
Добрый анон, можешь сделать неболшой пример как создавать нормальные Length prefix для TCP пакетов и как со всей этой хуетой разобраться? перерыл весь гугол, нихуя нормального не нашел (
>>1000073> нормальные Length prefix для TCP пакетовпросто первым байтом отсылаешь длинну массива. В чем трабла то?
Нахуя атрибуты нужны и как они работают? Объявил я кастомный атрибут и что теперь? Он же нихуя не делает.
>>1000140Атрибуты - это мета-данные объекта, они ничего не должны делать.Тебе теперь нужно объявить класс, который будет через рефлексию читать твой кастомный атрибут из объекта и что-то делать.Обычно не пишут кастомные атрибуты, так как это сильно бьет по производительности, а используют уже готовые атрибуты и то, если без них нельзя обойтись.
Почему нет анонимных енумов?class Card{ public enum Suit { Spade, Diamond, Club, Hearth } public Suit Suit;}Как принято решать такие конфликты имён?
Можно ли создать свойство с входным параметром?
C# параша, я так дохуя этих шарпов перекрякал, пиздец. Настолько изи блять крякается, нахуй вы на этом дерьме пишите.
>>1000263Ты че утка что ли?
>>1000263Твоя мамаша тоже самое спрашивала, когда я ей очко разрывал своим толстенным хуем.
>>1000276проиграл
>>1000255Другими именами
>>1000263Чего ты там крякаешь, утенок мамкин. Нормальный софт ты хуй сломаешь.
>>1000347>>1000292>>1000276Так-то он прав, декомпилировать шарповские экзешники и либы очень просто, достаточно запустить декомпилятор под дот нет и открыть в нем нужный файл. Всё.
>>1000360А можно просто посмотреть в публичной репе где все нормальные люди ведут разработку.
Вкатываюсь в программирование. Можете рассказать, в каких областях используют C# для десктопа? Много ли вакансий? Или лучше в джаву сразу идти?
>>1000405для десктопа в джаву
>>1000405жаба и с# почти одно и то же, платформы разные, они конкуренты, что тебе больше нравится то и бери, c# быстрее развивается со всякими порой ненужными фичами, java консервативна
Есть лист с кучей элементов. Нужно из листа вытащить один элемент, так, чтобы он был удалён из листа, но был возвращен, аналогично js методу splice.Поясняю:Допустим есть лист hui с содержимым [1,2,3,4,5,6]Нужно использовать метод, который удалит элемент и вернёт его. Например:var elem = hui.Yoba(2);elem == 3 // truehui == [1,2,4,5,6]Есть такой метод?
В чём разница между enum и структурой? Ну кроме того, что по енуму можно пройтись через foreach.
>>1000503>между enum и словарёмФикс.
>>1000503>>1000507Тебе стоит прочитать книженцию для совсем новичков. Загляни в шапку ньюфаг треда
>>1000494https://ideone.com/ZaXSHW
>>1000507enum задает перечисление , например цвета - синий,красный и тд. Каждому цвета сопоставляется число которое и передается программе когда ты вызываешь Color.RED (например 1), чтобы твоя программа понимала что за цвет ты выбрал,ибо она умеет работать с числами, а названия придуманы для удобства разрабов чтобы они не цифры писали а внятные имена. Словарь является хеш таблицей. При добавлении элемента в словарь(например строки) для нее вычисляется ее хешкод. Этот хеш код сопоставляется с индексом в массиве. И в этот индекс записывается данная строка. Хеш код построен так что для разных строк он генерирует свое число, так что он с высокой долей вероятности гарантирует что у двух разных строк будут разные коды, а соответственно разные индексы в массиве. Словарь дает возможность быстрого поиска,например пользователь вводит строку и тебе нужно узнать,есть ли она в хеш таблице(читай, в твоем массиве) или нет , если бы это был просто массив ,то тебе нужно было бы перебирать все элементы,что довольно долго, а в хеш таблице тебе нужно лишь вычислить хеш код строки которую ввел пользователь, а как мы знаем хешкод соответствует индексу в массиве, то тебе достаточно проверить - пустой этот индекс в массиве или нет. Словарь дает быструю вставку в коллекцию и поиск по ней. Enum предназначен чтобы к примеру ограничить выбор разработчика(к примеру ты определил что в твоей проге поддерживаются только красный и синий цвета, и ты хочешь чтобы другие не могли выбирать розовый,потому что он не поддерживается) таким образом пользователь или другой разработчик сможет использовать только те перечисления которые ты явно объявил.
В каком порядке будут вычисляться функции a, b и с в этом:a() + b() * c()выражении?В учебнике пишут, что по спецификации подвыражения вычисляются всегда слева направо (т.е. это будет а, b и с), но тогда нахера нужны приоритеты операций, почему они только на значения распространяются?Даже если так, то как быть с более сложными выражениями типа a() + b(c())?
Ананасы, а кто то знает реальное применение на проектах такой фичи как битовые флаги и вообще подразрядные операции? Ибо конечно классно что я могу писать в перечислениях Read=0;Write=1;ReadWrite=Read| Write; но нахуй это надо?
Что есть такого из ебанутых парадигм программирования, каких-то наркоманских (но не просто в виде используемых символов языков) языков, интересных, но малоиспользуемых методах? Посоветуйте что-то по этому поводу.
>>1000575Очевидно в случае когда содержание сущности предметной области суть флаг, т.е. может содеражть одновременно множество включенныех признаков-флажков.
>>1000576Какой-то хуёвый вопрос. Не буду на него отвечать.
>>1000579Ответь на пиздатый >>1000572
>>1000572компилятор видит операцию и помещают ее в стек последовательно например у тебя есть Main(){var L = a() +b(с());}Компилятор видит мейн и добавляет его в стек,на вершине стека висит пока что вход в метод мейн,пото создается переменная L, далее он видит a() добавляет сверху мейна метод а() и вычисляет его, потом видит b(), и видит что ему передается c() , теперь на вершине стека висит c(). В итоге видим такую "лестницу" из методов .c()b()результат aприсваивание(=)main()Сначала в вершины стека достается c() и выполняется , и убирается из стека, далее выполняется b() и так же удаляется из стека, потом результат a() , далее выполняется операция присваивания , компилятор видит закрытие метода main() и в конце концов из стека удаляется метод main() и теперь он пуст, программа выполнилась
>>1000583Т.е. автор (Барт де Смет, а не хуй простой) напиздел что вычисление производится слева направло, зачем он это сделал???
>>1000583Даже по твоему описанию, почему в первом случае сначала будет вычислен a(), ведь компилятор знает при приоритеты, а значит сначала должен вычислить b и с?
>>1000585так он честно сказал что слева направо если a()+b() то сначала в стек добавляется а и потом b, может он это имел ввиду , а вообще это все описано в CLR via C# рихтера, там небольшая глава этому уделена в самом начале , очень подробно расписано
>>1000588Нет, там точно вся тройка имеется ввиду. Я тестик написал в консольке, даже скобки добавил: a() + (b() * c())и все равно вычисляется в порядке a, b, c
>>1000587так а какая ему в хуй разница что вычислять первым , он сначала выполнит вызов всех методов по порядку а потом уже отправит результаты в стек для операндов
>>1000593По спекам порядок строго слева направло, отсюда и вопросы.
>>1000591суть в том что выполнение методов это одно, а выполнение выражения это другое, сначала выполняются все методы по порядку и вернутся результаты их значений , потому что компилятор не может на ходу формировать приоритет операций(+,- и тд) и последовательно их выполнять. Он сначала пробежит по выражению, составит стек вызовов методов по порядку, выполнит его, вернет значения и выполнит выражение подставляя то что вернули методы, при этом будет сформирован свой стек операндов , в котором и будет правильный порядок по приоритету , но вместо методов будут уже подставлены числа которые вернули методы, надеюсь я понятно выразился
>>1000598А как быть с a(b(c))?
охуительные истории итт
а как ты передашь метод в метод? посредство делегатов? тогда другой вопрос.Если ты имеешь в виду что метод A() в себе вызывает метод B() а тот в себе C(), то они будут выполняться C() потом B() а потом A()
>>1000626Имелось ввиду последнее, выходит нет правила вычисления сначала методов слева направа, а все определяет сложность выражения. Мне просто не понятен тогда пиздёж автора.
>>1000632ну ты же понимаешь что при выраженииa(b(c))) невозможно сначала вычислить a, не имея результата b и с, потому что они передаются в a как аргумент
>>1000636Ну это первое что пришло на ум, когда я прочитал. Просто автор вроде толковый, я часто сначала списывал некоторые его фразочки как на фигуры речи или неточные, но потом оказывалось что он был абсолютно точен как в учебнике по матану и это я поначалу не уловил до конца суть. Поэтому подумал тут какой-то подвох есть.
>>1000643возможно лажа с переводом если ты читаешь на русском и он имел ввиду порядок добавления в стек вызова или что то типа этого. Сам я книгу его не читал, так что пояснить не могу.
>>1000360Прав не до конца. Ломают те программы, которые изначально не пытались защитить. Если взять более менее дорогую софтину, то после декомпиляции можно получить два ведра хуев.
>>1000263Пиздить все умеют, а попробую что-нибудь из этого на изи крякнуть.http://updates.buddyauth.com/
Что за хуйня? Почему так?
>>1000714Проеб где-то снаружи
>>1000658Если у реверсера есть мозги он что угодно крякнет.
Поясните про base64 декодинг. Разбил я значит строку на части по 6 бит и конвертировал в base64:"thi" = 011101000110100001101001 (24 бита)011101 -> 29 -> d000110 -> 6 -> G100001 -> 33 -> h101001 -> 41 -> pКак теперь вернуть "dGhp" в "thi"? В гугле одни отсылки на MSDN и байтоёбы (мне нужно сделать перебором символов, без >> сдвигов)
>>1000732У него была претензия конкретно к шарпу. Мол нахуй на нем пистаь, если он легко ломается. Хотя он еще ни одной серьезной программы не ломал.
Подкиньте ресурсов с задачками типа "создать класс с полями бла бла". Желательно начиная с массивов. Заранее спасибо
>>1000774Ты что, это всё вручную писал? Нахуя?https://ideone.com/YyXEru
>>1000816Нахуя? Тебе заняться нечем???
>>1000833А как программирование учат, лол? Прочитал - запомнил?
>>1000852Сделай программку, которая будет трэкать время. То есть сколько времени потрачено в определенной программе. Если это браузер, то трэкай сайты. Времени даю неделю, можешь начинать.
>>1000857Спасибо конечно за идею, но я реквестировал немного иное, чтоб делать задачки по мере освоения>Желательно начиная с массивов
>>1000852Читаешь нормальный учебник, сам себя контролируешь.
>>1000571Спасибо!
>>1000868Какие нормальные учебники с задачами?
>>1000717>>1000714Оказывается, там сразу после return true; стоял слэш "/", но Xamarin Studio по каким-то причинам его не отображала, но компилятор его видел и падал. Перезапустил студию, слэш стал виден.
>>1000961Дали людям VS Community edition вместе с VS Code - нет, не хочу. Хочу жрать говно. Зачем вы так?
>>1000962>VS Community edition Пока он запускается, можно успеть сходить попить чай, покурить и прочитать все треды на нулевой /pr/.>VS Code Он хорош для скриптов, но для компиляции не подходит - ни встроенного дебага, ни компилятора, только консолька и ебись как хочешь.
>>1000991> Пока он запускается, можно успеть сходить попить чай, покурить и прочитать все треды на нулевой /pr/.Ну так сходи, попей. Ты ее что, второй раз запускать будешь?> ни встроенного дебага, ни компилятораДебаг - чек. Компилятор - чек.
>>1000997>Пока он запускается, можно успеть сходить попить чай, покурить и прочитать все треды на нулевой /pr/.Замерил с таймером - VS 2017 запускается 3 секунды.
>>1000998Только на топовой пека без решарпера после повторного запуска, когда все закешировалось в оперативке.
Этот прав >>1001000А еще у него гет
>>1001000>>1001001Ок, на виртуалке с решарпером 5 секунд.
>>1000908в шапке все написано
>>1000997студия запускается ~8-10 секундмного чего зависает. правый клик по коду занимает 3-4 секунды, навожу на Add - 6 секунд. даже ctrl-x в первый раз занимает 3 секунды.WPF ахуенен :))))
>>1001051вот спеки.
Как через фильтр убрать из словаря все элементы, в которых значение меньше определённого? Я пытаюсь вот так:rating = rating.Where( player => player.Value < 20);Но получаю ошибку:>Error CS0266: Не удается неявно преобразовать тип "System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, int>>" в "System.Collections.Generic.Dictionary<string, int>". Существует явное преобразование (возможно, пропущено приведение типов). В чём дело? Значение - число, сравниваю тоже с числом.
>>1001072Вызови ToDictionary()
>>1001076Спасибо!
Сап. На шарпе делал граббер для myvi.ru. Суть в том, что ему сначала дается ссылка на сам видос на сайте, из этой ссылки извлекается линк на плеер, из линка на плеер извлекается api-call, из него же, в конечном итоге, воруется ссылка на mp4. Ничего лучше не придумал, но и эта параша не работает, выкидывая мне вот это "412 - определенное клиентом предусловие не выполнено при оценке на веб-сервере". Причем если переходить по той же api-call ссылке в браузере, то все вполне работает и можно таки спиздить видосик. Закачивал сурсы при помощи WebClient() и Request-Response, но чет не вышло. Реквестирую помощь.
>>1001187Хедеров не хватает. Глянь в консоли что они посылают за реквесты и сделай так же.
>>1001187>из этой ссылки извлекается линк на плеер, из линка на плеер извлекается api-callПоясни, как это происходит.
Посоны, есть Dictionary <string, int>, как извлечь из него все ключи, с помощью LINQ, имеющие максимальное значение, а не только один?
>>1001192Вот там раскидано. Если на словах, то подается прямая ссылка на видос, из нее берется ссылка на плеер сайта, из этой ссылк тащится api-call, из api-call тащится юрла на мп4. Я смотрел, какие запросы посылает мозилла и пытался подобные посылать, но ничего не вышло.
>>1001251Вот автоматная грамматика для парса. На кусок кода где string dick и HttpClient() можете вообще внимания не обращать - я его забыл закомментить
>>1001252Из сурса страницы с видосом вырвать <meta property="og:video:iframe" content="..." /> и перейти;Из этого линка вырвать dataUrl:'..' и перейтиОттуда вырвать http://fs.myvi.ru/... и перейтиТак формится линк на мп4 или флв, в зависимости от того, что там заливали
>>1001220var max = dict.Values.Max();var result = dict.Where(pair => pair.Value == max).Select(pair => pair.Key);Что-то типа такого.
Надоело пердолиться с консолью, полез в ВПФ и охуел.Где main()? Это ведь "точка входа" в программу, как без него?!Любая программа это по сути просто луп, так? Где тут луп?Стал гуглить. Оказывается, main() таки есть, но в генерируемом коде. И что теперь делать?Помогай, анон. Я тупой. Я к такому оказался не готов и теперь не могу понять, как вообще что-то делать.
>>1001337>ВПФНе лезь. Винформы бери.
Алсо, посоветуйте что-нибудь почитать по этой теме, минималистичное, с самыми основами, и ёмкое для тупого быдлана.
>>1001339Почему? Везде пишут, что винформы устарели и какой пиздатый ВПФ.
>>1001337Все это есть, но абстрагированно от тебя. В маине показывается MainWindow.
>>1001341Если ты не пилишь какое то супер йоба пердоль-ГУИ то все нормально с винформами.
>>1001342Зачем эта хрень предлагает мешать логику с гуем, если она такая навороченная?
>>1001348Не предлагает. Ты её просто ещё не понял. Гугли mvvm применительно к wpf.
>>1001337Есть 2 варианта: прописать в app.xaml стартовый uri и тогда wpf сам создаст главное окно, которое ты там укажешь, либо удалить это место и прописать в настройках проекта стартовую точку, в которой ты создашь главное окно руками или через ioc-контейнер.
>>1001337Забей хуй на впф, там костыль на костыле, особенно если начнешь изучать MVVM. Кроме того, эта технология настолько дохлая, что никто не касался ее обновлений уже лет 5. Даже в этом треде тебе прямо говорят - для C# десктопа не существует, шарп нужен только в вебе, а именно ASP.NET, и в геймдеве, а именно Unity. Всё. Если очень хочешь пилить программки для десктопа, то тебе в джаватред.
>>1001421Опа-опа, а откуда дровишки?
>>1001416>прописать в app.xaml стартовый uri и тогда wpf сам создаст главное окно, которое ты там укажешьТо есть как в дефолтном WPF шаблоне?>удалить это место и прописать в настройках проекта стартовую точку, в которой ты создашь главное окно рукамиВ сгенерированном коде куча всякой хуйни #препроцессорные директивы и прочее, оно нужно?Алсо, Арр класс для чего?>>1001421Ты сделал меня грустить.Почему жаву хейтят?
>>1001450Из этого треда >>1000435 >>999073 >>999170 и это не мои посты, если шо
>>1001451>Почему жаву хейтят?Не знаю, но я после ебли с впф и мввм попробовал javafx и сделал свой вывод, совсем неприятный для любителей шарпа. Попробуй сам и узнаешь, хуле.
Кстати, впф не умер, а переродился в увп.
>>1001460Я не программист так то. Так, совсем чуть-чуть.Долго выбирал, шарп показался отличным выбором - и под винду, и под андроид, и УНИТИ, и - в будущем - годот.Охуенно же.А теперь опять хуй пойми. Мне ведь так, для себя.
>>1001451>То есть как в дефолтном WPF шаблоне?Да. В сгенерированный код вообще не лезь, нах он тебе нужен.https://simpleinjector.readthedocs.io/en/latest/wpfintegration.htmlВот тебе пример, как свою стартовую точку впердолить с использованием ioc-контейнера. Без него все то же самое, только все объекты сам руками создаёшь.
>>999368 private static string swapBoundarySymbols(string s) { if (s.Length > 1) { return s[s.Length - 1] + s.Substring(1, s.Length - 2) + s[0]; } else { return s; } }
>>1001464Его главная проблема это виндовс 10 онли.
>>999275 (OP)Перепошу из перезвоним треда - сколько просить джуну в дс шарп ессесна
И снова кодировка.Пытаюсь че то написать на ASP .Net, возникла проблема. Создаю локальную базу данных, создаю таблицу, заполняю, и почему то вместо русских символов в обозревателе таблицы выводит ????????? ???????. Тип полей стоит nvarchar, в чем еще может быть проблема??
>>1001421>Кроме того, эта технология настолько дохлая, что никто не касался ее обновлений уже лет 5.Последняя версия - июль 2015>Если очень хочешь пилить программки для десктопа, то тебе в джаватредПоследняя версия javafx - март 2014Может, тебе с такими свежими и актуальными знаниями укатиться отсюда, а?>>1001451>Почему жаву хейтят?Из-за умников которые рассказывают про необновляющийся 5 лет впф и свежую javafx на замену
>>1001812Сорян если не тот тред, просто не знаю куда еще.
>>1001812Collation должен быть Кирилица CL_AS
>>1001796А ещё мобильник и иксбокс. Тебе макос нужен или устаревший виндовс?
Хочу написать метод, который строит отчеты. В метод собираюсь передавать имя отчета, по этому имени метод должен взять модель нужного отчета и запрос для него, заполнить модель и передать все это в нужную вьюшку.Затык идет на стадии объявления модели - пытаюсь объявить её через дженерики, а там в параметр нужно передавать тип. Его можно получить через рефлексию, но как-то это некрасиво, может есть готовый красивый паттерн для таких случаев?
>>1001337-кун снова выходит на связь.Понял, что тэмплейт ВПФ создаёт сгенерированный Main(), вызывающий унаследованный от System.Windows.Application метод Run(). В Visual Studio через Go to implementation можно посмотреть только комментарии, а хотелось бы понять его реализацию. Можно где-то посмотреть код или хотя бы алгоритм в общих чертах? На msdn тоже ничего не нашёл.Не понятно следующее. Программа "существует", пока исполняется main(), а тот, в свою очередь, завершается только после выполнения run(). Но программа из тэмплейта может выполняться бесконечно, значит, в run() - или в вызываемых им методах - должен быть какой-то цикл, типа while (true){...}, так?
Как генерировать куки для HttpRequest и использовать из потом? Чтобы добраться до одной странички на сайте, нужны куки, без этого выкидывает 412
>>1001994Куки генерирует сервер и возвращает в заголовке Set-Cookie. Смотри свойство Cookies.
>>1002037Куки можно сделать и самому, это обычный файл.
>>1002037Спасибо за наводку
Господа, возникло пара вопросов, помогите разобраться. Сам я не программист и вкатываться никуда не собираюсь, скорее любитель и для души. Есть класс, который опрашивает один девайс через каждые 5 секунд используя при этом unmanaged библиотеку, результаты опроса пишет в лог файл. В связи с этим вопрос, как бы мне точно организовать все это дело так, чтобы за эти пять секунд успеть обработать данные с девайса и записать в лог-файл, или хотя бы знать, что я не уложился в этот период (погрешности все дела). Если файл большой, то время записи ведь больше будет? Или библиотека по какой-либо причине долго будет обрабатывать. В какую сторону копать?
Как же у вас тут лампово, и как же мне нравится оппик. жаль, что Шарп годится только для веба, но при этом сервера на шиндовс это в принципе не очень хорошо
>>1002210>Шарп годится только для вебаОбясни.
>>1002210что лампового? дауны какие-то сидят. никто ничего не знает, но все кому-то что-то советуют.
>>1002210Зачем тебе сервер на Windows? В Linux же все работает, и ASP.NET MVC, и Entity Framework, и веб-сервисы.
>>1001838>мобильник>В феврале 2016 Microsoft объявила о приобретении компании Xamarin. Вскоре после покупки Microsoft объявила о закрытии разработки моста Android и поддержки данных приложений в Windows 10. Главным направлением компании остался мост iOS.Что-то не густо. Зачем он нужен без поддержки 80% всех телефонов?
Хочу шустро кабанчиком вникнуть в MySQL, что лучше почитать общего представления, желательно сразу с практикой? Какие СУБД используются при работе с ASP.NET?
>>1002373>что лучше почитать общего представленияВиктор Гольцман. MySQL 5.0http://www.proklondike.com/books/dbmysql/golzman_MySQL_5.0_2010.html>Какие СУБД используются при работе с ASP.NET?Любые, имеющие ADO.NET провайдер.
>>1002378Спасибо. >Любые, имеющие ADO.NET провайдер. А на что стоило бы обратить внимание?
>>1002382На то, что надо больше делать и меньше говорить. Запили проект, в котором будет авторизация и доска для комментов. Лайт двощ, короче.
>>1002395>авторизация >Лайт двощ,
>>1002405На двоще пссскоды это авторизация.
Справочник по Git посоветуйте.
>>1002276Разве?>>1002249Для андроида есть вещи получше, для десктопа он так себе в принципе. >>1002252А в других тредах что? Либо хуи за щеку, либо хуесосят язык, лол.
>>1002435Чакон С. Штрауб Б. Git для профессионального программистаhttps://www.htbook.ru/kompjutery_i_seti/programmirovanie/git-dlja-professionalnogo-programmistaЕсли хочешь графический клиент, то ставь SmartGit, но основные команды для консоли нужно знать.Заодно посмотри и про Team Foundation Server:https://msdn.microsoft.com/ru-ru/library/hh529827(v=vs.110).aspxЭто система управления проектами (задачи, багтрекер и т.д.), часто используется при .NET разработке. Раньше там была какая-то своя корявая система контроля версий от Микрософта, теперь перешли на православный git
>>1002382>А на что стоило бы обратить внимание?У всех популярных СУБД есть провайдеры.Из бесплатных лучшая - PostgreSQL, чуть побыстрее, но беднее возможностями - MySQL (удобна для ORM, если не используешь триггеры, хранимые процедуры и т.д., а только CRUD).Коммерческих основных 3 - MS SQL Server, Oracle Database и IBM DB2. Первая есть только под винду, остальные кроссплатформенны. У всех есть бесплатные урезанные версии (в основном ограничения по размеру базы).Встраиваемые СУБД - Firebird (Embedded конфигурация) и SQLite, хранят базу в памяти и могут записывать/считывать из файла. Сервера у них нет (точнее, он в виде динамической библиотеки, подключаемой к приложению). Позволяют делать портабельные приложения с базами. SQLite считается более быстрым, но не полностью поддерживает стандарт SQL, не может работать в многопользовательском режиме (когда несколько юзеров подключаются к одной базе одновременно). Для C# к SQLite написан враппер (т.е. работа напрямую без ADO.NET), можно скачать на sqlite.org
Шарписты что там с asp.net по линух? Хотелось бы для бэкенда юзать язык с нормальным ООП и не такое говно как java.
>>1002147Если ты по человечески объяснишь что нужно, то можно будет тебе по человечески ответить. Лучше сразу код покажи.
>>1002456>Первая есть только под виндуНу ты и соня, тебя даже вчерашний шторм не разбудилhttps://www.microsoft.com/ru-ru/sql-server/sql-server-vnext-including-linux
>>1002473g:asp net core
>>1002452Пасибки.
>>1002456Круто. А почему работадатели обычно требуют только MsSQL? Стоит ли на остальные обратить внимание?SQLite то поприкольней вроде.
>>1002511MS SQL родной для Сярпа.
Технология ADO норм или для пидоров? Что там с кросплатформенностью?
>>1002511>>1002514Родной для винды и от того же производителя. Обычно используют весь стек от микрософта: Windows, Office, .NET, SQL Server, Sharepoint. Считается, что там все уже отлажено и нет багов.Для переносимого софта, когда базу нужно носить с программой, лучше SQLite.
>>1002581ADO это для C/C++ и Delphi, ты про ADO.NET? Это в .NET главный фреймворк для работы с базами + ORM надстройка Entity Framework с LINQ поверх него. В Mono поддерживается.Портированный с жабы NHibernate тоже использует ADO.NET.Вообще проблемы с кроссплатформенностью в .NET в основном у десктопного гуя. У нас в конторе клиент для ERP системы из-за этого пишется на Eclipse/SWT (дерьмо полное), т.к. нужна поддержка Linux. Сейчас думаем, переходить ли на Qt или делать веб-интерфейс. А вот серверная часть, со всеми веб-сервисами, демонами и т.д. работает без проблем под любой ОС.
>>1002147>>1002482Грубо говоря так:while (true){ var a = CustomClass.ReadStatus(); Thread.Sleep(5000);}Суть в том, что мне нужно делать опрос через каждые 5 сек, но ведь поведение метода ReadStatus по времени может быть разным, а это значит, что следующий опрос будет не через 5 сек, а 5 сек + время работы метода. А как мне точно то уложиться в этот период?
>>1002622На языках со сборкой мусора реалтаймовые приложения писать нельзя, ибо время работы сборщика непредсказуемо.Для измерения времени в WinAPI есть функция QueryPerformanceCounter, которую можно импортировать в C#:https://msdn.microsoft.com/ru-ru/library/bb397808(v=vs.90).aspx
>>1002626> На языках со сборкой мусора реалтаймовые приложения писать нельзяЧому же. Реалтайм есть разный.
>>1002628Как можно определить время выполнения операции, если GC может запуститься когда угодно?
>>1002633А должны ли это быть это ровно 5 секунд по атомным часам? Гугли системы мягкого реального времени
>>1002604>NET в основном у десктопного гуяЭто WPF этот бесовской? >или делать веб-интерфейс.Чому бы и ни. Можно и на андройде если что запустить.
>>1002657>Это WPF этот бесовской? Угу. У WinForms тоже свои баги.
>>1002661переходишь на джаву@problem solved
>>1002663>Трудно приготовить еду на кривой плите>Начинаешь есть говно. Джавадебилы не меняются.
>>1002668>Трудно приготовить еду на кривой плите>Начинаешь готовить на ровной плите>Называют дебиломЧёт мда, хех.
>>1002669Плита это ось. Хелоуворлд не тормозит?
>>1002671Ну так скажи, в чем у тебя была проблема и мы сравним по факту.
>>1002672Я вообще не тот анон.
WPF в хату. Как там прибиндить дата грид что бы юзер мог добавлять строки? Вроде все правильно сделал, привязал к ObxervableCollection а нихуя.
>>1002693Бедненький. Тебя разве не предупреждали о том, что WPF работает как полено?
>>1002694Выбора нет, не на вимформс же писать в 21-м веке.
>>1002704Офк есть.
>>1002706Жавашизик ты опять на связь выходишь?
>>1002707С# охуенный язык, наверное лучший из всех. Но вот когда доходит до дестопа, то WPF сосет. Ближайший пример вот >>1002693 и такой хуйни в джаве внезапно нет.
>>1002708Какой такой хуйни, поехавший? Ты даже его кода не видел, а уже решил что это косяк WPF.
Опять пиздюки набежали. Чего мне датагридом делать-то, что бы юзер мог добавлять строки???
>>1002711https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canuseraddrows(v=vs.110).aspx
>>1002626Если уж на то пошло, то реалтаймовые приложения можно запускать только на реалтаймовых осях... и, внезапно, можно писать на языках с GC - только GC должен поддерживать реалтаймовость (а именно - возможность квантовать время сборки)
>>1002742Ты чеге думаешь, я совсем дурак что ли?Разобрался сам, я юзал кастомные шаблоны данных, задал CellTemplate, а CellEditTemplate забыл, так что WPF не знал что ему новую строку вводят, поэтому тупо ее не создавал. Теперь у меня другя проблема, мой кастомный темплейт один как для показа ячейки, так и для ее редактирования - поэтому одна и та же портянка кода DataTemplate дублируется. Как то можно во дном месте прописать, а потом повтороно использовать? Более того, в гриде два столбца одного типа, так что этот шаблон 4 раза пришлось скопипастить. Здесь тоже можно что-то сделать?
>>1002810<Grid> <Grid.Resources> <DataTemplate x:Key="YobaTemplate"> .... </DataTemplate> <DataTemplate x:Key="YobaEditTemplate"> .... </DataTemplate> </Grid.Resources> <DataGrid> <DataGrid.Columns> <DataGridTemplateColumn Header="Allo" CellTemplate="{StaticResource YobaTemplate}" CellEditTemplate="{StaticResource YobaEditTemplate}"/> <DataGridTemplateColumn Header="EtoTy" CellTemplate="{StaticResource YobaTemplate}" CellEditTemplate="{StaticResource YobaEditTemplate}"/> </DataGrid.Columns> </DataGrid></Grid>
>>1002823Я как-то так делал, у меня соседние колонки при редактировании одно и тоже отображали.
>>1002849Кхм.. это значит по ты отображаешь одно и то же свойство в обе колонки... а покажи свою верстку/данные/чего хочешь получить
>>999275 (OP)https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.mdДжавапидоры, скажите - вы этим реально пользуетесь? Нахуй это в сишарпе?
Шапку обновите, ауты.
>>1002626>>1002643Спасибо аноны
>>1002857Ты прав, за портянками разметки пропустил что внутри шаблона контрол биндится к данным, а там надо имя свойствта цели прописать. Выходит вся идея по обобщению фейл, раз у каждого столбца своё свойство привязки.
>>1002924А не то шо сука.
Так как джавапетухи слишком высокомерные спрошу тут. У джавапетухов есть аналог Визуал студии? Как понимаю комунити версия интелджи идеа не поддерживает вебразработку? Ну и нахуй она нужна тогда, такая ахуенная? Пиздец это надо уметь перескачить по жлобству майрософт.
>>1003174Настоящий жабопетух кушает сладкий хлебушек.
ASP.NET MVC.Как мне передать в View модель из [HttpGet] метода, ввести свое значение в поле модели и получить её в [HttpPost] методе? Проблема в том, что после отправки формы все поля, кроме введенного в текстбоксе, обнуляются.Да, я неофит в аспе.
>>1003353сделай hidden поля со значениями с моделиHtml.HiddenForно это хуйня, если много полей, все зависит от задачи
Я тут написал небольшой консольный блекджек. Можете глянуть? Что нужно исправить, что доработать? Где проёбы в архитектуре?https://github.com/Perekoter/Blackjack
>>10033891) Naming things и конвенции1.1) Зачем нужна папка Classes? Почему структура директорий не соответствует структуре неймспейсов?1.2) Почему названия методов у тебя идут с маленькой буквы? Конвенция в C# - названия методов начинаются с заглавной буквы1.3) Намешанные в одном месте табы и пробелы - расстел в любом приличном обществе2) Структура программы2.1) Почему почти вся логика программы находится в Program.cs? Погугли SRP.2.2) Метод Start занимает овер 100 строчек, его нужно разбить на подметоды.2.3) В коде тут и там мелькает if (player.User). Означает что кто-то обосрался с абстракциями2.4) Опять насчет абстракций: class Player выглядит так, как будто он должен имплементировать интерфейс IPlayer и иметь две реализации: HumanPlayer и AiPlayer3) Code style3.1) В программе понамешен Linq и императивный for. Linq - хорошая идея. Императивный for ведет к багам.3.2) Сложение строк - плохая идея. Почитай про интерполируемые строки и string.Format()3.4) Магические цифры в коде (например, 21) должны быть константами. В противном случае заебешься менять это магическое значение.Баги было лень искать, и так проблем хватает.
Аноны, планирую вкатываться бэкендом говнокодить на аспе, но тк нужно понимать что там у нас во фронте, то начал учить хтмл, ксс и жс. Какого уровня владения всей этой парешей будет достаточно чтобы уже приступать к аспу?
>>1003399Спасибо! Буду фиксить.
Схарпобоги, какую книжку или мануал можно почитать, чтоб потом создать приложение с кокошечками для управления настройками безопасности и конфиденциальности Internet Explorer? Гугл что-то меня понять не может :3
Вопрос снят. Микрософт.Вин32, ключи реестра. Если вдруг кому-то тоже надо было
>>1003447> приложение с кокошечками для управления настройками безопасности и конфиденциальности Internet Explorergpedit.msc
Анончики, внезапно вопрос, а разработанный проект на asp.net MVC можно скомпилить в бинарник? Или оно не сервере так и развертывается в открытом виде с исходниками?
Для кого эта книга? В ангельский могу, но уходит дополнительный труд на понимание текста, через 5-6 страниц проработки материала, желание продолжать в 0 пропадает.
>>1003573Проект компилится и бинарники заливаешь на веб-сервер
Нужно удалить определённое количество "+" с конца строки, c#.Если строка равняется "Ывфывфывфыв+++" - удаляется 3 плюса с конца. Как это сделать?У меня есть такая хуйня, но она не работает.while (finalText[finalText.Length - 1]=='+') {finalText.Substring(0, finalText.Length - 1);}
>>1003598> Для кого эта книга?Что за книга-то?> В ангельский могу, но уходит дополнительный труд на понимание текстаМоги лучше.
>>1003770Строки иммутабельны, балда. Substring, Add и прочее возвращают новую строку.public static string RemovePlusesAtTheEnd(string s){if (string.IsNullOrEmpty(s)){return string.Empty;} var first = s.Length - 1;while (first >= 0 && s[first] == '+'){--first;} return s.Substring(0, first + 1);}
>>1003771Обложку я прочитал, но с текта орнул. Неплохо знал плюсы и алгоритмы несколько лет назад, сейчас мало что помню, надеюсь в процессе вспомнить.
>>1003784Ну, хз, по-моему, лучше Рихтера до сих пор ничего не написано.
>>1003781пиздец, что это?Console.WriteLine("hello world+++".TrimEnd(new[] { '+' }));
>>1003785Имеет ли смысл uwp упарывать? Или всем плевать на чем ты формочки клепаешь?
>>1003824Воистину, что-то я совсем ебанулся.
>>1003830Формочки на UWP можно запускать на всех виндах, виндоус фонах, сёрфесе и хуящике-один. Маколинукса в планах пока нету, но уже в плане поддерживаемых платформ лучше, чем другие технологии от МС
>>1003830Если пилишь что-то для своих нужд и у тебя 10 винда или хочешь что-то изучить с заделом на отдаленное будущее, то имеет.>>1003840>Формочки на UWP можно запускать на всех виндахТолько на 10.
Как в OpenFileDialog дать дефолтную папку? Что бы по стандарту сразу открывалась нужная мне папка.
>>1003931.InitialDirectory
>>1003840>лучше, чем другие технологии от МСXamarin же
>>1003840>>1003848Спасибо. Решил сперва с остальным разберусь, потом уже с формами буду развлекаться.
Начал читать книгу. Там говорят выбрать XAML, а в моей вижуал студии его нету? Где его брать? Что скачать?
>>1004090В самой студии скачай с онлайна.
>>999275 (OP)Я тут на днях увидел котлин в действии и охуел какой он пиздатый, джетбрейнс любят шарп, но ебучей джавапараши слезть не могут, поэтому вдохновились шарпом и сделали пиздатейший язык.Решил по старой памяти на ведро написать что-нибудь и просто охуел. Не от охуенности языка, а от того, как ебучая параша jvm не дает этому пиздатому языку простора - везде тебе встречается ебаная хуйня, например, хуевейшие дженерики.ПОсле этого я гораздо сильнее стал понимать, что шарп - самый ахуенный язык. Правда в последнее время развитие медленное стало, но все равно.
>>1004096где скачать?
>>1004103Инсталлятор запусти.
>>1004099Да просто не так много чисто языковых фич, которые нужны прямо вот вообще срочно и которых в шарпах до сих пор нет. А в том, что касается окружения, MS ебашит вовсю: открытие исходников, roslyn, .net core, asp.net core, ef core, uwp, .net standard, поддержка линупса, полная переработка портала с документацией.
>>1004113А что именно качать?
>>1004136Ебать ты тупой, какой тебе код. Твой вопрос решается за 2 секунды в гугле.>Наблюдатель> Но к сожалению ни там, ни там пункта Windows Store.Вероятно при установки Visual Studio не все галочки были поставлены а значит инет нужных templat'ов.1. Найди в списке установленных программ Microsoft Visula Studio, выбери её и нажми "Изменить"2. Проверь выбраны ли соответствующие компоненты Windows Store App SDK или как-то так.Если они не выбраны то выбери их и все автоматом установятся. Название компонента явозможно не точно написал, сейчас нет возможности глянуть, только вечером.Add:Windows Store App уже устарели. Теперь это Windows Universal App нуи template теперь назвывается Visual C#->Windows->Universal->Blank App (C#)это про 2015ю студию.Не благодари, но код бросай.
Нид хел, дрочу асп по тутору моша. Пилю кастомный валидатор и столкнулся с пикрил, у него в курсе все заебок, причем саксес - это бул, а оно мне ебет мозг. Подскажите в чем трабл?
>>1004367Все, разобрался, как всегда хуй с синтаксисом, я доверился интелисенсе и она возвращала бул, а нужно было валидейшонресалт.
>>1004090Книга устарела и store app уже всьо. Там выкладывали первую главу бля ювп отдельно, но она на инглише только.
>>1004377>главу бляглаву дляслоуфикс
>>1004118для меня киллер-фичи котлина это сахарок в виде дата классов и обилия конвеншенов, это избавляет от тонн кода для поддержки dto, плюс ебля за null'ы. С этим шарп бы стал языком богов, а не языком царей.
>>1004393Поддвачну адеквату
>>1004393Вообще по поводу отсутствия развития языковых фич я погорячился. В 7.0 довольно много масштабных изменений.
Как закодировать byte[] в string и вернуть обратно в byte[] без потерь? Encoding.UTF8.GetString, Encoding.UTF8.GetBytes проебывают или пидорасят часть информации.
>>1004431Мб у тебя не utf-8? Что проебывается-то? мидл 2 года опыта не понял.
>>1004431base64
>>1001850Ага, есть внутри такой цикл, принимает сообщения от винды всякие типа выключения, событий клавы и мыши, таймеры - если есть обработчик - передается управление ему. Например жамкнул ты клавишу Х, процессу пришло сообщение WM_KEYDOWN, обработчик внутри Application нашел активное окно и передал ему Key_Down, в окне нашелся активный фокус клавиатуры в текстбоксе - событие ушло ему, текстбокс вызвал функцию, которая перевела код клавиши и состояние клавиатуры в букву Х, поменял Text а потом дернул твой обработчик TextBox1_OnKeyDown. Как только обработка закончилась - происходит обработка следующего события, либо поток засыпает до следующего события. Поэтому если ты что-то тяжеловесное нафигачишь в обработчике - приложение визуально "повиснет"
>>1004431Convert.ToBase64String, Convert.FromBase64String из коробки (можно кнешно нагуглить еще реализации base16,base32, ascii85, но стандартно - base64)Про использование кодировок забудь, они для только string->byte[]->string, не наоборот, потому что в любой кодировке есть наборы байт, которые символам не соответсвуют
>>1004584https://scalafiddle.io/sf/NUFMYMA/0
Хороший язык ведь. Эх, жаль для десктопа не взлетел.
>>1004282Ну и где эти галочки ставить? Что-то не вижу. Можешь пальцем ткнуть?
Если бы не майкрософт, вам бы всем пришлось быть джавадебилами.
Помогите пожалуйста, почему в этом моменте, форма на отрез отказывается проверять условие? Первый раз с классами работаю, не спал всю ночь... public partial class WorkerForm : Form { public bool FirstSecond; public WorkerForm(string WorkNameData1, string WorkNameData2, bool FirstSecond) { InitializeComponent(); if (FirstSecond) { WorkerNameSurnameLabel.Text = WorkNameData1; OnStandByTaskTextBox.Text = Convert.ToString(Worker.ActiveTaskCounter); FinishedTaskTextBox.Text = Convert.ToString(Worker.FinishedTaskCounter); } else { WorkerNameSurnameLabel.Text = WorkNameData2; OnStandByTaskTextBox.Text = Convert.ToString(Worker.ActiveTaskCounter2); FinishedTaskTextBox.Text = Convert.ToString(Worker.FinishedTaskCounter2); } }
>>1004720а если бы не сан?))))
>>1004763Может дело в FirstSecond и FirstSecond?абсолютли нюфак
>>1004838Дальше бы писали на pl/sql, пока ibm или кто-нибудь не решил бы поднять бабла.
Ку, ребята, подскажите что делает и что обозначает (double)?Вот код для примера:Console.WriteLine((double)s / k)
>>1004933Приведение типов же
Для чего рекомендуется использовать WCF и актуален ли он еще, или есть альтернативы получше?
почему установщик вижл студио использует json?
>>1005000Стандарт де-факто.
>>1005003стандарт стандартом, а хули они свое то не используют?
Салют, нужен совет. Есть задача сделать клиент серверное приложение. Функционал примерно такой: просто чат с регистрациейклиенты авторизируются/регистрируются через сервер, и передают друг другу сообщения опционально вложения. Что мне лучше использовать для реализации серверной части? WCF? Голые сокеты/классы TCP/IP? Или есть что нибудь еще более модное и современное?
>>1005013Клиент-серверный чат - вчерашний день. Делай чат на основе mesh сетей.
>>1005015Я не хочу йобу выкатывать, я просто на крестах последние 3 месяца писал, а тут работу нашёл на сисярпе, вот сейчас за неделю хочу навыки освежить, потому и решил написать клиент серверный чат, но до этого, в общем то, никогда ни с чем кроме именованных труб не работал, а Socket/TCP вроде очень старые ребята, и я хотел узнать, не потеряли ли они свою актуальность. Хотя про mesh сети посмотрю, если ты конечно не тралишь.
В Джава разработке, вроде, слышал есть правило типа один класс - один файл. Или типа того. В Шарпе есть что то подобное?
Есть код в формах на подобии такого:var control = new MyControl();control.SomeEvent += SomeHandler;form.Controls.Add(control);//потом мне нужно его убратьform.Controls.Remove(control);Ворос, ГЦ же вычистит контрол, если я не отпишусь от события? Нужно ли диспозить контрол, если я не добавлял работу с неуправляемыми ресурсами?
>>1005151Да, в шарпе тоже такое практикуется.
>>1005151Компилятор ругаться не будет, но на код ревью в нормальной компании заставят переделывать.
>>1005164Контрол - IDisposable. Внутри у него есть анменеджед ресурсы по умолчанию, даже если ты не писал их. Контрол диспоузить надо. Control будет держать form живой, если не отписаться от эвента. Устраивает такое - не отписывайся. Однако, если нужно четко контролировать время жизни всех объектов - лучше отписаться.
Кто знает, как организовать ввод в TextBox число в двоичной и восьмеричной Сис. сч. ?
>>1004581Спасибо.Значит я не совсем тупой.
>>1005167А как? Бить на partial'ы по каким-то принципам?
>>1005188Прочитать про SOLID, начать применять на практике.
>>1004948То есть переменную s преобразуем в тип double?
>>1004763а какое бляйдь значение у FirstSecond?
Ку, ребята, подскажите что делает и что обозначает (double)?Вот код для примера:Console.WriteLine((double)s / k)Получается double в скобках преобразует переменную s в тип double?
>>1005213> преобразует переменную s в тип doubleДа.
>>1005214Благодарю
using System;namespace Example{ class Programm { static bool IsSimple(int n) { for (int i = 2; i <= n / 2; i++) { return !(n % i == 0); } } static void Main(string[] args) { DateTime start = DateTime.Now; int k = 0; for (int i = 2; i < 1000000; i++) { if (IsSimple(i)) { k++; Console.WriteLine("{0}{1}", k, i); } } Console.WriteLine(k); DateTime finish = DateTime.Now; Console.WriteLine(finish - start); } }}Какого хера пишет, что "Programm.IsSimple(int)": не все ветви кода возвращают значение.?
>>1005257>static bool IsSimple(int n){>for (int i = 2; i <= n / 2; i++)>IsSimple(2){>for (int i = 2; i <= 2 / 2; i++)> uhm...
>>1005259Выручил, спасибо огромное
Аноны, подсобите, получил тестовое задание на джуна. Нужно написать приложение, которое может загружать и редактировать большие файлы. Дополнительно: Пакетная обработка нескольких файлов. Я так понимаю это обработка в несколько потоков?При каждом новом срабатывании кнопки USE я должен создавать новый поток, для обработки другого файла, во время обработки текущего. Какую инфу почитать насчет ресурсов, что бы дополнительные потоки не создавались, когда есть не занятые уже созданные?
>>1005257Во-первых, скидывай код в читабельном виде. Отступы не просто так придумали.Во-вторых, у тебя там не все ветви кода возвращают значение.
>>1005283> Какую инфу почитать насчет ресурсов, что бы дополнительные потоки не создавались, когда есть не занятые уже созданные?Сделай так что бы незанятых не было. Поток делает свое дело и в конце совершает сиппоку. И все тогда будет хорошо.
>>1005283> Я так понимаю это обработка в несколько потоков?Пакетная обработка означает возможность указания нескольких файлов для редактирования. Что именно это значит со стороны твоей компании — хуй знает. С многопоточностью напрямую это не связано, но на винтах с дорогим I/O она поможет тебе выиграть по времени из-за NCQ и считывающей головки, гуляющей по более рациональной траектории, конечно.> Какую инфу почитать насчет ресурсов, что бы дополнительные потоки не создавались, когда есть не занятые уже созданные?Я не понимаю, как тебя с таким нулевым опытом вообще рассматривают как кандидата. Начни хотя бы с пула потоков.
>>1005284Объясни второе
>>1005315В IsSimple нет return в случае, если for цикл не выполнился ни разу.
>>1005257Потому-что сука prime а не simple
>>1005349Что ты вообще написал?
>>1005376зет хиз инлиш из лайк хи хэд мгимо финишд
>>1005393без которого ты, разве что в 1с вкатишься
>>1005396ноу ноу, ю донт андерстенд. кновинг инлиш из грейт, бат зет гай даз нот кнов зе ворд прайм, вич из аппроприэйт ту намберс. инстэд оф ит хи юзес симпл
Перекатываюсь на шарп с питона. В IDE питона была встроенная документация, которая позволяла быстро проглядеть синтаксис команд и справку по каждому классу.Какая есть такая же простая документация по C#? Лезть каждый раз в интернет или на docs.microsoft не очень удобно.
>>1005463В VS есть Intellisence, охуенно работает, расскажет тебе всё и про всех.
>>1005463Есть то ли плагин, то ли в настройках шняга, чтлбы по ф12 открывалась мсдновская документация по методу/классу/вотэвэр. Сам не пользуюсь, так как 500к/нс принципал фриланс архитект, но недавно наткнулся на скрины - выглядело удобно. Короче гугли анон вкатывайся в го, нахуй тебе этот сишарп.
Сап, аноныПомогите, пожалуйста, с задачей на шарпе:В массиве из 10 целых чисел подсчитать сумму элементов, более чем в 2 раза превышающих минимальный.Чет сложно. Как это вообще сделать?
>>1005640А в чем проблема? Ты не знаешь как массив создать?
>>1005188Руками - ни по каким.Партиал нужен если есть код от автогенерации некоторым инструментом, в который лучше руками не лезть. Другие применения возбраняются.
>>1005640var summa = massyv.Where(a => a > 2*massyv.Min()).Sum();
>>1005640a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]summa = sum([x for x in a if x > 2*min(a)])
>>1005640class VasyanLabaPidorMain{void HuySasiMain(){ int Min, Number; Random PishovNahuy = Random(); int[] Sich = new int[10]; // Массив for(int i = 0; i<10; i++) Sich = PishovNahuy.Next(1, 30); //Заполнение случаными числами от 1 до 30 Min = Sich[0]; //Присвоение переменной минимального значения первый элемент массива for(int i = 0; i<10; i++) //Вывод Массива на экран Console.Write(Sich + " "); Console.WriteLine(); for(int i = 1; i<10; i++) //Сравнивает Минимальную переменную с элементами массива от 2го до последнего. { if(Sich < Min) Min = Sich; } Console.WriteLine("Минимальное значение массива: {0}", Min); Number = 0; for(int i = 0; i<10; i++) //Ну ты понел if(Min == (Sich / 2) ) { Console.WriteLine("Элемент в два раза больше минимального {0}", Sich) Number += Sich; } Console.WriteLine("Сумма элементов в два раза больше минимального{0}", Number);}}Как то так. Говнокод не проверял, если что.Если помогло подкинь деньжат на Battle.Net Krema#2375, по возможности. Почувствую себя гомофрилансером 100К/парсек. Ну и на овердроч накоплю может когда нибудь.
>>1005640Ну если найти минимальный и потом все, которые в два раза, то это 2н, это линейный рост, оптимально, наверное. Можно ещё отсортировать за nlogn, взять первый элемент, по log n бинарным поиском найти первый элемент, больший чем в два раза первого и сложить все, начиная с него и до конца. Но это хуепляски и дольше, хотя на собесе наверное понравится кому-нибудь.
>>1005682На собесе что, васянские лабы дают?
>>1005674>Console.Write(Sich + " ")
>>1005686>Console.Write(Sich + " ")Фикс.
>>1005674А блядь. Ебанная вабакаба убрала [ i ] из-за ебанной разметки.Спасибо АБУ. Ну пиздец.
>>1005660>massyv.Min()Будет на каждой итерации вызываться, что даст сложность Н^2Линк убивает мозг, а вслед за ним и производительность.
Сап, аноныПомогите, пожалуйста, с задачей на шарпе:Есть два целых числа. Нужно их сложить и вывести результат на экран.Чет сложно. Как это вообще сделать?
>>1005705>> 2017>> писать на шарпе>> думать о производительности
>>1005684Я про подход к решению через жопу
>>1005709>юнити-пограммист на шарпе>не думать о производительностиМАМ ТОРМАЗИТ УБОГИЙ УНИТЕ А НЕ МОЙ ГОВНОКОД
Дали тестовое задание написать rest сервис на C# и ASP.NET Web Api. На сишарпе и дотнете никогда не писал. Работал только с жавой и жсом. Что почитать посоветуете чтобы по-быстрее вникнуть?
>>1005758Сколько времени на выполнение?
>>1005781Я не он, но тоже хотел бы это освоить, времени в обрез. Не знаю английский
>>1005781Около недели, но там простенькое задание на самом деле:Implement the REST-service using C# and ASP.NET Web Api that retrieves, saves, and returns data (JSON-objects) of forms.Нашел msdn гайд: https://msdn.microsoft.com/en-us/library/ms228602(v=vs.90).aspxНасколько он годный?
>>1005758Мастером создаёшь проект - веб сайт, оставляешь галку веб апи.Далее по любым гайдам на ютубе, там сложно что-то сделать не так.>>1005785Гайд нормальный.
>>1005791Спасибо, няш.
Работяги, вечер в хату. Уже полтора года вкатился в ентерпрайз на C#.Хочу у вас попросить норм источников про многопоточность, а то не шарю в ней нихуя, а потрогать хочется
>>1006070Какая же ты все-таки мразь - пошел работать, а язык даже нормально не удосужился выучить. Сука.
>>1005758В анус своей мамаши-шлюхи вникни.
>>1006070Удаляешь все проекты написанные на C#, устанавливаешь F#. Гопоточность сразу во все ворота полезит.
>>1006109>>1006111Нихуя вы пидоры злые. Такой контраст сразу после C/C++ тредов
>>1006131Я точно не уверен, но попробуй поискать в этой книге.Там вроде отдельные главны про синхронность/асинхронность и многопоточность. Мимо >>1005674 кун.
>>1006070Какой же дебил, пиздец, мне понадобилось 2 недели чтобы изучить шарп с нуля после С++ и сходу использовать async/await, но работу на нём мне естественно не предложил никто.
>>1006134Че там изучать? Это же сиподобная пораша. Синтаксис и с нуля за три недели изучается.А вот всякие фреймворки, паттерны солиды и прочий синтаксический сахарок приправленный ООП парашей это конечно подольше.
>>1006070Рихтер для понимания. Там старо, но понятно и достаточно глубоко.Concurrency in c# cookbok - современные веяния и примеры использования
>>1006134> многпоточность> async/await> но работу на нём мне естественно не предложил никтоНу, я даже не знаю.
Антуасы,нужна помощь.Нужно написать тест и потом интегрировать его в сайт,как это сделать?
>>1006359Сначала написать, а потом интегрировать
>>1006363Спасибо
Хелп, пишу тестовое на джуна, приложение для обработки больших текстовых файлов. В отчете надо написать, какие программные средства необходимы для запуска и работы программы. Что написать, кроме шо нужна винда и фрейворк 4?
>>1006365так и напиши. Приведи минимальную версию фреймворка. Можно еще проверить, под какими версиями винды пойдет.
>>1006367А как? И как узнать нагрузки на оперативу/процессор. Никогда раньше не сталкивался с этим.
>>1006070Сколько денег получаешь? В каком городе работаешь? Про многопоточность, в общем-то, в любой книге из шапки можно прочитать. Не пытайся копипастом разобраться из чужого кода. Хреново это, не понимать сути.
>>1006369> И как узнать нагрузки на оперативу/процессор.Визуал студии F11 нажми, 300К в секунду мамина.
Нужен хелп, есть сайт, в который я могу вбить инфу, после этого появляется окно со скачкой джейсон файла.Моя цель написать программу которая позволит через консоль вбивать эту инфу и читать инфу с нашего джейсон файла.Подскажите как это ебнуть или хотя-бы ссылку где можно почитать каким это образом делается, всем заранее спасибо.
>>1006621сорян за дабл запрос, лагануло шот
>>100637050 / дс2>>1006370>>1006070>>1006131Спасибо, работяги!
аноны, ye;ty годный пример с многопоточностью, а именно интересует что-то такое:есть метод из которого в цикле запускаются потоки и после цикла выполняется некоторое действие. так вот действие должно выполниться только после завершения всех потоков.т.е. примерно так:while(..){ TaskFactory.StartNew(()=>DoSomething());}TaskFactory.WaitForAll();//вот тут должно быть что-то, что ждет завершения всех потоков из циклаDoSomethingAfterAlllThreadsEnded();
>>1006990>нужен годный примербыстрофикс*
>>1006991Есть годный для этого класс Parallel с тремя статическими методамиВот из моей старой лабы кусок кодаhttp://ideone.com/Oi3RaDТам выполняются все указанные действия параллельно, и только когда все action закончатся, вызывается блаблабла.CopyTo();Помимо инвоук там есть еще for и foreach. Их синтаксис я не помню, но он такой же простой как и у invoke.
>>1007004большое спасибо, анон, обязательно ознакомлюсь. мб посоветуешь, где про это можно ещё почерпнуть немного полезной инфы
>>1007012Вообще, насколько я помню, про Parallel больше полезной инфы, чем по тем же тредам и таскам возможно, потому что применение гораздо более узкое, или я к моменту изучения параллел уже матерым стал в многопоточности/асинхронностиВообще, можешь посмотреть здесь. Вроде достаточно подробно и ясно написано, учитывая что описывать там не так много.https://metanit.com/sharp/tutorial/12.4.phphttps://professorweb.ru/my/csharp/thread_and_files/level2/2_6.phphttps://professorweb.ru/my/csharp/thread_and_files/level2/2_7.phphttps://msdn.microsoft.com/ru-ru/library/system.threading.tasks.parallel.invoke(v=vs.110).aspx
>>1007015спс, гляну
Есть годный туториал по наследованию в C#? Чтобы поясняли за правильные имена полей/методов и давали правильные разрешения сразу. Хочу начать в правильное ООП, чтобы класс Human наследовался от Mammals, а тот в свою очередь от Animals. Ну вы поняли.
>>1007160Спрашиваю для того, чтобы не получилось вот так.
Вопрос по WCF. Я правильно понимаю, что у клиента в объектах классов службы с атрибутами [DataContract] нет смысла вызывать методы/конструкторы, потому что у клиента он выступает просто контейнером и никакой реализации там нет? Это всё при условии, что я классы не добавил в ссылки у клиента.
>>1007160Годный туториал по наследованию в C# - никогда не наследуйся от классов. Имплементируй интерфейсы.
Время тупых вопросов. Пишу крестики-нолики для произвольного размера поля (не суть). Есть двумерный массив представляющий игровое поле: gameField[i,j] i - индекс строки, j - индекс столбца (обычно ведь так?). Есть морда на винформс, а ней как известно x - вправо, y вниз. Так вот, при обработке нажатия как лучше писать ...gameField[y,x]... (выглядит не оч, обычно [x,y]), ...gameField[x,y]... (выглядит норм, но под капотом получится неявное транспонирование - высота - это ширина, ширина - высота а пол это лава). Как лучше?
А какой смысл ставить тяжелую Visual Studio, а не например сравнительно крохотный и легкий SharpDevelop?Получится ли написать серьезный современный проект на последнем?
>>1007310Лол, и ты мне предлагаешь в каждом классе (Player, Zombie1, Zombie2......, Dog21....) прописывать одинаковый метод Die()?
>>1007322Нет, он, скорее всего посоветует тебе таки прочитать хотя бы базовое ООП и будет прав.(разделяй логическое и программное представление, все твои собаки, зомби и игроки - один класс с разными параметрами и компонентами(учи агрегацию), а не куча классов)
>>1007326>все твои собаки, зомби и игроки - один класс А туториалы говорят, что это все разные классы, которые наследуются от Animal, например. Хочешь сказать, они врут?
>>1007334>>1007326>>1007310Обсуждение сферических классов вне контекста задачи не имеет смысла.Мимокрок.
>>1007334Да, всегда бесило что этим поясняют ООП, это совершенно не соотносится с реальностью, утка - не наследник животного, утка - это животное у которого есть (звукоиздающий объект = клюв), (объект перемещения = утиные лапы и крылья) ну и мозг - мозг с поведение = поведениеУтки
>>1007340Всё равно подход с зомби, дог и плеер неверен, это можно сравнить с разными окошками, у одного серая рамка и чёрный фон, у другого белый фон и синяя рамка, они одного класса, но разные параметры. Да и посыл в том, что если тебе нужно что-то писать много раз, то скорее всего на самом деле стоит разобраться с абстракциями.
Скажите а как пишутся, например, всякие библиотеки которые напрямую работают с водом выводом. Например вот библотека Басс.ДЛЛ, или дотнетБассДЛЛ. Вот как она написана? Я могу такую же сделать на шарпе? И вообще зашквар ли использовать сторонние беблиотеки в проектахъ Для портфолио или лучше все и все писать самому? Ну вообще интересно как писать подобные шутки, анпример для работы с сетью. Может есть какая то книжка?
>>1007342Давай тогда туториал, в котором это объясняется. Собственно, я с этого вопроса и начал.>>1007340Ну я вполне реальные классы описал. Это я с юнити пытаюсь подружиться, и хочу сейчас определиться со структурой классов для игровых персонажей. Так что да, зомби, игрок, собака это все реальные примеры с методом Kill().
>>1007342> утка - это животное>duck is animal>is>IS>утка - не наследник животного
>>1007346
Есть ли какая-нибудь разница в работе асинхронных методов консольных приложений и ASP.NET MVC?В консольном этот код работает:public void Index(){DoThingAsync().Wait();}В веб-приложении страница зависает:public ActionResult Index(){DoThingAsync().Wait();return View();}С этим кодом так же зависает:public async Task<ActionResult> Index(){await DoThingAsync()return View();}
>>1007345Хз где взять туториалов, слишком много источников читал, везде по чуть-чуть понимал, могу пояснить почему твои зомби плохо.Вот смотри, у тебя зомби и собака, чем они отличаются? Скином и анимацией, колвом хп, поведением, атакой, намного легче вместо кучи классов сделать один "персонаж", задать ему хп, скин, поставить нужные анимации, приделать компонент атаки и компонент управляющий, который реализует нужную логику поведения персонажа, конечно, если ты не планируешь много делать, такой подход излишне сложный и можно как ты делаешь, но с описанным мной подходом, ты сможешь например просто создавать ассеты и через xml создавать разные виды врагов, мб чуть тинт спрайта поменять или сменить размер модельки, создавать новых врагов, добавляя строчки в файле, а не создавая новый класс и рекомпиля проект, ну и не придётся ебаться с рутинным созданием новых классов ради одного нового подвида.С поведением тоже просто, твой килл просто вызывает плей деасаниматион, который ты просто делаешь полем персонажа. Типо такого. Юнити же как раз со своей компонентной системой этому способствует.
>>1007346Неправильно, я имел в виду инстанс животного, ты приебался к словам, там из контекста ясно
>>1007322Абстрактный класс для общих методов и их реализации, интерфейсы просто для общих методов.
>>1007318Ну, можешь делать массивы массивов, а не двумерный массив. bool [][] gameField вместо bool [,] gameField.Есть мнение, что jagged array более производительные, чем multidimensional по причинам оптимизации CLR для одномерных массивов:https://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrayshttps://stackoverflow.com/questions/4648914/why-we-have-both-jagged-array-and-multidimentional-arrayhttps://stackoverflow.com/questions/468832/why-are-multi-dimensional-arrays-in-net-slower-than-normal-arrays
>>1007344Нихуя тебя не понял, какой еще басс.ДЛЛ/дотнетбассДЛЛ.DLL в .NET и DLL в компилируемом в машинный код языках - разные вещи. Как и exe у .net и у крестов, например. Большие сторонние библиотеки - не зашквар. Во многих конторах используют всякие EF и прочие фреймворки/АПИ. Криптографию тоже рекомендуется брать уже готовую и проверенную (типа crypto++), а не писать самому.Как писать - просто берешь и пишешь, хули тут думать. У C# есть как классы для реализации своей хуйни, так уже и готовый WCF. Книги хуй знает, не умею читать.
>>1007160Если писать по солиду, то наследование очень редко когда реально нужно и полезно
>>1007474поясни за WCF, очень часто вижу в вакансиях требование к этой хуйне, так и не вижу адекватного описания, везде очень абстрактно. За 2 года разработки сложного облачного сервиса так ни разу и не слышал эти слова в нашей команде.
>>1007514Говно ебаное. Типа мультиплатформенная технология удаленных служб. Даётся три стула на выбор: named pipes для одной машины, TCP для интранета при условии, что клиент на .net и http для любых машин с клиентами на любом языке (что, в общем то, превращается в ASP.NET). Сам сижу сейчас разбираюсь, и все вопросы/упоминания в этом треде про WCF были от меня. Вообще, на вид гибкая вещь, но бывают моменты, когда клиентское приложение падает из за службы вообще хуй пойми из за чего. Короче, если не хочешь рисковать серверными решениями от коммьюнити или сам настраивать гибкий сервер, то можешь выбирать WCF.
>>1005674Нахуя столько лишнего?
Я снова здесь.>>1007354>и через xml создавать разные виды врагов>просто вызывает плей деасаниматион, который ты просто делаешь полем персонажаВот тут совсем не понял. Остальное, если понял правильно, то выходит мне нужен один класс на всех живые существа? Значит делать в нем несколько разных конструкторов под каждый вид?>>1007471И? Я так и собирался делать, но мне сказали, что не стоит.>>1007507А в моем случае?
1ы2ыук
Аноны, купил пикрелейтед. Книга охуеная не спорю. Но есть НО - в ней нет нахуй заданий для самостоятельного выполнения ? Как так ? как я должен учить язык и при этом не писать код свой (не тот что в книге)? Так вот в чем мой вопрос - может я туплю и где-то есть задания соответствующие этой книге ? Или мне самому себе задания надо придумывать ?
>>1007524>C# 4.0>купилзачем
>>1007525Это по сути все-равно основы, 5.0 - 6.0 особо изменений не было. Купил потому что книга всяко удобнее пдф, да и б.у. цена была сладкой.
>>1007559>книга всяко удобнее пдфПриходи когда по книге изобретут полнотекстоый поиск.>5.0 - 6.0 особо изменений не былоНихуя себе заявление. Одно появление async чего стоит.
>>1007562основы-то те же
>>1007562Если что в книгах обычно бывают в конце словарь терминов со ссылками на страницы. >>1007566двачую
>>1007575>Если что в книгах обычно бывают в конце словарь терминов со ссылками на страницы. На дворе сорок первый век, а эти лудиты всё еще листают страницы.
>>1007566Ну как тебе сказать. Про async вообще то веское замечание сказано >>1007562Товарищ по 4.0 научится плодить громадные конструкции для асинхронности со всякими wait и прочими, когда есть async await. Также всякая удобная интерполяция строк в 6.0, фишка в виде паттерн метчинга для switch в 7.0, кортежи оттуда же.
>>1007522>Вот тут совсем не понял.Ну с xml можешь пока забить, это просто возможность делать в игре врагов, заполняя параметры в файлах, а не редакторе, так удобнее.Про анимацию, у тебя есть поле у класса, это поле анимации смерти, функция смерти берёт эту анимацию и проигрывает её.И нет, тебе нужны не разные конструкторы а один, твои все существа будут создаваться примерно так:Creature zombie = new Creature("zombie.skin", ZombieAttack, ZombieMovement, ZombieAnimations);Creature dog = new Creature("dog.skin", DogAttack, DogMovement, DogAnimations);и так далее, то есть один конструктор делает разных существ, это конечно приближённый вариант, тебе надо как-то передавать все эти параметры в код, юнити позволяет же префабы делать, в которых в поля можно и спрайты перетащить и цифры написать. Просто смотри в чём суть, ты путаешь представление в твоём понимании, и представление для компьютера, все живые существа для него - одно и то же, это просто что-то, у чего есть анимация, скин и поведение. Вообще я очень хуёвый учитель, и в юнити это сложнее пояснять изза компонентной системы, в которой по сути всё это нахуй не нужно, всё есть гейм обджект, хочешь чтобы он двигался - присоединяешь логику движения, хочешь чтобы кусался - присоединяешь компонент атаки, хочешь чтобы он ещё был сундуком - присобачиваешь компонент-контейнер. Наследование там только под капотом, где каждый компонент - наследник компонента, с именем, парентом и прочими, можешь по нему оценить, насколько похожи их различия между MeshRenderer и BoxCollider на твои между зомби и собакой.
>>1007601Спасибо тебе за детальное пояснение, а то обычно на такие вопросы в тредах посылают в гугл или сразу нахуй. Займусь сейчас, пожалуй, генерацией карты, а потом еще вернусь к персонажам.
Скажите, пожалуйста, почемуfloat tenth = 0.1F;float one = 1F;WriteLine(one - 10F tenth);выдаёт -1,490116E-08, аfloat one = 1F;WriteLine(one - 10F 0.1F);выдаёт 0?
Шарпаны, вот допустим есть сгенерированный код.Ну т.е по типу t4 text template, только я генерировал его с помощью методов которые сам написал.Т.е все это выглядит так:namespace YobaApllication{ class Programm { static void Main() { Console.WriteLine("Hello Yoba"); } }}Сейчас он генерируется в консоль или в тексбокс, если угодно.А как его скомпилировать?
>>1007680Скажите, пожалуйста, почему float tenth = 0.1F; float one = 1.0F; WriteLine(one - 10F tenth);выдаёт -1,490116E-08, а float one = 1F; WriteLine(one - 10F 0.1F);выдаёт 0?
>>1007688Сучья разметка.
>>1007688https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.htmlСмотри какая статья есть годная про флоаты.
>>1007694Спасибо, заодно и в Reading попрактикуюсь.
Шарпаны, есть што годное для понимания DI и IoC с примерами?
>>1007597это далеко не основы языка, если сразу с нуля в асинки и сложный сахар погружаться, то нихуя не понятно будет. Пускай научится синхронный код писать, а потом уже в асинки углубляется.
>>1007706https://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx
>>1007706Dependency Injection in .NET Симана. Его блогhttp://blog.ploeh.dk/tags/#Dependency%20Injection-ref
>>1007709>Сервис локаторблэт майкрософт
>>1007709>>1007710Спасибки
>>1007711В глаза ебусь, там не про сервис локатор.Хотя нахуй они описывают реализацию IoC?
>>1007708Ну так то основы, даже самые обоссаные конторы требуют асинки от джунов дс конечно
>>1007716ясен хуй, но ты же не будешь изучать физику с теории относительности? сначала ньютоновскую, чтобы понять базовые вещи, епта
>>1007681https://support.microsoft.com/ru-ru/help/304655/how-to-programmatically-compile-code-using-c-compiler
Есть около пары месяцев, диплом о вышке годичной давности (прикладная математика и информатика), остаточные знания алгоритмов (пузырек напишу, хотя последний раз в глаза его видел года 4 назад) и прочих структур в голове. Читаю книгу из гайда (которая с небом, аллахом, на 1.6к страниц), кажется мне местами излишней, знать то это все офк надо, но не в условиях ограниченного времени. Всеравно, 2й книгой буду Рихтера читать. Посоветуй, какую упороть первой. Дальше, планирую почитать что-то по базам данных (язык запросов в голове обновить). Что нужно изменить, или добавить к этому плану, чтоб меня взяли хоть на 20-25к (не ДС, но 1.5кк есть)? Желательно на русском, енглиш то читается, но 2/3 усилий уходит на перевод, выматывает так учить.
>>1007735Спасибо!
>>1007749Екб что ли? Напиши CRUD сервер с entity framework и клиента к нему - стопудово на джуна возьмут куда-нибудь.
>>1007853Спасибо, дойду до работы с ado.net постараюсь придумать что-то.
>>1007749Глянь вот эту хуйню >>1006133Есть на русеке.
>>1006133молю кинте сурс на архив с ней, если на рус и анг версию будет здорово
>>1008538на инглишеhttp://rgho.st/8tjcxvVRs
Ребзя, поясните за static у членов класса. Я так понимаю, что нужно ставить это слово, когда хочешь, чтобы метод работал независимо от полей этого класса? Объясните, пожалуйста
>>1008624Статичный метод не требует экземпляр класса для работы. И не может обращаться к экземплярным методам/полям/свойствам.
>>1008641ОООО, огромное спасибо. Ещё вопрос, когда класс статичный, а когда нет?
>>1008642Когда он объявлен static
>>1008660И для чего это нужно?
>>1008673У static класса все поля/методы/свойства static по дефолту, можно не указывать.Кстати, в Java static у классов имеет совсем другой смысл (хуета там какая-то).
Привет. Проблема с виндовсформами.Требуется поменять 1-ю и последнюю буквы в каждом слове строки из листбокс1. Полученную строку вывести в листбокс2. Не могу сообразить как это сделать.Мой пикрил куска программы
>>1008677Точнее будет сказать что у статик класса могут быть только статик члены
>>1008697300 рублей.
>>1008754Не демпингуй.3000 руб
>>1008697https://pastebin.com/qErNJeJJЛови, говнокод, конечно, но за бесплатно сойдет.
>>1008539спасибо, анон, надеюсь и рус где-нибудь найдется
Привет Шарпаны. Анон сверху подсказал, как мне скомпилировать код в текстовом виде в exeшник.Тут все ок, но дело в том что запускается консоль. А нет ли возможности вывода информации не в консоль, а в txt?Ну или в строку, или вообще все что угодно. Мне нужно результат запихнуть в текстбокс.
Посоны, как лучше сделать такое.Вот у меня есть текстовый файл в котором допустим 20 строк, каждая из которых такого вида "хуйпизда:нинужно=99".Мне нужно пройтись по всем строкам и запихнуть в массив стрингов со всех строк "хуйпизда" т.е. все что до двоеточия, и в массив даблов забрать "99", т.е. все что после знака равно.Как это лучше реализовать?
>>1009041regex
>>1009042Регекс-то зачем?
>>1009041Два сплита блять
Двач, нужна ваша помощь, как сделать, чтобы метод StartGame() вызывал(?) свойство Current, т.е. чтобы поле current = 1.Или нужно как-то по-другому всё это реализовать? private int current; private int finish; public int Current { get { return current; } private set { current = 1; } } public int Finish { get { return finish; } private set { Random rndNumber = new Random(); finish = rndNumber.Next(75, 125); } } public void IncreaseBy1() { current++; } public void MultiBy2() { current *= 2; } public void ComeToStartValue() { current = 1; } public void StartGame() { }
Блять, двач, я докатил сам
Поясните нуфагу, как автоматические свойства выполняют инкапсуляцию? Формально то они ее выполняют - данные сокрыты внутри класса и обратиться можно только через свойство. Но это никак не предохраняет информацию, к свойству доступ получается так же непринужденно, как к открытому полю. Или я тупой и чего-то недогоняю? Про свойства только для чтения, или только для записи знаю, речь идет за обычные. Выглядит как удобный костыль, чтоб не писать сеты и геты.
Сишарпусы, посоветуйте лучший ресурс/книгу с полнейшим, но с минимумом воды, мануалом по языку. Язык я знаю, но мне нужно всё внимательно и быстро повторить с самого устройства сборок до всего, что есть в языке.Нормально ли вот это:https://professorweb.ru/my/csharp/charp_theory/level1/infocsharp.phpИли c# in a nutshell всё же намного лучше? И напомните, чем бело-синяя версия отличается от бело-красной?
>>1009705Рихтер же, ну.
>>1009719Разве Рихтер это овервью языка для повторения? Это же наоборот куда более сильное колдунство?
>>1009705Джон Скит, ван лав.
Здравствуйте, господа шарперы. Нравится мне ваш язык, буду его учить. Одна проблема - названия методов с большой буквы. Прям мерзко на душе становится. Вы сами всегда следуете этому правилу? Ну, или хотя бы в основном? И если да, то поясните и замотивируйте мне, пожалуйста, почему так, а не "классы - с большой, а то, что им принадлежит - с маленькой"
>>1009738Потому что гайдлайны.
>>1009739Нет, это я прекрасно понял. Собственно, обчитался и потому спрашиваю. Меня интересует почему нотации именно такая,а не, скажем, как в Java, которую я примитивненько описал выше. Мне бы хотелось понять почему так и поверить в то, что это действительно правильно.
Не бывает правильных нотаций. Правильно - когда соблюдается одна и та же.
>>1009743Я, вероятно, слишком костноязычен чтоб объяснить все, эх. Ну, вот, джаванотация, например. Там размер букв объясняется тем, что в языке все подчинено классам,там не может быть свободных переменных или методов. И потому все, что /подчиняется/ пишется с маленькой, в верблюдоблядском стиле, а то, чему подчиняется и что всегда будет стоять в самом начале - с большой. А здесь /почему/ методы с большой?
>>1009744Ну блядь принято тут так. Ты ещё поспорь, почему в джаве кэмэл кейс, а не снейк кейс.
>>1009744>А здесь /почему/ методы с большой?Это красиво и удобно. Простое правило: пиши все с большой и не забивай голову что чему подчиняется.
>>1009685>Выглядит как удобный костыль, чтоб не писать сеты и геты.Да это он и есть. Индусам слишком сложно явно написать тривиальный гет-сет и им упростили жизнь.Еще есть такая херня: меньше кода => меньше вероятность ошибиться. Весь автогенерейт частично оправдиватся еще и этим, мол человек слабое звено даже в тиривиальном коде. Но это несостоятельная херня, так как весь автогенерет так или иначе перезжает в оперативку кодера, а она не резиновая, что ведет к дополнительным вдупления и ошибкам на ровном месте.
>>1009744Возможно потому что тут есть делегаты, а значит переменным можно приравнивать методы, и это никак не отличается визуально от присваивания одной переменной другой, а так можно отличить что именно присваивается, просто поле или функция, алсо тут есть свойства, обращение к которым как к полям, но ведут они себя как методы.
>>1009783>индусам сложно написать тривиальный goto-метка и циклы упростили им жизнь
>>1009685Ты неправильно понял инкапсуляцию, стоит подучить. Суть не в приватах и общем доступе, суть в ограждении прямого логически доступа.Вот смотри, если тебе внезапно понадобиться повесить евент на получение поля, например в игре, когда у тебя кто-то получает урон, раньше ты просто наносил его, но теперь хочешь чтобы он ещё говорил об этом игре, что ты делаешь со свойством? Ты переписываешь его, добавляешь отправку сообщений. Если бы у тебя было поле ты бы везде где к нему доступ вынужден был бы изменять всё. А автоматические проперти просто для сокращения необходимости писать пустые сеттеры и геттеры, которые просто передают поле, чтобы было на потом, и если что ты их допишешь. А ещё ты можешь объявить там уровни доступа гету и сету, чтобы ограничивать доступ.
>>1009800Ну точнее, в сокрытии реализации тоже дело, но так и свойства не для приватных полей, а для внешнего интерфейса.
Доброго дня вам в уютном тредике.Пишу игру, есть поле 10х10 клеток, на каждой клетке может находиться по нескольку разных объектов с разными свойствами (например, на одной клетке находится "Пол", "Стул", "Книга"). То есть мне нужен массив 10х10, где каждый элемент это List<Object>, правильно? И значит мне все эти объекты "Пол", "Стул", "Книга" наследовать от "Object"? Или я чего-то не понимаю?
>>1009823В целом, да. Но лучше не object, а abstract GameObject, чтобы не положить случайно в клетку массив, число или другую клетку.Либо можно пойти обратным путем - хранить список объектов с их координатами.Кстати, реквестирую геймдизайнеров, чтобы сказали, какой из методов правильнее.
>>1009860>Но лучше не object, а abstract GameObjectНу обджект я там написал условно, в реальности у меня есть класс MapObject. И я сейчас как раз пытаюсь отловить эксепшн, который мне бросает юнити на метод .Add для списка.
>>1009860По непонятной причине всё сыпется на 20й строке. MapObject правильный, массив с элементом [0,0] существует. Может это из-за версии дотнет фреймворка, у юнити 3.5.
Появилась необходимость удалить кучу файлов по маске. И вот я совершенно неожиданно для себя узнал, что все это делают в цикле. Это вообще нормально? Нет функции удалить все где условие такое то?
>>1009867Ты сам список, куда объекты добавляешь, создал?
>>1009883АТО
>>1009884Кекс.
Наследование или композиция? И почему.
>>1009886Что не так?
>>1009888Лист то не создал. А говоришь да.
>>1009889Так ты про инстанс? И его создал тоже, конечно же.
>>1009888Ты создал массив листов, заполненный нуллами, пытаешься в нулл добавлять объекты.
Ну тогда стоит прочитать, что же за ошибка у тебя.
>>1009892>>1009891>>1009893Юнити же.
>>1009896Я тебе специально написал что массив заполнен нуллами, ты создаёшь массив, да, чему равен каждый элемент в нём? правильно нихую
>>1009896Короче, тебе надо создавать лист перед первым добавлением в ячейку, а лучше сразу в каждой при инициализации
>>1009897>>1009898Не понимаю, запутался. Можешь эту строчку кода переписать под "тебе надо создавать лист перед первым добавлением в ячейку, а лучше сразу в каждой при инициализации"?
>>1009899mapStructure[0,0] = new List<MapObject>();mapStructure[0,0].Add(tttt)Это потому что у тебя массив листов объектов, ты создаёшь массив, но не листы, их нужно отдельно создавать, потому что лист это объект в шарпе и по умолчанию массивы создаются с дефолтным значением, для чисел 0, для объектов null
>>1009901Но это же хуйня получается, выходит что я не могу иметь неизвестные листы! Это неприемлемо для моего случая.
>>1009903>неизвестные Пустые. Фикс.
А, всё, до меня дошло. То есть иметь пустые я как раз могу, но перед каждым заполнением я должен в ту пустоту передать инстанс листа.mapStructure[0,0] = new List<MapObject>();С вот этим заработало, спасибо.
>>1009906Ну слава богу
>>1009860>Кстати, реквестирую геймдизайнеров, чтобы сказали, какой из методов правильнее.Так это же не гейдизайнеров проблема. Они такими вещами вообще не занимаются.Вообще иметь поле клеток с кучей пустых листов это очень расточительно по памяти и подходит только для маленьких карт. Но свой профит есть - напрмер можно почти мгновенно определить, что находится в соседней клетке и если в игре существуют многоклеточные обекты, то размещения их на карте будет менее сложным.
>>1009920>и подходит только для маленьких картА если у меня планируется 255х255?...
>>1009926смотри, 255х255х(размер ссылки 64 бита = 8 байт)/(размер килобайта 8) = 508 килобайт + копейки на внутренние приблуды массива, сам думай, будет поле в два раза больше, будет 2 мегабайта уже. И это только на пустое, ничем не заполненное(даже без листов) поле.
>>1009941>размер килобайта 1024конечно же
>>1009941Ну тогда должно быть без проблем. У меня половина из всего пространства это пустой космос без объектов, а остальные клетки будут заполнены 1-5 разных объектов.
>>1009945> У меня половина из всего пространства это пустой космос без объектовВозможно стоит их оставить без нихуя в качестве оптимизации. Если клетка изначально предполагается как всегдапустая, то нет смысла выделять память на описание массива того, что в ней могло бы находится.
>>1009945Ёмкость не забывай задавать при создании списка.
>>1009784Воооот. Это больше похоже на логическое обоснование. Спасибо. Пойду хоть разберусь, что это
>>1009781Всё? Переменные же с маленькой
А ну, чики брики, раскидайте за эти кнжиечки? https://tproger.ru/books/free-csharp-books/Стоит на что то обращать внимание? И я не про вкатывание с нуля. А вот те книги где учат ООП на рабочих примерах.
>>1009950>>1009958Для интереса проверил, первый скрин с картой 10х10, а второй 255х255. Разница в памяти ~7мб. Полностью приемлимо, учитывая что остальные 60 отжирает сам движок юнити.
>>1010283Бывший крестовик-затейник во мне седеет от кол-ва ненужных инвалидаций кеша.
А теперь у меня другая проблема. В одном скрипте я сгенерировал карту и создал инстанс массива, который содержит все данные о карте. Как мне этот массив читать и изменять из другого скрипта, но того же проекта?>>1010287Ну это же игровой движок с 60+ фпс на старом ноутбуке, имейте уважение!Вот я помню игрался с движком MonoGame, он у меня за 120 фпс отжирал всё ядро, и при этом в нем не было даже графики никакой, лул.
>>1010288>А теперь у меня другая проблемаВопрос снимается, сам нагуглил.
>>1010283> Разница в памяти ~7мб. Полностью приемлимоИ вот так забивая хуй на очереджные 7 мегабайт получилась андромеда.
>var obstacleItem = map.Struc[x,y].SingleOrDefault(ob => ob.IsObstacle == true);Какой же линк охуенный, хоспаде!>>10102927МБ за отсутствие костылей это очень хорошая сделка, как по мне.
>>1010299Вот именно для таких случаев в вузиках рассказывают про Sparse matrix и способах её хранения. Например, в словаре.
>>1010304Поясни как это все оформить в моем случае, плиз, мы же не в вузике.
>>1010305Dictionary<IntVector2, List<GameObjects>> map;
>>1010306А как здесь обратиться к списку объектов в координате (1;2)?
>>1010308var list = map[new IntVector2(x, y)];
>>1010309Намного лучше, чем мой двумерный массив?
Ребят, у меня у одного после обновление VS пропало консольное приложение C# или я туплю?
>>1010327>Visual C#
>>1010310Если хочешь кодить, почитай хотя бы алгоритмы и структуры данных или курсы посмотри, намного легче и приятнее будет. (А там ещё и графы для пасфиндинга пойдут, поиски текста, очень полезно). Это совсем не долго, зато в кодинге лучше разбираться станешь на порядок.По поводу твоего вопроса, смотри, словари имеют постоянную скорость доступа к элементам(как у массива) в общем случае, особенно если, как у тебя, карта в основном пустая, одна проблема, что ему надо расширяться, когда он заполняется на определённый процент, что он и делает, создавая новый массив и копируя все элементы в него по новой, что может быть медленно, если твоя карта 255х255 будет почти полной. Но да, плюс в том, что памяти он будет требовать по количеству полных клеток + ещё чуть. И надо не забывать удалять List из клетки, в которой ничего не осталось.
Как в коде отличить десктоп от лэптопа? По наличию батареи?
Что нужно знать по asp .net mvc чтобы взяли джуном? Как работает патерн я понимаю, энтети в основах знаю, веб апи в основах понимаю. Алсо - насколько нужен гитхабчик с одностраничником при составлении резюме и если крайне желателен то что там сделать чтобы показать свои скилы?
>>1010403Гитхаб обычно не нужен.Сам паттерн. Razor. Viewbag, viewdata, tempdata. Экшены, принимающие типизированные объекты. Секции view. Роуты. Стандартная аутентификация. DataAnnotation. Web api.Язык сишарп на высоком уровне, конечно же.Не будет лишним бутстрап и джиквери.
>>1010438>Razor. Viewbag, viewdata, tempdataРазве вьюбаги и пр. не зашквар? Я вроде учил что кошерно использовать вьюмоделы если больше чем модель нужна.>Экшены, принимающие типизированныеЭто для валидации форм?>Секции viewВо вьюхах для паршалов?>РоутыДостаточно уметь прокинуть новый маршрут?>Стандартная аутентификацияНу тут бм понимаю.>DataAnnotationОпять таки для валидации?>Язык сишарп на высоком уровнеНасколько высоком? Вроде при работе проблем по синтаксу не возникало.
>>1010445На все вопросы да.Язык - Рихтера понять всего.
>>1010445Вьюбаги - зашквар, но иногда приходится.
>>1010299> 7МБ за отсутствие костылей это очень хорошая сделка, как по мне. > Какой же линк охуенный, хоспаде!Ты уж определись, любишь ты костыли или нет.
>>1010371Наличие батарери. Урезанные видеокарты. Лептопные процы. Разрешение экрана 1366 вместо 1920. Если винда заводская, то и по имени компа "Lenovo-PC".Но главный вопрос конечно же "нахуя?".
>>999275 (OP)Что пишут на c#
>>1010561Программы)))0На самом деле почти все- мобайл, веб, десктоп.
>>1010564Ну прост непонятно, есть же куча инструментов для этого
>>1010567Нет, ну ты спросил - я ответил. Да, для каждой задаче в шарпе есть свой стэк технологий. Если что-то конкретное интересует - спрашивай.
>>1010569Нет, кроме шарпа куча инструментов есть, зачем он нужен?
>>1010572Зачем другие инструменты?
>>1010573Типа два стула, понятно
>>1010574Вот ты охуеешь, когда узнаешь, что стульев там дофига, и каждый со своими особенностями.
>>1010633Ну типа инструменты шарпа и все остальные
>>1010569Писать под микроконтроллеры на .net как собрался?YOBA-движки?
>>1010697> Писать под микроконтроллеры на .net как собрался?Ох уж эти ньюфаги...https://ru.wikipedia.org/wiki/.NET_Micro_Framework
>>1010697>YOBA-движки? А под юнити ты на чем писать собрался?
>>1010773>Движок поддерживает два сценарных языка: C#, JavaScript (модификация).
>>1010775>C# тред>Что пишут на c#>советует JavaScriptСовсем заблудился? Нахуй ты вообще это написал?
>>1010777>>1010574
>>1010773У юнити под капотом не сишарп
>>1010791Шок сенсация. У шарпа под капотом тоже не шарп.
Можно ли как-то убрать надпись: "Для продолжения нажмите любую клавишу..." в консоли?
>>1010815Закоментить эту строку в коде.
>>1010815Не используй system("pause") Используй Console.ReadKey()Или COnsole.ReadLine();
>>1010825Окей, сделал, но можно ли как-то полностью убрать мерцающий значок, ожидающий ввода?
>>1010826теоретически, это можно сделать либо статическими функциями класса Console, либо через WinAPI думаю можно, но это слишком заебно, чтобы объяснять. посмотри вот здесь: http://www.pinvoke.net/index.aspx как из C# через p/invoke вызывать вот эти функции: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682073(v=vs.85).aspxно еще раз, второй вариант это для совсем отбитых, если тебе прямо очень хочется добиться нужного эффекта.
>>1010828Я именно тот самый отбитый) Спасибо
>>1010773На елдаках блядь.Вопрос в другом, нормальный движок ты без байтослесарства не напишешь.>>1010732Ещё один блядь, ньюфаг мать его.Эта поебень уровня Node.js под расбери пай и ардуины
Сап, диезач.Пишу игру. В классе Level есть список пуль. Однако, обработка выстрела пули и её создание происходят в классе Player. Как сообщить классу Level о добавлении пули в список?https://pastebin.com/nvzjnJSC
>>1010808У тебя шиза? Анон спрашивал как писать йоба движки на шарпе, ты юнити привёл в качестве примера. А теперь у тебя шок и сенсация
>>1010836Какой у него шиза дебил? Большая часть Unity на мерзких крестах написана, весь тяжелый рендер хуй ты на языке с GC напишешь, под GameBryo ты на Lua можешь писать, но это не значит что GameBryo на Lua написан, внятно тебе пояснил, болезный или ты кофе не выпил?Или это такой тупорылый троллинг у вас с Сишарпом и юпнити?
>>1010839Почитал хотя бы ветку обсуждения перед тем как отвечать
Даун выходит на связь. Кароче думаю сделать что то с базами данных. Для практики, и что бы на гит было шо кинуть. Но не могу определиться с визуальной частью. Делать на ASP.NET MVC или WPF MVVM? Или на том и на том? Все равно паттерным МВС/МВВМ помогают отделить логику от визуального интерфейса по максимуму. Что сейчас более востребованно и хорошо выглядит в резюме?
>>1010843ASP.NETWPF очень редко где используется. А ASP.NET MVC аццки популярен.
>>1010845Похоже я один такой даун, что вкатился джуном на винформы.
>>1010898Ну если работа редкая, то значит не такой уж и даун, раз смог вкатиться. Чем занимаешься на работе? Веб? Десктоп с учётом?Просто интересно
>>1010908Десктоп, который направлен на внутренний рынок. Поэтому формы, которые работают даже на 2000 винде/винсервере 2003.
>>1010839Сорян, перепутал с одним дебилом.
>>1000571Сам работаю C#(xamarin) погромиздом в компании. Зашел в тред почитать че по чем тут и прям охуел как ты доходчиво пояснил.
>>1000571Неблохо. Сохраню в заметки.
>>1011148Лучше алгоритмы и структуры данных почитай, меньше откровений в будущем будет
>>1011155>Лучше алгоритмы и структуры данных почитайКто автор?
>>1011228Это предмет такой, автор любой, кого удобно будет читать
>>1011282Я понел.Просто подумал может есть какой эминитый спец.Взял на заметку, спасибо.
Ребят, я слишком тупой, объясните понятным языком зачем нужен и когда ставить модификатор доступа internal?
>>1011394https://www.youtube.com/watch?v=BInREVFTU54
Пацаны, помогите, я nobasique.Вот есть у меня 2 методаpublic static int Method1() { int a = 2; int b = 5; return a * b; }public static void Method2() { var c = Method1(); Method1(); }Как так может происходить?Я вызываю в Method2 Method 1 в одном случае с возвратом значения, а в другом без. И все ок, компилятор не ругается
>>1011640ты вызваешь войд - метод без return
>>1011640А на что он должен ругаться?
>>1011640Рекомендую как в классической архитектуре происходит вызов функции. Почитай про стек, адрес возврата, передачу параметров.https://ru.wikipedia.org/wiki/Стек_вызовов#/media/File:CallStackFrame.png
>>1011749Спосибо, брат.
Ребят, была ли у кого-нибудь такая ошибка при запуски проекта с отладкой(именно с отладкой):Ошибка при попытки запуска проекта: Не удается запустить прграмму "Путь программы".Отладчик установлен неправильно. Запустите программу Setup для установки или восстановления отладчика.Как можно переустановить отладчик правильно и где взять Setup? Переустанавливать VS уже пробовал.
>>1011640Больше статиком возвращающие методы помечай.
Перекат?
Есть примерно вот такая ебала: public partial class Form1 : Form { IDoSmthg smthg; public Form1() { InitializeComponent(); smthg = new Worker(this.button1); } private void button2_Click(object sender, EventArgs e) { textBox1.Text = smthg.Do(4).ToString(); } } interface IDoSmthg { int Do(int z); } class Worker : IDoSmthg { AutoResetEvent are; public int Do(int z) { are.WaitOne(-1); return z * z; } public Worker(Button btn) { are = new AutoResetEvent(false); btn.Click += new EventHandler(btn_Click); } void btn_Click(object sender, EventArgs e) { are.Set(); } }Суть думаю ясна, надо дождаться в методе некоторого события и только после продолжить работу. Как сделать так чтобы не блокировать форму, ведь мне же как раз и надо дождаться клика. И надо это без async/await ибо .Net4.
>>1013180> Суть думаю яснаСуть ясна только тебе. Если хочешь что бы тебе помогли, прояви немного уважения к тем, кто будет читать твой код. Используй сервисы с поддержкой форматирования, https://ideone.com/ вполне норм для этого.
>>1013183https://pastebin.com/iRCQBP5K
>>1013212Заебесь. Теперь все стало официально непонятно. Если нужно дождаться клика, то у кнопки есть событие, которое она ждет сама. Нахуя тебе костыли городить понадобилось?
Господа, где бесплатные сертефикаты для IIS берёте?
>>1013229Наверно, из-за кривой архитектуры. Пишу игру, есть интерфейс IPlayer с методом Point MakeMove(Board board), и 2 класса реализующих этот интерфейс AIPlayer и HumanPlayer. Класс игры принимает в конструкторе 2 IPlayer и затем после старта крутит цикл, вызывая по очереди методы MakeMove игроков. С ИИ все понятно, используя преданное состояние игровой доски он вычисляет свой ход. А вот человек, после вызова HumanPlayer.MakeMove должен кликнуть по клетке на винформ контроле (у контрола есть событие CellClicked). Вот этого CellClicked я и хочу дождаться в MakeMove.
ПЕРЕКАТ >>1013491 (OP)ПЕРЕКОТ >>1013491 (OP)ПЕРЕКАТ >>1013491 (OP)
>>1013462Игра на винформах в 2017 это охуенно.Но даже тут у тебя масса возможностей.1) Создать таймер и каждые n времени обрабатывать данные для всех объектов включая игрока. Клик игрока будет запоминаться в специальном буфере между циклами.2) Игра полностью пощаговая, ждет действия игрока и все остальные объекты обрабатываются вслед за этим.3) Создать тупо нормальный обработчик клика и в нем уже все оборабатывать.
>>1013626>2) Игра полностью пощаговая, ждет действия игрока и все остальные объекты обрабатываются вслед за этим.Вот я и хочу дождаться действий игрока. Кстати, это не обязательно человек vs комп, я же могу передать в игру 2 HumanPlayer.>3) Создать тупо нормальный обработчик клика и в нем уже все оборабатывать. Это как? Пихать всю логику в форму?
>>1013462>>1013626>>1013723Короче, решил проблему. Надо было всего лишь запустить цикл с вызовом MakeMove'ов в отдельном потоке, а дальше как я и делал через AutoResetEvent ждать клика.