Как указать размер у незубчатого массива? У зубчатого так - >int[,] te = new int[4,8] А у незубчатого как? Эти варианты не работают: >int[][] te = new int[4][8] >int[][] te = new int[4,8]
>>843749 Так, он все равно мне в консоли выводит лишь с 9759 и до последнего элемента массива. for (int i = 0; i <= array.Length-1; i++) { Console.WriteLine(i + ":\t" + array); }
>>843557 Анон, а как ты разбираешься с большими неизвестными солюшенами?
С отдельными мелкими классами проблем нет, но я не понимаю как разобраться с большой кодовой базой в целом. Разобраться в целом = знать какие классы есть в проекте, какие у них интерфейсы, как классы связаны между собой. Глубокое знание реализации пока не интересует.
Есть большой файл. Хочу считывать его строки в пределах указанных байтовых границ.
FileStream inputStream = new FileStream(«azaza.txt», FileMode.Open); StreamReader inputReader = new StreamReader(inputStream); inputStream.Position = 9000; inputStream.SetLength(900000); string text = inputReader.Readline();
Вроде всё должно работать. Но эта команда inputStream.SetLength(900000); обрезает файл. Есть ли простое решение? Или придётся писать свой ReadLine с побайтовым считыванием строк?
>>843850 Зачем тебе полностью видеть всю картину? Чтобы добавить функционал или что-то поправить не нужно знать как работает все приложение. Просто беру и разматываю ты часть, которая мне нужна.
>>843971 Я и не говорил что мне нужно. >знать как работает все приложение.
Я просто хочу получить представление о кодовой базе продукта. Из каких классов он состоит и как они между собой связаны(т.е. глубже интерфейса изучать классы не требуется).
>>844048 >Once the programmer is left Инстант проигрыш, да и все история анекдот какой то, и нубов научи, и контрол у них с нуля, и фрилансером будь. >Member Since Sep 8, 2016 Okay
>>843711 (OP) Спасибо за перекат, думал перекатывать вовремя и обновить/структуировать шапку, но времени катастрофически что-то не хватает. Добра, короче.
>>844111 Я хотел сделать скрипт для автопереката, но сейчас занят и не определился, какой язык взять. Один рубист это делал, но он бросил. Нужно сделать так, чтобы любой ОП мог добавить свой тред.
>>844129 Я могу конечно, правда это не слишком интересный проект. ОПом будет скрипт, который по достижению бамплимита будет пересоздавать тред.
Я наверное опять хуйню сморожу, ноАноним19/09/16 Пнд 12:54:56#24№844412
Если я работаю с одной БД MSSQL, но приложение с несколькими формами, то мне на каждой форме что ли надо заново контекст выдергивать? Или где-то его один раз открыть и потом уже по выходу из приложения закрывать? Интуитивно понимаю, что на производительности сказаться может
Возможно ли такое, чтобы содержимое where из linq можно было подгрузить из гуя? И не просто сравнение с переменными, а как если бы это условие было бы написано в коде.
Есть maskedtextbox'ы в которых заданы маски типа "0,00", заданы выражением "0.00". С формы забираю те, которые вводятся, конвертирую их в дабл, рассчитываю значения и вывожу их в другие mtb, конвертнув тустрингом.
На форме всё отображается как надо, но когда пишу полученные значения в таблицу БД вываливается ошибка формата. Причем в тех случаях только, когда одно из значений имеет нулевую целую часть.
При записи в БД конвертируется вновь в дабл текст, полученный после расчета в mtb
в свойстве textMaskFormat надо было include prompt указать. ибо оно значение типа 0,23 возвращало в виде _,23 где _ - это пробел. Чтобы понять пришлось эту говносхему в консольке параллельно произучать, охуительный язык, все понятно на самом деле, даже без справочников
Пиздец анон, Я просто плачу от собственной тупости. Уже хуй знает сколько пытаюсь пройти главу с событиями. Делегаты разобрал, все вроде ясно. Можешь подкинуть схематичное объяснение event'ов? Как подписывать на событие, схематично с привязкой к коду. Спасибо.
в 8.0? Особенно интересно будет, если зделают не уёбищные инлайн-констрены мемберов, а что-нибудь типа тайпклассов хачкеля, пусть и простеньких. 20 лет жду.
>>845278 Какого хрена они про primary-constructor забыли, обещали еще в 6.0 и все что-то тормозят. Заебали анальные приседания с присвоение всех параметров к полям.
Олсо. Вопрос. Как структуририровать проект? Ну там мультилеер, где кор выше всего (в нем всякие коммон хелперы, интерфейсы, логирование и все такое). Дата - репозитории. Возможно модел- где лежат поко, модели, дтохи. Сервисный слой- где бизнесслогика дергает репозитории и манипулирует моделями. Ну и конечные солюшены, которые дергают сервиси. Поясните, так норм?
Еще. Стоит ли выделять в класс лайбрари логику работы с определенным доменом. Юзер менеджеры,например. Чтоб теоретически юзать это в других проектах. Но тогда получается, что для каждого такого домена нужно еще по слою делать( репо, кор и т.д). Этож охуеть сколько класс лайбрари в проекте будет. Приведите пример архитектуры годной, плиз.
Может кто в личечке не против, чтоб я с ним посоветовался, если тут не удобно?
>>845798 У тебя не расходуются ресурсы на поддержание коннекта к бд, ты не даёшь разрастаться своему контексту до неебических масштабов и ему не придётся трекать миллион всякой хуеты.
Господин сверху советовал глянуть на Unit of Work. Именно так в промышленной разработке пользуют контексты.
>>846019 если у наследника они также станут автосвойствами, то, понятное дело - нет оверрайд нужен для внутреней логики, а не значения. прост записывай нужные тебе значения в конструкторе по-умолчанию
>>846030 Что-то совсем не варит котелок. Вот что писать для того, чтобы у наследника по умолчанию name вася было? И чтобы вдруг он потом подрастет и будет не вася, а василий егорович?
Проблема с таймером. Нужно написать маленькую программку. Задать время, допустим 4 часа и интервал, допустим один час. Каждый час она должна выполнять определенное действие. Необходимо, чтобы она выполнялась каждый день при запуске учётной записи пользователя. Действие напогромировал. Для того чтобы это всё регулярно включалось, я так понял нужно создать службу. Сделал, глянул как устанавливать службу. А теперь главная проблема. Как хранить таймер? Допустим он был включен, пользователь выключил компьютер. Прошло какое-то время он включил, как продолжить отсчёт с того же времени? Сколько не гуглю не знаю как это запихнуть в службу и к какому времени привязаться? Хорошо, изначально дёрнуть системное, а потом как защититься от подмены? Есть какие нибудь статьи на эту тему?
>>846080 Можешь писать последнее время запуска в текстовичек. Вариант в лоб — Thread.Sleep(). Другой вариант: консольное приложение и настроить виндовый шедулер.
>>846092 От души, брат. А мне оказывается вообще не это надо было. Я ебанутый, мне для ведения справочников надо было, а я теплое с мягким попутал. Спасибо еще раз, охуенный тред
>>845819 Коннект не требует никаких ресурсов, кроме мизера памяти, а вот создание и разрыв коннекта - это ресурсоемкая операция, от которой стараются избавится (например keepalive) Если говорить про ef, то в стандартном его поведении ничего не разрастается
>>846492 Я могу его хранить в службе? А если мне нужно поменять интервал мне надо пересоздать службу с новым значением таймера или можно как-то изменить?
После нескольких неудачных собеседований впал в депрессию и забил на программирование. Целый год нихуя не делал, нихуя не учил. Сейчас вот потихоньку вылажу из этого говна, вновь начал читать Троелсена и вспоминать забытое. Так вот, хочу еще параллельно начать наворачивать литературу по джаваскрипту. Нормальное решение, или лучше оставить на потом?
>>846751 >почему неудачных? Плохо дается теория, хоть я и зубрил ее, на теоретические вопросы на собеседовании мог только мычать. Обычно было так - hh дает мне тестовое задание, я его делаю, зовут на собеседование, на котором я опять обсираюсь. >какой бэкграунд? Закончил курсы погромирования, никакого опыта реальной работы нет. Образование средне-специальное.
Подскажите годных книг по VB для вообще полного нубаса. Чтоб и за синтаксис пояснили и про ООП(в рамках бэйсика конечно же) без всяких "ехал инкапсуляция через абстракцию видит инкапсуляция в полиморфизме наследование сунул инкапсуляция в абстракцию наследование инкапсуляция ипнкапсуляцию за инкапслуляцию инкапсулировала". И можно с примерами работы с .NET.
>>846820 книг не знаю, но знаю норм такой мануал. берёшь, короче, пишешь код на любимом сисярпе, прогоняешь его через ILSpy, получаешь код на VB. показываешь работодателю/преподу гришь о смотри ясделяль. ну или если тебе нужно разобраться в коде - та же хурма, перегоняешь интересующий блок с vb на c# и вуаля. базарю я синьёр помидор
>>846841 Ну, блядь, ты просто гений. Мне нужно конкретно гайд для обучения конкретно нуба программированию на бэйсике. Мне не нужен готовый код, готовый сам смогу "добыть". А вот книги толковой не могу.
Есть список объектов, как с помощью linq найти объект с максимальным значением одного поля. Ебучий min max возвращает само значение поля, а мне нужен весь объект.
>>846529 Да, зато ты, видимо, пиздец тупой protected internal = protected И internal Как может быть или? В одном случае protected, а в другом internal?
>>846698 Проблеиа не в неточности, а в твоей быдлиности: ты создаешь поток, который делает... нихуя, но при этом ты выделяешь на него ресурсы: память под стэк и другие плюшки, процессорное время (контексты все равно переключаются). Один такой поток в системе, вроде и не страшно, но если бы все так писали, как ты, я бы не пользовался бы пекой
>>846892 Модификаторы доступа показывают откуда можно получить доступ к методу, в одном случае из наследованных классов, а в другом из классов в той же либе.
>>847059 Не меня спрашивают, я пришел к словам попридираться. > can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly
Шарпач, есть коллекция из n элементов Node, у которого есть поля Id и ParentId. И есть произвольное пустое дерево. Я могу вставить в него все элементы за O(n^2). Как вставить быстрее?
>>847074 Сортани коллекцию таким образом, чтобы корень был в середине, слева все левые поддеревья, корень которых посередине между началом и главным корнем (1/4), то же самое с правой стороны. Начинай строить дерево с корня, потом поддеревья
Сап, шарпёры. Нужна ваша помощь. Здесь мне подкинули тестовое задание на программиста стажера за 200$\месяц, вот пилю потихоньку (хуй успею, ибо параллельно ебашу эникеем). Короче, всю жизнь не комментил свой код, а сейчас задумался, ведь есть есть жы некий годный стандарт комментирования. Анон, реквестирую кусок кода с годными комментариями.
>>847670 Для публичного API используй XmlDoc (то, что у тебя на скрине). Внутри кода комментарии не нужны - код должен быть самодокументирующимся. Исключение - какая нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал.
В спецназе языков программирования 1с есть элемент "поле ввода", к которому прилагается кнопочка "обзор", в результате этот элемент может и как комбобокс в выпадающий список значения давать, и как опенфайл работать, только открывая другую форму. А чем это в C# достигается? Что-то я потёк уже от размышлений, неужели кнопочку отдельно приклеивать?
>>847790 Ну, в C# есть разные графические фреймворки для декстопа, в основном это winforms и wpf. ну ещё UWP. Насколько я знаю, в этих фреймворках нет того, что нужно тебе изподкаропки, но во всех трёх фреймворках есть возможность клепать кастомные контролы, но в wpf и uwp возможности ГОРАЗДО больше для этого, чем в winforms. короче говоря, можешь сделать просто конфетку ещё пизже чем на твоём 1с, но делать придётся самому, да. отсюда следует, что может получиться и не конфетка вовсе, а просто пиздец нахуй блять я у мамы фронтенд
Где почитать про правильную структуру проекта? Тысячи форм и сотни классов уже пугают, хочется упорядочивания. Если просто по папкам их распихаю, там же надо еще и директивы везде переписывать? Или папки на навигацию никакого влияния не оказывают? Или вообще проект разбить на несколько проектов, в одном формы, в другом классы, в третьем гробгробкладбище имейджез?
>>847815 при помещении в папку уже существущего файла .cs, неймспейс не меняется. а вот при создании нового файла в папке неймспейс соответствует папке типа namespace projectName.folderName { }
Поясните, плиз, по хардкору, что это за GTK, GTK+, GTK+ 2.0?
Я понимаю, что такое .Net - платформа с дохуя библиотеками, для винды, которая .Net код компилирует налету в ассемблерный код, но строго для винды. А GTK - это какая-то кроссплатформенная платформа для других, кроме винды?
Или я чего-то не догоняю. Провалил из-за этого собеседование
Есть тут магистры WPF? Может кто объяснить, что происходит, когда устанавливают Binding без указаний параметров будь то в xaml'e или в c# коде? Ну например, есть дататемплейт: <DataTemplate x:Key="zzz"> <CheckBox Content={Binding} /> ... Вот здесь биндинг без параметров, то есть ни path, нихуя. Откуда в таком случае будут браться значения? Из DataContext'а, казалось бы? Но вот, например, в пикрелейтедах он даже не указывается. В 1 случае в дататемплейте биндинг указывается абсолютно пустым, только у контрола, для которого определяется дататемплейт, указывается ItemsSource. НО! если попробовать в дататемплейте в биндинге элемента указать Path=ItemsSource или Path=DataContext.ItemsSource, то дататемплейт будет работать некорректно (грубо гря, контент чекбокса не забиндится). Во 2 случае всё делается из c# кода ибо так приближено к боевым обстоятельствам. В настоящем проекте по определённым причинам я считаю, что меньше кода выйдет, если определять дататемплейты динамически, и даже если там указать в свойстве чекбокса ContentProperty просто пустой new Binding(), то сука DataTemplate будет работать корректно, то есть для каждого чекбокса определятся соответствующие значения. Ещё раз, вопрос: какого хуя? Почему в "пустом" биндинге всё равно правильно привязываются значения? Как он определяется по дефолту?
>>847717 >Исключение - какая-нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал Это значит что ты пидар что написано криво и есть смысл переписать нормально.
Сап, дотнетач. Помоги мне, я немного заебался. В общем, мне надо десериализовывать однотипные JSON с сайта. По некоторым причинам я не хочу юзать сторонние либы для этого, поэтому приходится юзать DataContractJsonSerializer. Я сгенерировал классы, они работают, но не для всех JSON. Некоторые вылетают с SerializationException:
- Ошибка десериализации объекта. Ожидался маркер """, но найден "Ñ". (разумеется, символа Ñ там нигде нет)
Я пробовал перегенерировать классы по ошибочному JSON, но это не помогает. Можно ли как-то это дебажить? Хотя бы узнать, на каком месте/оффсете парсер загибается? В инете ничего дельного не пишут, поля LineNumber и LinePosition в эксепшене равны 0.
>>847968 Да, открыл тот же проект в 15 студии, сменил версию на 4.6, всё прекрасно заработало. Спасибо тебе, анон, что прекратил мои попытки решить оказывается нерешаемую проблему. Буду выбирать из двух зол, или включать стороннюю либу, или таки переходить на другую студию и версию.
Как "апгрейднуть" инстанс базового класса в сабкласс? Написать оператор конверсии нельзя - компилятор его не примет, хотя было бы очень удобно. Писать конструктор/метод в сабклассе, принимающий параметром инстанс базового и писать копирование свойств?
Явно/неявно переопределить оператор каста к сабклассу в базовом классе, а потом использовать конструкцию типа BaseClass BC = new BaseClass(); SubClass SC = (SubClass)BC;
>>847996 Увеличение тормозов. Ты купишь новое железо, чтоб комфортно работать. Мс доставляет профиты не тебе, а себе а производителям железа. 2008 форева, даже на старом железе работает крайне шустро.
>>848005 Когда с 10 на 13 переходил прошлось полностью шинду сносить, потому что не вставало. А сейчас что, просто студию удалил и новую накатил? Пакеты вилкой чистить не нужно?
>>848007 хз, я свой путь начал сразу с 2013. никаких проблем не было, только скопировал папку с проектами в новую директорию vs2015. НО! помни, я мимостудент, и, возможно, не использовал полностью функционал VS как ты мог это делать в энтерпрайзе. мб у тебя там какие нибудь охуенные зависимости, завязанные конкретно на vs2013.
>>848008 У меня i5-4460, тоже 8 гб оперативки, правда без ссд. 2008 не думает вообще, грузится за 1-3 секунды, по нажатию F5 тоже практически мгновенно дебаг запускается. А вот 2015 уже ворочается и думает, иногда по 3-5 секунд. Особенно при запуске дебага притормаживает.
Ребятки, помогите, взялся делать инвентарь в простой игре, но не получается, Есть оружие, щиты и тд, для каждого свой класс. Все это дело было занаследовано от класса Item, и вот накидал Item'ы в инвентарь, все норм, а потом захотел сделать так чтоб в ячейку для оружия перетащить Item. Но Item не имеете параметра "сокет", дабы определить подходит ли в слот. Дебаг показывает что объект класса Weapon, но к свойствам доступа нет, и это понятно, в классе Item они же не прописаны. Как тут надо делать? Ведь шмот в инвентаре должен быть однородным, да? И класс Item для этого подходит? Но как тогда сделать так чтоб было понятно что в Item засунули оружие, а не щит к примеру, и использовать свойства оружия?
>>848021 твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия.
>>848030 >А нахуй вообще нужно оружие в инвентаре, которое в слот запихнуть нельзя? Как это? Как раз оружие и хочу запихнуть в слот, но нужно сначала узнать подходят ли параметры оружия.
>>848029 >твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия. Так, я тупой, и не всегда понимаю. Есть класс "героя", у которого есть поля типа Weapon, Shield, Engine. Вот эти все итемы (Weapon, Shield, Engine) надо класть в инвентарь/ одевать. В данные момент они все имеют класс-родитель Item, что-то подсказывает это неправильно. Если я реализую интерфейс Iweapon в классе Item, то все итемы будут уметь стрелять, не?
>>848035 >Ты говоришь что у тебя у класса оружия есть поле "сокет". Зачем он? Сокет - отдельный объект в классе Hull, сокет выполняет роль слота и имеет несколько разновидностей, нужно узнать у оружия какой сокет оно поддерживает, и если да, добавить в List<Weapon>.
>>848037 >Если каждый наследник класса Item использует поле "сокет" Не, в том то и дело что сокет нужен только для орудий, у Engine должна быть своя атмосфера. Короче говоря разные классы, которые как-то нужно засунуть в один контейнер(инвентарь) и взаимодействовать(вставлять в слоты) с ними.
Или предлагаю вот тебе что сделать. заводишь поле ItemTypeEnum itemType;
где public enum ItemTypeEnum { Shit, Weapon, Gear, // итд }
лично я так делал, а не ебся с тоннами наследований, особенно, когда быстро решительно надо было создавать новые типы. Но это будет работать строго, если у тебя градации самих вещей одного и того же типа нет. Например у оружия - топор, меч, залупа,дилдак.
>>843711 (OP) Почитал ваш гайд Начинаю с The C# Player's Guide CLR via C# Pro WPF 4.5 in C# Multithreading in C# 5.0 Cookbook Потом дрочу эскьюэль, учусь пользоваться гитхабом и ищу какую-то джуновскую вакансию? Алсо, про первую книгу написано что она для ньюфагов в шарпе, а если я ньюфаг в программировании? ну когда-то там писал на сях сортировку пузырьком, про массивы что-то знаю, но это не считается Или мне начинать изучение сишарпа с с?
>>848122 Если умеешь работать с типами данных, циклами-хуиклами, массивами и условными операторами типа if else switch и тд, то можешь сразу учить шарп.
Короче, поцоны, целый день пытаюсь понять ,и нихуя. Можно сделать с помощью рефлексии, но все говорят это обсёр. Вот блядь я либо чтото упустил, либо не могу поять как оно работает. 1. Ебаные разные шмотки должны хранится в списке , типа так List<Item> , да? Вот мы берем и ХУЯК добавляем пушку в инвентарь методоом items.add(new Weapon()). м?
2. Ну и как теперь одеть пушку в слот, который треубет тип Weapon, если я даже не могу посмотреть в List<item> мощность пушки. А даже если бы мог, через свойство, то всеравно итем стрелять то нихуя не умеет. И НЕ влезет в поле типа Weapon, где изъян?
>>848139 Ага, но вот варлока распидарасила рога голая ,выпал стафф,сворд и спелбук, не мог бы ты,бро, добавить их в сумку, вывести статы сворда в консоль и одеть стафф на рогу. Само собой рога может только стафы носить, но ты все равно попробуешь одеть сворд.
>>848159 Вот когда перебираю веапоны, то заебись, прям вообще нахуй, доступ к параметрам есть, и можно проверить сокет. НО а если перебирать итемы, то уже хуй, ведь в рюкзаке хотелось держать именно итемы, там же не тольько оружия будут лежать,а еще и броня, без сокетов блядь! Короче тут либо делать в классе-родителе поле сокет, и глушить его в классе броня, либо я вообще хуй знает. Проблема не решена. Может рефлексия?
Отличный вопрос - где искать конторы в которых можно поработать на стажировке за нихуя удаленно? Точнее конечно за хуя - за опыт реальной работы в проекте и еще раз за опыт.
>>848224 Да, я уже нашёл это. Пункт появился. Вроде даже работает. НО! Столбцы-то он извлекает, а вот данные - нет. Ошибка: Error in SELECT clause: expression near '"'. Missing FROM clause. Unable to parse query text.
>>848198 А решарпер он вообще нужен? Сильно облегчает работу? Я вообще нихуя не программист, а админ. Мне шарп очень сильно полюбился, и поэтому я на нём клепаю много разной хуйни себе (и юзерам) для автоматизации и облегчения работы работаю на радиостанции, у нас тут плейлисты, логи выходов/невыходов и прочая хрень, которую обрабатывать надо. Последний раз вон даже add-in для экселя сделал. Сижу на голой 2008 студии и вообще не парюсь.
Шарпоанончики, поясните за Asp.Net. На нём можно написать веб игру? Ну то есть что бы он сгенерировал хтмл5 с канвасом и js скриптами? Или JS тоже надо учить? Или это всё вообще не так работает?
>>848267 > он сгенерировал Что значит "сгенерировал"? Ты можешь юзать asp.net как бэкэнд (равно как и java-сервлеты, php или что-то ещё подобное), но саму игру тебе писать всё равно придётся.
>>848262 >add-in для экселя сделал Ничоси ты админ. Вообще, решарпер не нужен, но с ним гораздо проще, вместо написания кода можно нажимать ctrl+space и alt+enter, и буквы сами на экране появляются.
>>848270 Уточню вопрос... Можно ли средствами asp.net выводить интерактивное анимированное содержимое в объеме достаточном для не очень сложной 2Д игры?
>>848280 Нет, стой, ещё один маленький вопрос. Средствами asp.net нельзя написать типа "вывести кнопку/квадрат/картинку с ID №1 с текстом "Нажми меня", и событием, что бы при нажатии на неё приходил ответ на сервер что пользователь с такими то куками нажал c ID №1", при этом asp.net сгенерировал бы хтмл страницу, на которой был бы скрипт js который бы это делал?
>>848284 я понимаю что такое js (немного, пол учебника прочитал), а вот что такое asp.net - не понимаю. Поэтому разбираюсь, стоит ли мне его учить (так как я немного знаю C#), что бы решить мою задачу или не тратить время.
>>848283 Ты можешь сделать страницу с кнопкой, при нажатии на которую, запрос пойдет на сервер и тебе вернется новая страница, на которой написано что ты пидор
>>848167 То что нужно, братишка, я просто не знал об этой хуйне. А есть такое же, только для элемента? Чтоб объекты класса Weapon, WeaponDirect и тд будут возвращать тру, остальные фолс, if (i.GetType() == typeof(Weapon)) , только веапоны в переборе пропускает, а надо еще и наследники.
Как решить следующую задачу: есть тип, который однозначно enum, но неизвестно какой и какие у него возможные значения, но известно, что у него есть атрибут [Flags]. Затем, нужно в текстовую строку запихать элементы перечисления, которые есть в заданном int. Вопрос: как это сделать, если перечисление неизвестно наверняка и вообще задано Type'ом? Зная конкретное перечисление, я бы сделал что то типа if ((definiteEnum)someInteger).HasFlag(definiteEnum.asd)) dosmth
>>848352 Тип у меня заранее известен, и я знаю, что это enum (ну вернее сделал так, что ничем кроме энума это быть не может). Как мне получить static public методы у неизвестного типа, заданного объектом типа Type, если я знаю наверняка, что у него есть метод HasFlag(Enum value)? Мне надо получить характерные только для этого типа атрибуты, какетоблятьсделать? Я уже в штаны сру просто как конь ебаный помогите спасите звоните в скорую
Так, то что хотел узнал, но вот, у нас есть Item, и мы его пытаемся вставить в орудийный слот, если Item есть оружие, то ставим. А что если мы не знаем какого типа слот? Может то не орудийный слот, а для двигателя. Можно узнать какой тип у переменной? А потом проверить подходит ли Item для этого типа?
>>848358 >foreach (UsableItem i in inventory.OfType<UsableItem>())
А что тут? Тут нихуя. Ну вот получили список <UsableItem>, а теперь нужно их поставить в слот, а тип слота неизвестный, тип слота к примеру<Staff>, но ты не знаешь что <Staff> это <Staff>, как узнать какого класса слот(переменная)?И после того как узнали, попробовать преобразовать <UsableItem> в <Staff> ?
НЕИЗВЕСТНО var; foreach (UsableItem i in inventory.OfType<НЕИЗВЕСТНО>())
>>848361 Не, ну я вообще, для общего развития спрашиваю, разве не может быть так что тип переменной может быть неизвестен? Или как-то динамически изменяется что в итоге сам не знаешь что там может быть.
Пачаны, поясните за "c#2010 ускоренный курс для профессионалов Трей Нэш". Узнал много интересной хуйни, но однако настораживает, что 2010. Вреда не будет от того, что он такой старый?
Драч, помогай. Что за хуйня с этими dependencyproperty в wpf? Сделал кастомный контрол для DataGridTemplateColumn, дак вот, коллбэки вызываются каждый раз при появлении/сбросе фокуса на/с столбце, хотя изменений, на которые должны реагировать эти коллбэки, не происходит.
>>848459 Так, с этим пока хуй с ним. Сделал кастом контрол, который унаследовал от ComboBox'a. Чому он не может не отображаться нивкакую на окне, если всякой добавочной логики минимум? То есть вот прям вообще нихуя: создал просто кастом контрол через мастера VS, в XAML'е выкладываю его на окно, а он нихуя, пустой. ЧЯДНТ?
>>848477 Собсна, проблема "Драч, помогай. Что за хуйня с этими dependencyproperty в wpf? Сделал кастомный контрол для DataGridTemplateColumn, дак вот, коллбэки вызываются каждый раз при появлении/сбросе фокуса на/с столбце, хотя изменений, на которые должны реагировать эти коллбэки, не происходит. " так и не решена. я чёт вообще в ахуе, при повторной фокусировке на контрол в дататемплейт коламне конструктор кастомного контрола вызывается каждый раз, пиздецнахуй. как это лечить?
Я написал небольшую прогу консольную, которая пнгшный файл с изображением лабиринта, полученная с этого сайта генерится в лабиринт в моей игре. Потом этот самый лабиринт я использую в игре, сделанной на юнити.
Собственно вопрос. Как мне в программе отправить запрос за получение и сохранить картинку? Прошу, помогите.
>>848499 Устанавливаешь httpfox (или какое-нибудь другое дополнения для отслеживания запросов), запускаешь его, после чего генерируешь лабиринт. В списке появляется пост-запрос, который тебе нужен. Смотришь на его содержимое. А как отправить пост-запрос с нужными данными и обработать ответ с помощью кода, я думаю, ты сможешь загуглить.
Сап /pr/. Решил вкатиться в .NET, поясните почему данный код не показывает возраст в консоли, а только имя?
Вроде все правильно делаю, не?
class Program { static void Main(string[] args) { PersonTest p1 = new PersonTest("Dick", 20); Console.WriteLine(p1.personName, p1.personAge); Console.ReadLine();
}
public class PersonTest { public String personName; public int personAge; public PersonTest(string name, int age ) { personName = name; personAge = age; } }
Ребятки, короче сделал Итемы для корабля, инвентарь работает, но вот что, каждый итем вставляется в свой сокет. Корчое есть класс Item и класс Socket. У итема есть enum который говорит что это за итем вообще, и вот если итем Weapon, то оруийный сокет приводит Item в Weapon, и норм.А вот теперь сделать нужно обычные шмотки, пусть будет класс Devicе наследуемый от Item, но шмотки будут иметь уникальыне способности. Один итем чинить корабль, второй давать телепорт. И не совсем понятно как тут делать. Мне то и с оружием не понятно, класс веапон(который наследник итем) имеет пустой виртуальные метод FIre(), а его потомки уже переопределяют, и как-то некрасиво выходит. Или норм? Как делать правильно?
>>848842 ясен пень, что заходил но если это все охуенные для тебя гайды, то я даж не знаю. для того, чтобы понять что и зачем - да. для того, чтобы сделать что-то мало-мальски серьезное - не смеши. про ксамарин я не итал, посему не имею мнения, однако, подозреваю, там все так же.
> крайне поверхностно хотя да, с "крайне" я перегнул, признаю
вот что действительно, что я оттуда вынес - так это знания по WPF. и то потому, что другие источники мне ранее было читать лень/неинтересно
>>849009 вот я смотрю в чей-то код, а там var askjfhskdjghksjhdv = 5. ну, канеш, это что-то значит в расшифровке (либо кошка по клавиатуре прошлась), но совсем не очевидно. у некоторых пул-реквесты закрывались из-за того, что переменная названа неочевидно/не в соответствии с выполняемым действием. такшо нехуй лениться, если это не пет-проджект
Анон, я к тебе с вопросом про ООП. Если класс знает про своего наследника, то это нормально или нет? Я хуево объясняю, но это что-то вроде: у нас есть классы A и B:A и в A есть свойство типа B.
>>849049 крякнул А, ну это GUI похоже. В гуи да, такое применяется и часто, типа чтоб при закрытии основного контейнера закрывались дочерние и типа того.
ты же понимаешь, что это неудобно. Нужно или умную иде держать чтобы комментарии в рантайме показывала, или переходить по имени переменной к её декларации. А что если переменных будет не 1 штука, а сотня, раскиданная по десятку неймспейсов?
Чурбаны, а поясните вот ещё что. Допустим, есть коллекция, из которой нужно считывать объекты и делать с ними какие то действия. При этом есть булевый флаг, в зависимости от которого нужно либо прошерстить всю коллекцию, либо остановиться после первой успешной проверки определённого условия внутри цикла. И вот тут вопрос, если в коллекции ОЧЕ много объектов, целесообразно ли сделать иф-элс блок с двумя циклами, что ведёт к раздуванию и избыточности кода, или похуй, что стомилльёнов раз будет проходить проверка флага в единственном цикле? пикрелейтед - иллюстрации того, что я пытался сформировать словами.
>>849309 Ну типа в первом варианте (v) не будет лишней проверки в каждой итерации, потому что поведение определено ещё до входа в цикл. А во втором случае есть дополнительная проверка в каждой итерации для определения поведения блока цикла. Мне показалось, что при большом количестве итераций лишняя проверка может повлиять на производительность. Или проверить байт это как два пальца обоссать даже на 101010
>>849314 тогда тебе все варианты не подходят. лучше (эффективней) вынести if (E.HasFlag) за пределы foreach. т.к. я перенабираю твой кiд со скрина, я подзаебался пытаться исправлять, посему сам
Котаны, пишу робота, который авторизуется и парсит сайты. Как получить итоговый код хтмл, который находится в теге iframe. Как я понял, он заполняется результатом выполнения описанных в нем скриптов. Использую хромиум, в его окне страница в итоговом виде отображается, фидлер показывает что скрипты отработали, но когда я смотрю хтмл код с формы, там результатов работы скриптов нет, а только ссылки на сами скрипты.
Кто нибудь в WPF делал кастомные контролы для MenuItem? ну типа делаю кастомный класс и наследую его от menuitem Почему они не показываются в приложении при запуске, чего мне не хватает ?
>>849416 ну, сам блок foreach там будет использоваться неявно. можно прибегнуть и к его помощи непосредственно, но это будет аналогичное громоздкое решение
вообще мыслью было вынесение if-а за блок, где производится операция с коллекцией. то, на что этот блок уже будет изменен - дело десятое
>>849427 Если в кратце, пикрелейтед с моего первого вопроса - часть контрола в WPF, в который загружаются перечисления об определённом объекте. (Типа перечисления районов/этажей/деталей объекта, которые поддаются перечислению и их количество ограничено) Благодаря этому в БД хранится лишь интовое число, а при загрузке данных в клиентское приложение интовое число преобразуется в флаговый энум, который парсится, и в контроле (листбокс в popup'е, элементы которого либо радиобаттон либо чекбокс, в зависимости от флага UseAsFlaggedEnum, который определяется в зависимости от заказываемой таблицы), во первых, в список предметов добавляются все элементы перечисления, и во вторых, отмечаются соответствующие столбцу,строке в БД. >>849451 >>849469 Да мне не нужна была конкретная реализация. Я остановился на (S) варианте, но мне просто чё то стало интересно, допустимо ли с этической точки зрения плодить код ради мельчайшего улучшения производительности, который в моём случае и заметен не будет, ибо один хуй энумы интовые и больше 63 (127?) сёравно хуй засунешь.
>>849482 >Благодаря этому в БД хранится лишь интовое число Щито? Захуй тебе тогда бд вообще, если по сути вся инфа хранится у клиента? Что за хуйню я только что прочитал?
Анон помоги. Что обычно требуется знать .net джуну? Важно ли знать дохуя паттернов, или достаточно ООП, алгоритмов и языка? Читаю Троелсена, все достаточно легко и понятно, что еще можно почитать?
>>849501 У клиента просто инструкции по отображению инфы. int вместо varchar(100500) на сервере, чтобы меньше байт передавалось с сервера клиенту и обратно.
>>849515 Ты так хуево все объяснил, что я сначала подумал что все расчеты проводятся на стороне клиента, а на сервере одни инты в бд хранятся за каким то хуем.
>>849527 Джун который может самостоятельно что то писать под имеющуюся задачу и которому не нужен наставник это уже не джун вовсе. Что за хуйню ты городишь?
>>849531 Именно он и есть. Пиздец я бы таких как ты палками пиздил - уеба с опытом и умением работы прибедняется и идет на джуна, хотя знаний и опыта на мидла, а настоящим джунам, которым этот опыт работы в настоящей компании очень нужен, остается только хуй сосать.
>>849536 Короче, самое главное что требуется от джуна - обучаемость. К джуну приставляется мидл в качестве наставника и тот его обучает и дает задания.
Короче, >>849509, если ты обучаемый - работу в любом случае найдёшь. Могут пару раз завалить на собеседованиях по поводу какой-то несусветной хуиты, но рано или поздно найдутся те, кто тебя возьмёт на работу.
>>849535 хех, помнится, постучалась ко мне рекрутерша с требованием к джуну - не менее 1.5 года коммерческой разработки. даже не представляю за кого они там держат действительно неопытных товарищей
Быстро решительно, у тебя есть 5 секунд, как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта. За один проход можно же, няши?
>>849576 чот я не понял, как с помощью Where и Max ты выберешь инстансы с максимальными значениями чего-либо? Select я в каком-то упоротом варианте, возможно, смогу представить
>>849595 Блядь, OrderBy это не то же самое, что выбирать по максимальному значению свойства. Если я тебя правильно понял, замени строку 9 в своём фиддле на foreach (var item in GetAzaza().OrderByDescending(i => i.A)) А иначе точнее объясняй задачу.
>>849599 да еб же твою мать. человек спрашивает: > как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта ты (или не ты, мне похуй) отвечаешь: > Where/Select + Max я, в недоумении, как же ты собрался оперировать сими методами в данной задаче. ты же, блять, сводишь все к Order
>>849602 Ты идиот или прикидываешься? Селектишь итемы (и свойства в массивы если нужно), дальше смотришь что там по Max в массивах получается, возвращаешь искомое значение. Нахуй ты тогда здесь OrderBy в фиддле приплёл? Выражайся яснее.
>>849619 человек описал ее выше я привел для наглядности фиддл с указанием готовых объектов как мне, используя Where/Select/Max в моем фиддле отобрать несколько инстансов с максимальными значениями свойства А?
>>849665 > Разве ему нужно не все объекты, у которых заданное поле максимальное? > Как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта
Я слепой мудак, прошу прощения. Несколько - это сколько? Все, или какое-то константное значение?
есть 2 массива, например: [1, 1, 3] и [1, 3, 4, 1] надо как-то проверить, чтобы все элементы одного были в другом. т.е. если в одном две единицы, то и в другом должно тоже быть 2 единицы. Как это сделать?
>>849707 хранить объекты "соответствий" элементов массивов и при нахождении пары проверять, дабы этот индекс не был использован ранее. хотя так се решение, имхо
Раз тут такая мутка, то скажите и мне, как найти допустим три ближайших объекта, и как оно работает, массив сортируется, после чего просто загребются первых три элемента?
>>849783 Данный кусок кода ставит ограничение для обобщённого элемента. В данном случае мы говорим, что тип TR должен реализовывать интерфейс IComparable<TR>
Интерфейс IComparable предоставляет метод CompareTo для сравнения двух элементов (дата, число и т.п.). Если не указывать это ограничение, то в обобщённом методе нельзя будет вызвать метод CompareTo, т.к. не у любого объекта он доступен, а только у реализующих указанный интерфейс.
>>849797 <Window.Resources> <local:aViewModel x:key=aVM> </Window.Resources> <Grid DataContext="{Static Resource aVM}"> </Grid> если view model с параметром в конструкторе, то придется прибегнуть к ObjectDataProvider Также размещаешь в ресурсах, указываешь тип объекта, параметры конструктора и чё то там ещё, и также в DataContext грида пихаешь
Каким образом можно сгенерировать файл с классом на основе информации полученной с ресурса? Например я заполнил List данными и теперь мне нужно с его данными создать файл с классом по шаблону.
>>849815 Что тут непонятного. На стороннем ресурсе есть список, который нужен мне в виде физического класса в одном проекте. Т.е я не хочу парсить это в рантайме, мне проще иметь его в виде статического класса с List или Dictionary. Можно ли как-то его сгенерировать из шаблона в ооп стиле, не хочется билдить это строками, без форматирования. Или может билдить строками и пропустить через утилиту форматирования, но мб есть другой путь.
Не тонем. Аноны, есть такая проблема: есть файл на сетевой шаре, файл постоянно дописывается, мне надо новые строки из него читать. Вроде бы хуйня, но не получается. Открываю через FileStream, выставляю FileShare.ReadWrite, но таки третья программа в этот момент не может открыть файл на чтение, а выдает только "permission denied". Как-то победить можно?
Какие смежные знания требуются шарперу? Вот например жавист или питонист должен знать основы линукса и MySQL/PostgreSQL, жаваскриптер должен знать сборщики типа gulp и webpack, основы ноды. А что дополнительно нужно шарперу?
>>850331 А что там учить в ненси это довольно таки простой микрофреймворк, на котором можно быстро что-нибудь запилить. Смотря какие у тебя цели, на работе тебе будет нужен 4ый и возможно если новый проект то core. Для себя я уже решил что буду писать на core и старые проекты на ненси тоже переведу на новый асп. Он тоже довольно-таки прост в освоении.
>>850300 Аноны, ну есть какое-то решение? Открываю по всем инструкциям, не блокируя файл, и всё равно другая программа открыть его не может. using (FileStream fileStream = new FileStream(plFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
Посоветуйте книжку по ООП с нормальными примерами на шарпе. Пытался навернуть "Объектно-ориентированные мышление" от Вайсфельда - будто говна поел, еще и большинство примеров на ломаной джаве.
Создал проект на Нэнси. Кроме основного файла программы добавил отдельный файл с роутером и рандомным названием файла и класса, но стандартным неймспейсом. И он... работает! Как? Откуда программа узнала об этом классе? Она что, автоматически парсит все .cs файлы? Их не нужно подключить вручную? Где можно прочитать про принцип работы этого?
Что скажете об "C# 4.0 и платформа .NET 4 для профессионалов." Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон? Насколько годная, какой порог вхождение?
>>850432 > Создал проект на Нэнси. Кроме основного файла программы добавил отдельный файл с роутером и рандомным названием файла и класса, но стандартным неймспейсом. И он... работает! Как? Откуда программа узнала об этом классе? Она что, автоматически парсит все .cs файлы? Их не нужно подключить вручную? Где можно прочитать про принцип работы этого? Там небось класс или метод атрибутами декорируются?
>>850711 начиная с c# 5.0 завезли async и await, (в 6,0 ещё и их поддержку в catch-finally блоках), что хоть и является лишь синтаксическим сахаром, но поможет разгрузить код от ебанутых конструкций типа Task<int> A = new Task(...); Task B = A.ContinueWith(()=>{a = A.Rezult();})... ну и прочий приятный синтаксический сахар, который может сделать код более наглядным. Оператор nameof() может пригодится в WPF при использовании биндингов.
Анон, ты знаешь какой-нибудь быстрый способ вкатиться в OpenGL+OpenTK? Судя по гуглу, OpenGL Superbible мой друг, но 880 страниц это дохуя. Если что, мне глубокое понимание и 3D не нужно. Но хочу хотя бы иметь представление о всяких там vertex, batch, transform, shader ну или что там еще можно в 2D игрушке встретить.
>>849804 А я ещё вот такой вариант методом тыка нашёл. Если в MainWindow есть ссылка на объект, из которого надо брать данные (напр., myObject со свойством myProperty), то можно написать DataContext="this.myObject", и потом в контроле (напр., текстбоксе) вот так: Text="{Binding Path=MyProperty, UpdateSourceTrigger=PropertyChanged}".
А со статик ресурсом будет лучше (если да, то чем), или без разницы?
>>850888 с точки зрения производительности - без разницы. возможно, даже лучше все контролы и вообще ебаное всё делать в коде, ибо код КЗАМЛа конвертируется в БАМЛ (бинарное представление), а потом вроде прям при запуске парсится и генерируются контролы. но с другой стороны, похоже разница в скорости милипиздронческая будет, так что рекомендуется весь UI код писать в кзамле, просто потому что это визуально разделяет бизнес логику и представление (паттерн MVVM все дела ебала). Типа, если не впихивать всё в кзамл, то у тебя помимо this.DataContext = myObject; ещё потом строчка появится, которую можно было в кзамле прописать, потом ещё и ещё и в итоге у тебя 1/4 c# кода может быть вынесена в кзамле, а вместо этого ты прокручиваешь его каждый раз, когда тебе нужно изменить/вспомнить как работает бизнес логика.
>>850714 >>850719 я знаю про разницу 4.0 и всех остальных версий. глобально разница-то в чем? TPL есть и в четвертом, nameof заменяется атрибутом типа CallerNameAttribute, если правильно помню. остальной сахар всего-лишь сахар. канеш писать на новой версии всегда приятней, не спорю. но в обучении-то какой принципиальный момент есть?
Направляемый наставлениями премудрых волхвов создал клинопись рабочую с использованием mssql да на windows forms. И всё бы ничего, но решимостью одержимый оптимизировать код натолкнулся на темную область в своем разуме.
На одной из скрижалей надобно мне одну и ту же надпись в несколько label'ов залить, поступил по-древлянски сначала, присвоив каждому эту надпись вручную, но должно же это как-то и слаще делаться? Или ошибаюсь я?
>>850897 можешь присвоить лейбмлам тег уникальный, и потом делаешь что нибудь типа foreach(Control C in this.Controls) if (C is Label && C.Tag=="uniqueTag") ((Label)C).Text="newtext";
>>850898 Хм. Ниработаит. Почему-то проверяет кнопки, лол. Напрямую label1.Text = label2.Tag. втыкается, а вот почему он на кнопках цикл гонит. Пробовал в условии ставить Label C in Controls, сразу же исключение вываливается - "невозможно батон к лэйблу привести". Смешно чота
>>850913 и лейбл и баттон наследуются от контрола. видимо, в логику foreach не вложена проверка допустимости приведения типа, поэтому приходится действовать, как я изложил в >>850898 foreach(Control C in this.Controls) if (C is Label && C.Tag=="uniqueTag") ((Label)C).Text="newtext";
>>850914 Прости, но я именно так и делал сначала, потом уже стал экспериментировать. Тут видимо надо получать коллекцию только лэйблов для начала, а потом уже по нему гонять с проверкой.
Ебать, я поехавший. Мне ж как покрасивее надо, а не учел, что groupBox - контейнер. Надо было не с зыс контролс брать для перебора, а с групбокса именно.
>>850300 >>850344 В итоге так и не получилось у меня это победить. Пришлось городить костыли: мониторю дату изменения файла, и в случае изменения читаю весь файл с последней измененной строки (её тоже запоминаю). Благо, единственная прога, которая пишет в файл, только добавляет новые строки, ничего не удаляя. Но это как-то через жопу, и мне не нравится, если честно.
>>850914 > в логику foreach не вложена проверка допустимости приведения типа Если бы это было так, то это был бы не язык программирования, а сплошной анал-карнавал.
>>850802 >в 2D игрушке бери гамак и лепи. а если любишь шарпы, то юнети и вперед. иди в /gd/, там найдешь тред юнетей. еще там один доброанон выложил цикл уроков по юнете для самых маленькихна ютабе ищи level gd. за выходные осилишь.
>>850913 Не понял, что тебе не нравится. Оно и будет проверять кнопки. Цикл пройдётся по всем контролам в форме, но вставит текст только лэйблам с указанным тегом.
Так, шарпаны, напомните, что делать в таких ситуациях (пикрелейтед) имею ввиду как убрать эту ебучую точность, когда вместо 0 получается 0.0099999999999Е-17?
>>851273 О, спасибо. И вот ещё вопрос. Допустим есть приложение, которое для своих нужд создаёт дочерние процессы. Если основной процесс завершает работу аварийно, как пиздануть все дочерние процессы?
>>845034 Не понял, метод можно напрамую подписывать на событие? Зачем тогда во всех книгах описывают это только с помощью делегатов? Как я вообще до этого должен был дойти?
>>851420 в прошлом треде такой же вопрос был вроде. у байта максимальное значение = 255, потом переполнение, в результате (если на 1) которого число становится = 256%256=0, что и происходит в твоём случае. сделай условие <255
есть циклический процесс, который делает дела с удаленными сервисами/серверами -> практически вся работа идет через Connection's и Stream. естессно вся Disposable фигня обернута в using
но после каждого цикла остается ~60-80 мегабайт памяти, занятой System.Byte[]. прошерстя профайлером, убедился, что все их корни идут от тех самых стримов, сериализаторов, коннэкторов и всей прочей шешуры, которых уже и след давно простыл
суть то проблемы, что приложение активно выделяет память под себя, пока не упрется в определенного рода потолок, который на разных энвайрментах разнится от сотен мб до единиц гигабайт, ну и уж начинается "плавание" вокруг этого предела
гуглы ничего адекватнее using/Dispose не говорят. пробовал и обнулять все объекты по выходу из цикла, и вызывать GC.Collect (хотя бы для того, чтобы оценить потенциальный результат). но все, к чему привело - уменьшение скорости выделения памяти под себя. т.е. проблема не ушла, но стала совсем на писечку менее явной. есть один "пример", который, используя винАПИ, принудительно делает deallocate памяти под процесс, но это во-первых так себе, а во-вторых имеет такую проблему, что я не знаю, сколько реально памяти можно сожрать
вообще, есть методы борьбы с подобными процессами? в частности, как определить, почему мусор, являющийся мусором, не умирает. а если мусором не является (в чем я сомневаюсь ибо в конце концов процесс съедания памяти имеет предел), то что его держит в живых?
>>851623 а это не делегат? this.gridView.SelectionChanged += this.gridView_SelectionChanged я чота не пойму
>>851447 крч оказалось все очень как страшно. забита память, в основном, объектами типа System.Collections.Concurrent.ConcurrentStack+Node<Object>, поверхностная информация о жизни которых выглядит как-то так:
Domination path for "System.Collections.Concurrent.ConcurrentStack+Node<Object>" from "Survived objects of the value type System.Byte[] " Holds 60176192 B in 5576 objects
System.PinnableBufferCache -> System.Collections.Concurrent.ConcurrentStack<Object> -> System.Collections.Concurrent.ConcurrentStack+Node<Object> -> System.Collections.Concurrent.ConcurrentStack+Node<Object> глубже не имеет смысла
я чот пока не уверен, что все, что я накопал, я все понял верно, посему не буду постить догадки/преждевременные выводы. а если кто столкнулся/кому интересно, чота напейшу
Шарпач, помоги. Есть один проект, тестовый. Знаю, что оче налажал, но где - не совсем очевидно, я же нублан. Анон, сделай ревью, потыкай носом, а? https://github.com/Joysome/Test-Web.APi-AngularJS.git Особенно интересует, куда надо было бы деть то, что у меня в FSService.
FileSystemWatcher'ом слежу за изменением файлов в директории. Хочу когда файл изменится дописать в него небольшой фрагмент, но возникает проблема: когда я записываю в этот файл информацию, на него снова срабатывает watcher и программа уходит в бесконечный цикл. Если перед записью в файл в обработчике события OnChange отключить watcher, а после включить, то он пропускает изменение другого файла, который записывался как раз в этот момент. Как быть?
>>851982 1. Можешь для каждого файла заводить отдельный FSW, и при возникновения события Changed внутри блока обработчика этого события отписываться от метода (sender as FileSystemWatcher.Changed-=methodName;) потом делаешь свои грязные делишки и снова подписываешься всё внутри обработчика 2. (если в событии фильтр можно смотреть путь файла, вызвавшего )Делаешь словарь типа Dictionary FileUpdatedManuallyFlag<string, bool>, заполняешь его названиями файлов в директории с интересуемыми расширениями, и в обработчике Changed каждый раз смотришь, вручную ли был изменён файл (например, из обработчика) if (!FileUpdatedManuallyFlag(e.Name)) { //do the thing; FileUpdatedManuallyFlag(e.Name)=false; } else { FileUpdatedManuallyFlag(e.Name)=true; //дописываешь в файл залупу }
>>852023 В книге написано, что - нет. Хотя судя по синтаксису и логике работы - вполне. Поэтому я и застопорился, либо я чего-то не догоняю, либо в книгах странно объясняют. Алсо, как таким образом (подпиской напрямую) передавать ссылку на вызывающий объект?
>>852339 Хмм. Надеялся, что вопрос будет понятен. Надо подумать, как сформулировать вопрос правильно.
Есть, например, форма с радиобаттонами. Есть событие rb1.ChckedChanged, на которое я хочу подписать метод rb1_OnCheckedChanged. Как это правильно сделать? В частности, надо использовать стандартный делегат EventHandler или нет? Здесь >>845034 >this.gridView.SelectionChanged += this.gridView_SelectionChanged; не используется EventHandler, и это я называю "напрямую". Я так понимаю, это можно сделать потому, что SelectionChanged это стандартное событие C#, какое-то кастомное событие надо объявлять через делегат. Я правильно понял?
Привет, шарпач. На работе приходится разбираться в старом коде и увидел в wcf сервисе следующее:
internal class Settings { internal static Settings Instance => Nested.instance;
public MainForm MainForm { set; get; }
class Nested { static Nested() { } internal static readonly Settings instance = new Settings(); } ...[методы] } Вопросы: 1)Это вообще нормально? Так принято делать? И главное я не могу понять зачем, можно это как-то иначе реализовать? 2)Зачем Nested пустой статический конструктор?
>>852359 начнем с того, что "стандартный" делегат - это такой же тип делегата, как и все остальные, ничем не менее стандартные как RoutedEventHandler, MouseRventHandler и т.д. как тебе подписаться на событие - решай сам: через new HuiPizdaDelegate, через += Method, через +=(s,e)=>{ } вот, почитай крч: https://m.habrahabr.ru/post/198694/
>>852364 тебя, надеюсь, не реализация синглтона смущает? пустой конструктор - это, скорее всего, архаизм. когда-то там чота было, возможно даже инициализация самого синглтона, а потом перекочевала куда надо. в любом случае наличие пустого статического конструктора плоды не делает и перфоманс не поломает. само вложение классов, вероятней всего, связано с попыткой разделения зависимостей/функционала. все дело в том, что за функционал населяет оба класса, и, самое главное, какова их история. может быть, если копнуть за годы назад, окажется, что все было по-другому и раньше было лучше
Можно ли обеспечить для приложения совместимость с виндой вплоть до ХР? Можно как-то сделать чтобы было не обязательно устанавливать .netframework для того, чтобы моё приложение работало?
>>852727 1 - пикрелейтед 2 - хз, насколько я знаю, программы сисярпа запускаются в виртуальной машине, которая, рискну предположить, сама берётся из .net framework'a.
>>853027 Ну зато увидишь где у теб падает. Значит try/catch нужно еще и здесь можель попробовать запускать от админа свое приложение, может тогда доступ будет
>>853010 памушта после запуска эвейт управление передается вызывающему коду, где ожидается, что реф/аут будут инициализированы, что не является гарантией
>>853278 мимокрокоди дальше сильно вероятно, что код, потребляющий эту таску, будет с эвэйт. даже если не так, то конпелятор совершенно справедливо предполагает, щито метод может/будет выполняться асинхронно
Вкатываюсь с нуля, в идеале хочу запилить свой фотошоп с имитацией масла, жидкостей и прочих партиклес. Поясните что курить для графики на C# для самых тупых, нашел какого-то мужика (пикрилл) для основ и уроки в которых делают пейнт, я их посмотрел и один повторил, не знаю правда нахуя, все равно ничего не понял.
>>852488 Ок, спасибо. Я думаю, я разобрался, и мне кажется ты не совсем прав.
Делегат, в контексте события, нужен толькр для того, чтобы определить сигнатуру методов, которые могут подписаться на событие.
События, которые включены в среду я использую SharpDevelop, например: gridView.SelectionChanged radioButton.CheckedChanged уже определены с помощью делегата EventHandler. В этом можно убедиться, если посмотреть на код этих событий. Поэтому, метод можно напрямую подписать на события, которые поставляются со средой. Если использовать свои какие-то события - придется использовать делегат для определения сигнатуры методов.
>>853417 > что курить для графики на C# > C# Ничего там нет. Нормальное 2D рисование и C# - понятия практически несовместимые (не, ну можешь конечно рисовать через GDI, только никому не рассказывай). А с учётом того, что ты и C# не знаешь (раз тебе требуются уроки с твоего пика), то выкатывайся оттуда и закатывайся на C++. Программирование под DirectX начиная с 10.1 очень сильно упростили, ищи мануалы под Direct2D, и вперёд.
Так-с, господа полубоги, помогайте. В общем меня приглашают стажироваться в одну фирму топовую для нашей мухосрани, кстати. А они там занимаются аспом. Проблема в том, что я дочитываю Троэлсена и понемного программирую разные програмки уровня laba1, и совершенно не знаю что и в каком порядке учить. Если что, в вебе вообще не шарю, так что подскажите плиз
>>853779 Да банально, понадобилось мне на лету подредактировать PEB запущенного процесса другой программы. Она была криво написана, и в какой-то момент работы портила его сама себе. Вот делал минификс для этого.
В HttpWebRequest устанавливаю хедеры для запроса и когда делаю req.Headers.Set("Accept-Encoding", "gzip, deflate, br"), то вместо текста страницы получаю кракозябры. Если её закомментировать, то всё в порядке. Через браузер смотрел, хедер в запросе именно такой. В чём прикол? Может я чего-то не понимаю?
>>853971 Когда ты делаешь > req.Headers.Set("Accept-Encoding", "gzip, deflate, br") то ты говоришь удаленному серверу: мол, я могу и сжатые данные принять. Вот он тебе и шлёт сжатые. А твой HttpWebRequest по умолчанию их расжимать не умеет.
>>854038 ну во всем не выиграешь. выбирай, что тебе важнее: нагрузка на трафик плюс, возможно, дополнительные расходы на unmanaged-память, либо нагрузка на проц в лице декодирования сообщения
Асинхрач, а как можно организовать цикл по таскам/акшонам с несколькими awaitами? Пробовал так: Parallel.ForEach (uri, async (x) => { y = await Processing(x); z = await Processing(y); Console.WriteLine(z); }) Console.Wrilteline(«цикл завершён»);
Но задача считается выполненной на первом-же awaitе. И первой записью в консоли будет «цикл завершён».
Здравствуйте поцаны, я решил вкатиться именно в этот язык, уже прошел небольшой курс от гикбреинс по виндоформам, понял что это совсем детский сад и решил, что никто лучше ребят с двача не разбирается! Так что пригрейте дурачка
>>853436 Двачую, с DirectX и С++ даже в моём мухосранске были вакансии в геймдев. C# больше используется для серверного и декстопного по финансового сектора. Хотя, когда проходили в универе мы делали подобие пейнта, это теоретически возможно. Уроки с пика >>853417 годные.
>>854153 чё тебе греть? все деньги в asp.net. десктоп сисярпа в лице WPF и winforms умирает перерождается в веб и мобильных устройствах. Unity имхо годится для 2д индюшатины, но это на любителя.
>>854156 Ну нужно же с чего-то начать второкурснику, который только и умеет что калькуляторы писать(даже это почти не умею) >>854157 ИТВДН посоветовали, но там и они бабла хотят.
>>854103 Parallel.ForEach был бы нужен, если бы у тебя были блокирующие методы, а у тебя асинхронная кашка, к ней можно подойти сбоку http://pastebin.com/wcXBb91D
>>854235 стринг и есть массив символов. (ну или класс с индексатором, ссылающемся на List<char> а может и вообще char[], не рефлектил ) на ввод подаётся число в двоичном представлении, или ты парсишь интовое число в 10 СС и загоняешь его побитово в строку?
>>853436 >>854154 Спасибо за советы, просто мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше, типа C++ это ООП, а С# это КОП который включает в себя ООП, а еще он легче. По поводу DirectX я сразу загуглил есть ли он под .NET и нашел SlimDX который вроде полный аналог. Надо короче еще посидеть подумать, поискать больше разной инфы.
Почоны, есть ли у вас какие-то сайд проекты на которых вы зарабатываете? Есть ли вариант иметь ~50к в месяц, но при этом не тратить на работу по 10 часов 5 дней в неделю? В обычном фрилансе, я так понимаю дотнетчикам не место, но как быть-то тогда?
>>854520 > SlimDX Он в разработке до сих пор, и неизвестно, когда допилят. А в C++ всё есть здесь и сейчас.
> мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше Мужичок твой говорит, да недоговаривает. Не надо его слушать, он походу сам не особо понимает, что к чему. Потрать сам время, и выясни различия этих языков. Тогда тебе станет понятно, почему тебе для графики рекомендуют C++, а не C#.
>>854520 Там где directx, обычно требуется высокая скорость, при прочих равных, c++ будет быстрее шарпа, плюс, вроде как, во время сборки мусора остальные рабочие потоки приостанавливаются, в обычном софте будет незаметно, но для графы критично
>>854845 а в твоей ситуации я бы делил строку на подмассивы по '|', потом присваивал каждому элементу массиву строк его же, только приведённому к int с NumberStyle.Binary, обработанного битовым оператором отрицания "~", и снова взятому через ToString()
>>852488 EventHandler это тип делегата. gridView.SelectionChanged и radioButton.CheckedChanged это объекты делегата. Единственное отличие обычного объекта делегата от объекта с припиской event — это то, что со вторым за пределами класса, в котором он объявлен, можно делать только 2 операции: += и -=.
Сишарпач, что же это творится? Решил сесть за изучение EF, но студия как обычно "не хочет". Порядок действия: Project - Add New Item - ADO.NET Enity Data Model - EF Designer from database Выбрал работающее подключение, нажал далее и дальше возможно 2 варианта: 1. На чистом проекте EF 6 не доступен, доступен только EF 5. Выбираю EF 5 нажимаю далее. Выбираю какие таблицы нужны и нажимаю финиш. В ответ получаю ошибку (пик1) 2. После установки MySQL через nuget EF 6 и EF 5 становятся не доступны (пик2) Как решить проблему? Как мне завезти EF 6/EF 5?
Кто-нибудь уже пилит что-нибудь на .Net core? Что вообще думаете по теме, взлетит? А то кругом шум, что .Net вот-вот умрет, а модные ребята на Go и прочий Elixir переходят
Шарпач-wpfач, помоги говнокодеру советом. Есть xml-файлы примерно такой структуры: http://pastebin.com/ynTQAgBL (приложение может их загружать, либо генерировать). Вкратце, если ты посмотрел пастебин: Есть вопросы. Вопросы расфасованы по темам и предметам, в свою очередь темы тоже расфасованы по предметам. Все эти три хуйни можно добавлять/удалять. Для отображения всего этого есть 3 ListView пикрелейтед. Проблема в том, что я не знаю как это хранить в программе, да еще с учетом MVVM. К тому же, мне нужно по предмету получить список его тем, или по теме узнать ее предмет. Попробовал нахуярить несколько классов, но че-то над кодом плакать хочется.
>>855535 я бы попробовал держать файл xml на ЖД, потом через какой нибудь xml reader считывать его в DataTable из ADO.net (а им точно можно xml скармливать, правда, не помню как.) а можно и поискать, как его прям в ObservableCollection захуячить (для этого придётся Model-классы создавать), ну и потом к itemsSource'ам listView присваивать полученный datatable или observablecollection.
>>855513 >Кто-нибудь уже пилит что-нибудь на .Net core? Юзаю еще с первых беток.
Разрабатываю в VisualStudioCode на своем макбуке. В основном пилю бэкенды для своих мобильных приложений и деплою в docker под linux. Для базы данных юзаю Postgress через EF Core.
Получается в разы дешевле чем возится с виндоус серверами (это важно тк приложения opensource).
Сейчас жду когда Xamarin переведут на CoreCLR, вот тогда прикольно будет. А еще прикольно будет когда добавят сборку нативных бинарников, можно будет рассылать один бинарник вообще без зависимостей на .net (как в Go).
>>855744 Миллиард раз говорилось уже. Книги устаревают. Не нужно их читать. Выбирай себе реальную задачу, и разрабатывай, изучая по пути. По ключевым фичам разных версий языка можешь погуглить или почитать хабр, чтобы быть в курсе, что в языке нового (и не писать вечно под фреймворк 3.5 или даже 2, как некоторые делают).
Котаны, вот есть простенький класс ракет, и я хочу создавать уже конкретные экземпляры.Но без передачи хуеву тучу параметров,а примерно вот так - RocketAmmo = new RocketAmmoLV(); Корчое сделать разные наследники от RocketAmmo, и чтоб наследников делать без передачи в конструктор параши. В одном наследнике ракеты по 10 бьют, а во втором по 20. Надеюсь вы поняли. Удобства ради.
Шапка: https://github.com/CSharpShapka/SharpHat/wiki
(пока просто перенесена шапка из ОП-поста, в ближайшее время приведу к более-менее адекватному виду, не стесняйтесь слать свои пулл-реквесты)
Прошлый тред тонет здесь: http://2ch.hk/pr/res/824683.html