Вы видите копию треда, сохраненную 4 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/CSharpShapka/SharpHat/wiki
(пока просто перенесена шапка из ОП-поста, в ближайшее время приведу к более-менее адекватному виду, не стесняйтесь слать свои пулл-реквесты)
Прошлый тред тонет здесь: http://2ch.hk/pr/res/824683.html (М)
>int[,] te = new int[4,8]
А у незубчатого как? Эти варианты не работают:
>int[][] te = new int[4][8]
>int[][] te = new int[4,8]
multidimensional array:
>int[,] array = new int[4, 2]
jagged array:
>int[][] array = new int[2][]
>array[0] = new int[3];
>array[1] = new int[4];
Понял, спасибо!
Какой маленький оп пик, я понимаю что у вас нет комплексов, но все же
Это слишком просто
>>843749
Нюфажик, раскажи как ты вообще понимаешь смысл написанного тобой условия?
Так, он все равно мне в консоли выводит лишь с 9759 и до последнего элемента массива.
for (int i = 0; i <= array.Length-1; i++)
{
Console.WriteLine(i + ":\t" + array);
}
Анон, а как ты разбираешься с большими неизвестными солюшенами?
С отдельными мелкими классами проблем нет, но я не понимаю как разобраться с большой кодовой базой в целом.
Разобраться в целом = знать какие классы есть в проекте, какие у них интерфейсы, как классы связаны между собой. Глубокое знание реализации пока не интересует.
Пробовал Code Map, легче не стало. :(
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 с побайтовым считыванием строк?
Зачем тебе полностью видеть всю картину? Чтобы добавить функционал или что-то поправить не нужно знать как работает все приложение.
Просто беру и разматываю ты часть, которая мне нужна.
Выводится на самом деле, просто консолька не хранит весь вывод, только последнее
Я и не говорил что мне нужно.
>знать как работает все приложение.
Я просто хочу получить представление о кодовой базе продукта. Из каких классов он состоит и как они между собой связаны(т.е. глубже интерфейса изучать классы не требуется).
Никак, идешь к тому кто знает, он тебе все рассказывает
выкладываешь тысячу денег, чтобы пришёл кто-то, и разобрался в этом пиздеце: https://www.upwork.com/job/Custom-Control-Library-WPF-using_~01eaa9761402514863/
>Once the programmer is left
Инстант проигрыш, да и все история анекдот какой то, и нубов научи, и контрол у них с нуля, и фрилансером будь.
>Member Since Sep 8, 2016
Okay
Спасибо за перекат, думал перекатывать вовремя и обновить/структуировать шапку, но времени катастрофически что-то не хватает. Добра, короче.
Я хотел сделать скрипт для автопереката, но сейчас занят и не определился, какой язык взять. Один рубист это делал, но он бросил. Нужно сделать так, чтобы любой ОП мог добавить свой тред.
Я могу конечно, правда это не слишком интересный проект. ОПом будет скрипт, который по достижению бамплимита будет пересоздавать тред.
ты, конечно, можешь держать соединение все время работы приложения, но правильней всего будет создавать контекст каждую транзакцию
В консоли так много не помещаетс, выводи в файл
Копай в сторону expression trees
Покажи примерно что ты хочешь то, а то не понятно нихуя.
Гугли Linq.Dynamic, там можно передавать строки эквивалентные лямбдам в Linq.
Если я правильно понял вопрос.
Как узнать на какие методы указывает делегат?
оттака
На форме всё отображается как надо, но когда пишу полученные значения в таблицу БД вываливается ошибка формата. Причем в тех случаях только, когда одно из значений имеет нулевую целую часть.
При записи в БД конвертируется вновь в дабл текст, полученный после расчета в mtb
Хуево, чо.
О, как она меня унизиль субханаЛЛах.
в свойстве textMaskFormat надо было include prompt указать. ибо оно значение типа 0,23 возвращало в виде _,23 где _ - это пробел.
Чтобы понять пришлось эту говносхему в консольке параллельно произучать, охуительный язык, все понятно на самом деле, даже без справочников
Я просто плачу от собственной тупости. Уже хуй знает сколько пытаюсь пройти главу с событиями. Делегаты разобрал, все вроде ясно.
Можешь подкинуть схематичное объяснение event'ов?
Как подписывать на событие, схематично с привязкой к коду.
Спасибо.
Делегаты-то здесь и вовсе ни при чём.
this.gridView.SelectionChanged += this.gridView_SelectionChanged;
И затем:
private void gridView_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
{
this.UnselectRows();
if (this.MultiSelect || this.gridView.SelectedRowsCount <= 1)
this.OnSelectionChanged();
}
Вангуем, когда завезут констрейны? https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/generics/constraints
в 8.0? Особенно интересно будет, если зделают не уёбищные инлайн-констрены мемберов, а что-нибудь типа тайпклассов хачкеля, пусть и простеньких. 20 лет жду.
Какого хрена они про primary-constructor забыли, обещали еще в 6.0 и все что-то тормозят.
Заебали анальные приседания с присвоение всех параметров к полям.
>>844424
>>844548
А разве божественный дотнет не оптимизировать это вместо нас по умолчанию?
https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx
Олсо. Вопрос. Как структуририровать проект? Ну там мультилеер, где кор выше всего (в нем всякие коммон хелперы, интерфейсы, логирование и все такое). Дата - репозитории. Возможно модел- где лежат поко, модели, дтохи. Сервисный слой- где бизнесслогика дергает репозитории и манипулирует моделями. Ну и конечные солюшены, которые дергают сервиси. Поясните, так норм?
Еще. Стоит ли выделять в класс лайбрари логику работы с определенным доменом. Юзер менеджеры,например. Чтоб теоретически юзать это в других проектах. Но тогда получается, что для каждого такого домена нужно еще по слою делать( репо, кор и т.д). Этож охуеть сколько класс лайбрари в проекте будет.
Приведите пример архитектуры годной, плиз.
Может кто в личечке не против, чтоб я с ним посоветовался, если тут не удобно?
У тебя не расходуются ресурсы на поддержание коннекта к бд, ты не даёшь разрастаться своему контексту до неебических масштабов и ему не придётся трекать миллион всякой хуеты.
Господин сверху советовал глянуть на Unit of Work. Именно так в промышленной разработке пользуют контексты.
Ты тупой.
Пюслюс, почему в ответе правильном перед and запятая, это инглиш грамматика или ошибка?
Есть базовый класс с набором автосвойств.
Есть класс-наследник с тем же набором свойств, но с заданными значениями по умолчанию.
Правильно ли я понял, что в базовом надо сделать их виртуальными, а в наследнике перезаписать?
если у наследника они также станут автосвойствами, то, понятное дело - нет
оверрайд нужен для внутреней логики, а не значения. прост записывай нужные тебе значения в конструкторе по-умолчанию
Тхэнкс
Что-то совсем не варит котелок. Вот что писать для того, чтобы у наследника по умолчанию name вася было? И чтобы вдруг он потом подрастет и будет не вася, а василий егорович?
http://pastebin.com/WZWGU7Sh
Можешь писать последнее время запуска в текстовичек.
Вариант в лоб — Thread.Sleep().
Другой вариант: консольное приложение и настроить виндовый шедулер.
От души, брат. А мне оказывается вообще не это надо было. Я ебанутый, мне для ведения справочников надо было, а я теплое с мягким попутал. Спасибо еще раз, охуенный тред
Ну и при чем тут это? В любом случае там или запятая должна быть или соеденитель.
Не еби мозгу, читай тут:
http://www.akadia.com/services/dotnet_delegates_and_events.html#Multicasting
Проверка вроде @char == [?принадлежность к алфавиту?]
хотя нет, это на принадлежность к юникоду. делай свой метод, хули ты
Regex to the rescue!
Коннект не требует никаких ресурсов, кроме мизера памяти, а вот создание и разрыв коннекта - это ресурсоемкая операция, от которой стараются избавится (например keepalive)
Если говорить про ef, то в стандартном его поведении ничего не разрастается
Thread . Sleep? Ты позоришь честь этого треда
>>846080
https://msdn.microsoft.com/ru-ru/library/system.timers.timer(v=vs.110).aspx
Это чем не подходит?
Char.IsLetter - то, что нужно. Спасибо!
До этого пытался через regex, но не совсем понял как правильно его использовать в if
regex'ы не в иф блоках используются вроде. они возвращают строку, обработанную согласно параметрам regex'а.
Скачал Xamarin и Mono, но гтк найти не могу, хотя бы в виде исходников
А последовательность какая? Сначала Mono или потом?
Как проверить, что все компоненты работают? захеллоувордить? извините, что нуб
1) Качаешь установщик https://www.xamarin.com/download
2) Запускаешь установщик, он сам ставит mono/gtk/android sdk
3) Запускаешь Xamarin Studio, выбираешь пункт "New Project" -> "Other" -> "GTK"
Я могу его хранить в службе? А если мне нужно поменять интервал мне надо пересоздать службу с новым значением таймера или можно как-то изменить?
>почему неудачных?
Плохо дается теория, хоть я и зубрил ее, на теоретические вопросы на собеседовании мог только мычать. Обычно было так - hh дает мне тестовое задание, я его делаю, зовут на собеседование, на котором я опять обсираюсь.
>какой бэкграунд?
Закончил курсы погромирования, никакого опыта реальной работы нет. Образование средне-специальное.
И можно с примерами работы с .NET.
книг не знаю, но знаю норм такой мануал. берёшь, короче, пишешь код на любимом сисярпе, прогоняешь его через ILSpy, получаешь код на VB. показываешь работодателю/преподу гришь о смотри ясделяль. ну или если тебе нужно разобраться в коде - та же хурма, перегоняешь интересующий блок с vb на c# и вуаля. базарю я синьёр помидор
Ну, блядь, ты просто гений. Мне нужно конкретно гайд для обучения конкретно нуба программированию на бэйсике. Мне не нужен готовый код, готовый сам смогу "добыть". А вот книги толковой не могу.
Да, зато ты, видимо, пиздец тупой
protected internal = protected И internal
Как может быть или? В одном случае protected, а в другом internal?
Проблеиа не в неточности, а в твоей быдлиности: ты создаешь поток, который делает... нихуя, но при этом ты выделяешь на него ресурсы: память под стэк и другие плюшки, процессорное время (контексты все равно переключаются). Один такой поток в системе, вроде и не страшно, но если бы все так писали, как ты, я бы не пользовался бы пекой
А все, это из-за знака ' в названии, лол.
С чего в службе нельзя хранить переменные?
Я не знаю, кури мсдн, я просто спросил чем не устраивает
А мне сам объект возвращает. Может ты с IComparable проебался?
>listOfObjects.Min() + "\t" + listOfObjects.Max().someField)
Вот поэтому из меня никогда не получится нормального программиста.
Модификаторы доступа показывают откуда можно получить доступ к методу, в одном случае из наследованных классов, а в другом из классов в той же либе.
> IComparable
> Решил такой писать на функциональном линке
> Нужно реализовать интерфейс @ Нельзя лямбды
>шел 2016 год
>в фреймворк добавляют кучу всякого сахарного говна, но до сих пор нет реализации простейшего дерева
Мы тут максимальный элемент в списке не можем найти, а ты уже про деревья
А теперь... что если их поставить вместе, Маня, как тебя в вопросе и спрашивают
Отвечай, не томи
Install-Package morelinq
https://dotnetfiddle.net/saAaLG
Не могу разобраться, почему фиддлер не хочет компилировать, но в студии пример работает.
Не меня спрашивают, я пришел к словам попридираться.
> can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly
>// MoreLINQ - Extensions to LINQ to Objects
>// Copyright (c) 2008 Jonathan Skeet. All rights reserved.
Джон Скит в треде, все на SO!
Только если лист изначально пуст.
Я бы написал свой
http://pastebin.com/BJsAjJV7
метод-расширение и положил бы в папочку /Commons/
Сортани коллекцию таким образом, чтобы корень был в середине, слева все левые поддеревья, корень которых посередине между началом и главным корнем (1/4), то же самое с правой стороны. Начинай строить дерево с корня, потом поддеревья
Спасибо.
Потому что это не java и тут есть нормальные делегаты и лямбды.
Короче, всю жизнь не комментил свой код, а сейчас задумался, ведь есть есть жы некий годный стандарт комментирования. Анон, реквестирую кусок кода с годными комментариями.
Для публичного API используй XmlDoc (то, что у тебя на скрине). Внутри кода комментарии не нужны - код должен быть самодокументирующимся. Исключение - какая нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал.
UWP вообще как? Есть с ним жизнь без Store? В Магазин хентай пускают? Или дальше на WPF сидеть?
а на wpf жизнь есть?
В спецназе языков программирования 1с есть элемент "поле ввода", к которому прилагается кнопочка "обзор", в результате этот элемент может и как комбобокс в выпадающий список значения давать, и как опенфайл работать, только открывая другую форму.
А чем это в C# достигается? Что-то я потёк уже от размышлений, неужели кнопочку отдельно приклеивать?
Ну, в C# есть разные графические фреймворки для декстопа, в основном это winforms и wpf. ну ещё UWP. Насколько я знаю, в этих фреймворках нет того, что нужно тебе изподкаропки, но во всех трёх фреймворках есть возможность клепать кастомные контролы, но в wpf и uwp возможности ГОРАЗДО больше для этого, чем в winforms. короче говоря, можешь сделать просто конфетку ещё пизже чем на твоём 1с, но делать придётся самому, да. отсюда следует, что может получиться и не конфетка вовсе, а просто пиздец нахуй блять я у мамы фронтенд
Где почитать про правильную структуру проекта? Тысячи форм и сотни классов уже пугают, хочется упорядочивания. Если просто по папкам их распихаю, там же надо еще и директивы везде переписывать? Или папки на навигацию никакого влияния не оказывают? Или вообще проект разбить на несколько проектов, в одном формы, в другом классы, в третьем гробгробкладбище имейджез?
при помещении в папку уже существущего файла .cs, неймспейс не меняется. а вот при создании нового файла в папке неймспейс соответствует папке типа namespace projectName.folderName { }
Я понимаю, что такое .Net - платформа с дохуя библиотеками, для винды, которая .Net код компилирует налету в ассемблерный код, но строго для винды.
А GTK - это какая-то кроссплатформенная платформа для других, кроме винды?
Или я чего-то не догоняю.
Провалил из-за этого собеседование
ты бы хоть Троелсена первую главу открыл, чисто для интереса.
Вроде продают и на складах в наличии.
Тут главное упорство, мне за 3 месяца поиска работы было три приглашения на собеседование и с третьего зашло.
<DataTemplate x:Key="zzz">
<CheckBox Content={Binding} />
...
Вот здесь биндинг без параметров, то есть ни path, нихуя. Откуда в таком случае будут браться значения? Из DataContext'а, казалось бы? Но вот, например, в пикрелейтедах он даже не указывается. В 1 случае в дататемплейте биндинг указывается абсолютно пустым, только у контрола, для которого определяется дататемплейт, указывается ItemsSource. НО! если попробовать в дататемплейте в биндинге элемента указать Path=ItemsSource или Path=DataContext.ItemsSource, то дататемплейт будет работать некорректно (грубо гря, контент чекбокса не забиндится). Во 2 случае всё делается из c# кода ибо так приближено к боевым обстоятельствам. В настоящем проекте по определённым причинам я считаю, что меньше кода выйдет, если определять дататемплейты динамически, и даже если там указать в свойстве чекбокса ContentProperty просто пустой new Binding(), то сука DataTemplate будет работать корректно, то есть для каждого чекбокса определятся соответствующие значения. Ещё раз, вопрос: какого хуя? Почему в "пустом" биндинге всё равно правильно привязываются значения? Как он определяется по дефолту?
Отбой. Кажется, нашёл ответ на свой вопрос.
>Исключение - какая-нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал
Это значит что ты пидар что написано криво и есть смысл переписать нормально.
Омакконелмой как же я проблевался с твоих длинных портянок.
- Ошибка десериализации объекта. Ожидался маркер """, но найден "Ñ".
(разумеется, символа Ñ там нигде нет)
Я пробовал перегенерировать классы по ошибочному JSON, но это не помогает. Можно ли как-то это дебажить? Хотя бы узнать, на каком месте/оффсете парсер загибается? В инете ничего дельного не пишут, поля LineNumber и LinePosition в эксепшене равны 0.
Баг фреймворка, починили в 4.5
http://stackoverflow.com/questions/23909231/datacontractjsonserializer-readobject-sometimes-throws-the-token-was-expected
Нужно просто обновиться / не использовать плохие входные данные / использовать json.net
Да, открыл тот же проект в 15 студии, сменил версию на 4.6, всё прекрасно заработало. Спасибо тебе, анон, что прекратил мои попытки решить оказывается нерешаемую проблему. Буду выбирать из двух зол, или включать стороннюю либу, или таки переходить на другую студию и версию.
Тащемта тебе надо и новую студию поставить на этот раз английскую, потому что пиздец, и либу подключить, тому что она быстрее.
BaseClass BC = new BaseClass();
SubClass SC = (SubClass)BC;
c# 6.0 изподкоробки, там же всякие расширения для юнити, андроид СДК и ещё чо то.
а схуяли нельзя? сносишь к ебеням скачивать коммьюнити версию с сайта майкрософт или покупаешь на торрентах алтимейт и вперод.
Увеличение тормозов. Ты купишь новое железо, чтоб комфортно работать. Мс доставляет профиты не тебе, а себе а производителям железа. 2008 форева, даже на старом железе работает крайне шустро.
Когда с 10 на 13 переходил прошлось полностью шинду сносить, потому что не вставало. А сейчас что, просто студию удалил и новую накатил? Пакеты вилкой чистить не нужно?
У меня i5 2500k, 8 гиг оперативы и ссд. Да даже на моем ноуте с одним ядром 13 студия не тормозила, я хз на каком динозавре ты там сидишь.
хз, я свой путь начал сразу с 2013. никаких проблем не было, только скопировал папку с проектами в новую директорию vs2015. НО! помни, я мимостудент, и, возможно, не использовал полностью функционал VS как ты мог это делать в энтерпрайзе. мб у тебя там какие нибудь охуенные зависимости, завязанные конкретно на vs2013.
У меня i5-4460, тоже 8 гб оперативки, правда без ссд. 2008 не думает вообще, грузится за 1-3 секунды, по нажатию F5 тоже практически мгновенно дебаг запускается. А вот 2015 уже ворочается и думает, иногда по 3-5 секунд. Особенно при запуске дебага притормаживает.
твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия.
>А нахуй вообще нужно оружие в инвентаре, которое в слот запихнуть нельзя?
Как это? Как раз оружие и хочу запихнуть в слот, но нужно сначала узнать подходят ли параметры оружия.
>>848029
>твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия.
Так, я тупой, и не всегда понимаю. Есть класс "героя", у которого есть поля типа Weapon, Shield, Engine. Вот эти все итемы (Weapon, Shield, Engine) надо класть в инвентарь/ одевать. В данные момент они все имеют класс-родитель Item, что-то подсказывает это неправильно. Если я реализую интерфейс Iweapon в классе Item, то все итемы будут уметь стрелять, не?
>Ты говоришь что у тебя у класса оружия есть поле "сокет". Зачем он?
Сокет - отдельный объект в классе Hull, сокет выполняет роль слота и имеет несколько разновидностей, нужно узнать у оружия какой сокет оно поддерживает, и если да, добавить в List<Weapon>.
Если каждый наследник класса Item использует поле "сокет", и самому Item это поле тоже необходимо, то пиши его именно в Item.
>Если каждый наследник класса Item использует поле "сокет"
Не, в том то и дело что сокет нужен только для орудий, у Engine должна быть своя атмосфера. Короче говоря разные классы, которые как-то нужно засунуть в один контейнер(инвентарь) и взаимодействовать(вставлять в слоты) с ними.
ладно, а почему бы тогда не создать классы наследники от item: Shield, Weapon, Engine?
>Shield, Weapon, Engine
Мало похожие классы, класс-суперпомойку говорят делать не есть хорошо.
Как вариант сделай еще класс usableItem, который будет наследоваться от обычного item. И пиши в нем что хочешь.
>>848029
поддвачну этого.
Или предлагаю вот тебе что сделать. заводишь поле
ItemTypeEnum itemType;
где
public enum ItemTypeEnum
{
Shit,
Weapon,
Gear,
// итд
}
лично я так делал, а не ебся с тоннами наследований, особенно, когда быстро решительно надо было создавать новые типы.
Но это будет работать строго, если у тебя градации самих вещей одного и того же типа нет.
Например у оружия - топор, меч, залупа,дилдак.
Если такое будет, то делай через наследование.
Почитал ваш гайд
Начинаю с
The C# Player's Guide
CLR via C#
Pro WPF 4.5 in C#
Multithreading in C# 5.0 Cookbook
Потом дрочу эскьюэль, учусь пользоваться гитхабом и ищу какую-то джуновскую вакансию?
Алсо, про первую книгу написано что она для ньюфагов в шарпе, а если я ньюфаг в программировании? ну когда-то там писал на сях сортировку пузырьком, про массивы что-то знаю, но это не считается
Или мне начинать изучение сишарпа с с?
Если умеешь работать с типами данных, циклами-хуиклами, массивами и условными операторами типа if else switch и тд, то можешь сразу учить шарп.
динамикодрисня multiple dispatch решительно врывается в тред!
https://dotnetfiddle.net/6jFDPm
1. Ебаные разные шмотки должны хранится в списке , типа так List<Item> , да? Вот мы берем и ХУЯК добавляем пушку в инвентарь методоом items.add(new Weapon()). м?
2. Ну и как теперь одеть пушку в слот, который треубет тип Weapon, если я даже не могу посмотреть в List<item> мощность пушки. А даже если бы мог, через свойство, то всеравно итем стрелять то нихуя не умеет. И НЕ влезет в поле типа Weapon, где изъян?
Ага, но вот варлока распидарасила рога голая ,выпал стафф,сворд и спелбук, не мог бы ты,бро, добавить их в сумку, вывести статы сворда в консоль и одеть стафф на рогу. Само собой рога может только стафы носить, но ты все равно попробуешь одеть сворд.
ой, не, все норм
Вывести статы итема - самое простое, тут же single dispatch.
В остальном просто добавляешь правило
https://dotnetfiddle.net/jEJELz
foreach (Weapon i in inventory)
{
if (i is Staff)
//шось тут
else if (i is Spellbook)
//шось тут
else
//эксепшон
}
Вот тебе решение в лоб. Может кому будет не лень что нибудь другое придумать.
Вот когда перебираю веапоны, то заебись, прям вообще нахуй, доступ к параметрам есть, и можно проверить сокет. НО а если перебирать итемы, то уже хуй, ведь в рюкзаке хотелось держать именно итемы, там же не тольько оружия будут лежать,а еще и броня, без сокетов блядь! Короче тут либо делать в классе-родителе поле сокет, и глушить его в классе броня, либо я вообще хуй знает. Проблема не решена.
Может рефлексия?
На словах ты Лев Толстой
Гляжу на пример в mdsn, делаю свой ArrayList, а у него нету метода OfType<T>()
Хз, с листом не работало, пошел на мсдн глядеть, там с аррайлистом делали. Сейчас дошло что без подключения Linq не работает.
Я на dotnetfiddle сидел вообще.
Что нужно установить/сделать чтобы подключить postgres? По идее в этом списке он должен быть (пикрелейтед). Npgsql установил.
Да, я уже нашёл это. Пункт появился. Вроде даже работает. НО! Столбцы-то он извлекает, а вот данные - нет.
Ошибка:
Error in SELECT clause: expression near '"'.
Missing FROM clause.
Unable to parse query text.
> можно поработать на стажировке за нихуя удаленно
Ты главное фотку индуса не забудь к профилю по поиску работы приделать, иначе не возьмут.
Уверен, что ты злой человек.
> Console.WriteLine(i + ":\t" + array);
Что он у тебя вообще выводит? array
да-да, слоупок, только зашел
А решарпер он вообще нужен? Сильно облегчает работу? Я вообще нихуя не программист, а админ. Мне шарп очень сильно полюбился, и поэтому я на нём клепаю много разной хуйни себе (и юзерам) для автоматизации и облегчения работы работаю на радиостанции, у нас тут плейлисты, логи выходов/невыходов и прочая хрень, которую обрабатывать надо. Последний раз вон даже add-in для экселя сделал. Сижу на голой 2008 студии и вообще не парюсь.
> он сгенерировал
Что значит "сгенерировал"? Ты можешь юзать asp.net как бэкэнд (равно как и java-сервлеты, php или что-то ещё подобное), но саму игру тебе писать всё равно придётся.
>add-in для экселя сделал
Ничоси ты админ. Вообще, решарпер не нужен, но с ним гораздо проще, вместо написания кода можно нажимать ctrl+space и alt+enter, и буквы сами на экране появляются.
Уточню вопрос... Можно ли средствами asp.net выводить интерактивное анимированное содержимое в объеме достаточном для не очень сложной 2Д игры?
Средствами asp.net можно выводить статичный html, для интерактивности и анимированности тебе нужно что-нибудь, что исполняется в браузере.
Ясно, вопрос закрыт.
И спасибо.
Нет, стой, ещё один маленький вопрос. Средствами asp.net нельзя написать типа "вывести кнопку/квадрат/картинку с ID №1 с текстом "Нажми меня", и событием, что бы при нажатии на неё приходил ответ на сервер что пользователь с такими то куками нажал c ID №1", при этом asp.net сгенерировал бы хтмл страницу, на которой был бы скрипт js который бы это делал?
Сдаётся мне, ты вообще не понимаешь, что такое asp.net, и что такое js, и в чём вообще различие между нии.
я понимаю что такое js (немного, пол учебника прочитал), а вот что такое asp.net - не понимаю. Поэтому разбираюсь, стоит ли мне его учить (так как я немного знаю C#), что бы решить мою задачу или не тратить время.
Ты можешь сделать страницу с кнопкой, при нажатии на которую, запрос пойдет на сервер и тебе вернется новая страница, на которой написано что ты пидор
Ясно, понятно. Спасибо.
А ты нет.
То что нужно, братишка, я просто не знал об этой хуйне. А есть такое же, только для элемента? Чтоб объекты класса Weapon, WeaponDirect и тд будут возвращать тру, остальные фолс, if (i.GetType() == typeof(Weapon)) , только веапоны в переборе пропускает, а надо еще и наследники.
>if (i.GetType() == typeof(Weapon))
Хуйню какую то написал. Вот короче
https://dotnetfiddle.net/HqgpEL
if ((definiteEnum)someInteger).HasFlag(definiteEnum.asd))
dosmth
а вот как это делать с неопределённым типом?
Тип у меня заранее известен, и я знаю, что это enum (ну вернее сделал так, что ничем кроме энума это быть не может). Как мне получить static public методы у неизвестного типа, заданного объектом типа Type, если я знаю наверняка, что у него есть метод HasFlag(Enum value)? Мне надо получить характерные только для этого типа атрибуты, какетоблятьсделать? Я уже в штаны сру просто как конь ебаный помогите спасите звоните в скорую
Ладно, отбой. Вроде придумал.
>foreach (UsableItem i in inventory.OfType<UsableItem>())
А что тут? Тут нихуя. Ну вот получили список <UsableItem>, а теперь нужно их поставить в слот, а тип слота неизвестный, тип слота к примеру<Staff>, но ты не знаешь что <Staff> это <Staff>, как узнать какого класса слот(переменная)?И после того как узнали, попробовать преобразовать <UsableItem> в <Staff> ?
НЕИЗВЕСТНО var;
foreach (UsableItem i in inventory.OfType<НЕИЗВЕСТНО>())
Хули оно у тебя неизвестно? Ты не знаешь какие классы оружия создавал или что? Я твою мысль никак уловить не могу.
Не, ну я вообще, для общего развития спрашиваю, разве не может быть так что тип переменной может быть неизвестен? Или как-то динамически изменяется что в итоге сам не знаешь что там может быть.
Visitor pattern
Ну потом просто почитаешь, что добавили в 4.5 - 4.6, типа async/await и все.
хотя когда я не работал, то тоже не особо кодил, хуй знает как меня такого дауна взяли, лол.
Так, с этим пока хуй с ним. Сделал кастом контрол, который унаследовал от ComboBox'a. Чому он не может не отображаться нивкакую на окне, если всякой добавочной логики минимум? То есть вот прям вообще нихуя: создал просто кастом контрол через мастера VS, в XAML'е выкладываю его на окно, а он нихуя, пустой. ЧЯДНТ?
Собсна, проблема "Драч, помогай. Что за хуйня с этими dependencyproperty в wpf? Сделал кастомный контрол для DataGridTemplateColumn, дак вот, коллбэки вызываются каждый раз при появлении/сбросе фокуса на/с столбце, хотя изменений, на которые должны реагировать эти коллбэки, не происходит.
" так и не решена. я чёт вообще в ахуе, при повторной фокусировке на контрол в дататемплейт коламне конструктор кастомного контрола вызывается каждый раз, пиздецнахуй. как это лечить?
Может мне кто-то помочь , готов заплатить немношк, если еще поясните как это сделать?
В общем, есть сайт по генерации лабиринтов http://www.mazegenerator.net/
Я написал небольшую прогу консольную, которая пнгшный файл с изображением лабиринта, полученная с этого сайта генерится в лабиринт в моей игре.
Потом этот самый лабиринт я использую в игре, сделанной на юнити.
Собственно вопрос. Как мне в программе отправить запрос за получение и сохранить картинку?
Прошу, помогите.
Устанавливаешь httpfox (или какое-нибудь другое дополнения для отслеживания запросов), запускаешь его, после чего генерируешь лабиринт. В списке появляется пост-запрос, который тебе нужен. Смотришь на его содержимое. А как отправить пост-запрос с нужными данными и обработать ответ с помощью кода, я думаю, ты сможешь загуглить.
Вроде все правильно делаю, не?
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; }
}
да я макака
нет, неправильно
тот вариант консоле.врайтлайн, который ты взял, использует форматированные строки
>крайне поверхностно
>полный гайд по сисярпу, охуенный гайд по аспнету, потрясающий гайд по ксамарину
Ты на сайт заходил хоть?
ясен пень, что заходил
но если это все охуенные для тебя гайды, то я даж не знаю. для того, чтобы понять что и зачем - да. для того, чтобы сделать что-то мало-мальски серьезное - не смеши. про ксамарин я не итал, посему не имею мнения, однако, подозреваю, там все так же.
> крайне поверхностно
хотя да, с "крайне" я перегнул, признаю
вот что действительно, что я оттуда вынес - так это знания по WPF. и то потому, что другие источники мне ранее было читать лень/неинтересно
>наследованием в лоб в таких случаях ты упрешься в тупик достатощно быстро, что ты и сделал уже
А как не в лоб?
вот я смотрю в чей-то код, а там var askjfhskdjghksjhdv = 5. ну, канеш, это что-то значит в расшифровке (либо кошка по клавиатуре прошлась), но совсем не очевидно.
у некоторых пул-реквесты закрывались из-за того, что переменная названа неочевидно/не в соответствии с выполняемым действием. такшо нехуй лениться, если это не пет-проджект
ленится не нужно, только каждую_переменную тоже не стоит так называть, кроме того есть еще худо-бедно общепринятые сокращения, типа i18n
Если класс знает про своего наследника, то это нормально или нет?
Я хуево объясняю, но это что-то вроде: у нас есть классы A и B:A и в A есть свойство типа B.
Скорее всего, ты не до конца знаешь, какие возможности предоставляет наследование и полиморфизм. Сформулируй задачу конкретно.
https://github.com/ppy/osu-framework/blob/master/osu.Framework/Graphics/Drawable.cs
Вот тут в классе есть:
Свойство "public Container Parent { get; set; }"
Метод "internal void ChangeParent(Container parent)"
Container это класс производный от Drawable. Это же плохо и так нельзя делать?
крякнул А, ну это GUI похоже. В гуи да, такое применяется и часто, типа чтоб при закрытии основного контейнера закрывались дочерние и типа того.
камент написать не впадлу, а назвать переменную изначально развернуто - впадлу
ты же понимаешь, что это неудобно. Нужно или умную иде держать чтобы комментарии в рантайме показывала, или переходить по имени переменной к её декларации. А что если переменных будет не 1 штука, а сотня, раскиданная по десятку неймспейсов?
пикрелейтед - иллюстрации того, что я пытался сформировать словами.
второй пик адекватен хотя бы потому, что отсутствует почти тотальное дублирование кода
а вопроса я так и не понял :(
Ну типа в первом варианте (v) не будет лишней проверки в каждой итерации, потому что поведение определено ещё до входа в цикл. А во втором случае есть дополнительная проверка в каждой итерации для определения поведения блока цикла. Мне показалось, что при большом количестве итераций лишняя проверка может повлиять на производительность. Или проверить байт это как два пальца обоссать даже на 101010
тогда тебе все варианты не подходят. лучше (эффективней) вынести if (E.HasFlag) за пределы foreach. т.к. я перенабираю твой кiд со скрина, я подзаебался пытаться исправлять, посему сам
Но как он вынесет этот if за пределы foreach, если ему надо проверить всю коллекцию Items этим if? Или не надо?
Если вынести if (E.HasFlag) за foreach, то foreach уже и не нужен будет. Я вот никак не могу уловить ход твоих мыслей.
А всё, нашёл решение.
ну, сам блок foreach там будет использоваться неявно. можно прибегнуть и к его помощи непосредственно, но это будет аналогичное громоздкое решение
вообще мыслью было вынесение if-а за блок, где производится операция с коллекцией. то, на что этот блок уже будет изменен - дело десятое
Объясните мне зачем ему enum айтемов если их можно в обычную коллекцию типа листа запихнуть? Я слишком нуб и чего то не понимаю?
шобы потом сделать LiB.LP.SelectedItems.AddRange
опять таки, на любителя (хотя в случае с List-ом было бы эффективней)
Если нужна разная обработка, в зависимости от того, берём один или много элементов, можно так сделать.
https://dotnetfiddle.net/etu5Gg
Если в кратце, пикрелейтед с моего первого вопроса - часть контрола в WPF, в который загружаются перечисления об определённом объекте. (Типа перечисления районов/этажей/деталей объекта, которые поддаются перечислению и их количество ограничено) Благодаря этому в БД хранится лишь интовое число, а при загрузке данных в клиентское приложение интовое число преобразуется в флаговый энум, который парсится, и в контроле (листбокс в popup'е, элементы которого либо радиобаттон либо чекбокс, в зависимости от флага UseAsFlaggedEnum, который определяется в зависимости от заказываемой таблицы), во первых, в список предметов добавляются все элементы перечисления, и во вторых, отмечаются соответствующие столбцу,строке в БД.
>>849451
>>849469
Да мне не нужна была конкретная реализация. Я остановился на (S) варианте, но мне просто чё то стало интересно, допустимо ли с этической точки зрения плодить код ради мельчайшего улучшения производительности, который в моём случае и заметен не будет, ибо один хуй энумы интовые и больше 63 (127?) сёравно хуй засунешь.
>Благодаря этому в БД хранится лишь интовое число
Щито? Захуй тебе тогда бд вообще, если по сути вся инфа хранится у клиента? Что за хуйню я только что прочитал?
У клиента просто инструкции по отображению инфы. int вместо varchar(100500) на сервере, чтобы меньше байт передавалось с сервера клиенту и обратно.
Ты так хуево все объяснил, что я сначала подумал что все расчеты проводятся на стороне клиента, а на сервере одни инты в бд хранятся за каким то хуем.
Уметь писать нормальный код под имеющуюся задачу без решарпера. Всё.
>Читаю Троелсена
Да хоть Троллсена. Один хрен не поможет. Учись на реальных задачах, книги не нужны.
Читаю чтобы систематизировать знания и различать String и string, ага. Практикой давно занимаюсь: ищу/ставлю себе задачу и делаю
>это требования к мидлу
Проиграл. В голос.
>>849525
>и различать String и string, ага
Для всего этого есть MSDN + StyleCop + встроенные средства VS 2015, а не книги, хуй пойми когда написанные.
Джун который может самостоятельно что то писать под имеющуюся задачу и которому не нужен наставник это уже не джун вовсе. Что за хуйню ты городишь?
Именно он и есть. Пиздец я бы таких как ты палками пиздил - уеба с опытом и умением работы прибедняется и идет на джуна, хотя знаний и опыта на мидла, а настоящим джунам, которым этот опыт работы в настоящей компании очень нужен, остается только хуй сосать.
>Именно он и есть
Ну ок, я думал ты пошутил так.
>Пиздец я бы таких как ты палками пиздил
Не стоит, я у джунов хлеб не забираю и не занимаю их должности.
Короче, самое главное что требуется от джуна - обучаемость. К джуну приставляется мидл в качестве наставника и тот его обучает и дает задания.
>обучаемость
Важнейшее качество, соглашусь.
Короче, >>849509, если ты обучаемый - работу в любом случае найдёшь. Могут пару раз завалить на собеседованиях по поводу какой-то несусветной хуиты, но рано или поздно найдутся те, кто тебя возьмёт на работу.
хех, помнится, постучалась ко мне рекрутерша с требованием к джуну - не менее 1.5 года коммерческой разработки. даже не представляю за кого они там держат действительно неопытных товарищей
Немного успокоили, спасибо.
orderby считается одним проходом?
чот я не понял, как с помощью Where и Max ты выберешь инстансы с максимальными значениями чего-либо?
Select я в каком-то упоротом варианте, возможно, смогу представить
Как же я тебя люблю, что за вэрэ и селект? Ладно пойду гуглиться.
>orderby считается одним проходом?
Не знаю, браток, мне казалось есть простое решение, нажать кнопку и всё готово, а нихуя
https://dotnetfiddle.net/PDGHkq
что я должен указать, дабы все получилось по свойству A?
>>849582
OrderByDescending(item => item.Prop).Take(count);
так непросто?
> вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта
речь до сих пор идет только об этом
Блядь, OrderBy это не то же самое, что выбирать по максимальному значению свойства.
Если я тебя правильно понял, замени строку 9 в своём фиддле на
foreach (var item in GetAzaza().OrderByDescending(i => i.A))
А иначе точнее объясняй задачу.
да еб же твою мать. человек спрашивает:
> как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта
ты (или не ты, мне похуй) отвечаешь:
> Where/Select + Max
я, в недоумении, как же ты собрался оперировать сими методами в данной задаче. ты же, блять, сводишь все к Order
а если последний элемент в списке, как выяснится, будет самым весомым, ты вернешь List<> с одним этим элементом? я чет не догоню
Ты идиот или прикидываешься? Селектишь итемы (и свойства в массивы если нужно), дальше смотришь что там по Max в массивах получается, возвращаешь искомое значение.
Нахуй ты тогда здесь OrderBy в фиддле приплёл? Выражайся яснее.
На 49 строке мы обнуляем возвращаемый массив - это произойдёт в том случае, если текущий элемент весомее тех, что хранятся в массиве.
> ты вернешь List<> с одним этим элементом?
Да.
Сортируешь по величине и вытаскиваешь первые два.
>ну а в чем фишка если мне, допустим, надо два объекта?
Он вернёт два объекта, если они равны по заданному полю и это поле максимальное для твоего массива.
человек описал ее выше
я привел для наглядности фиддл с указанием готовых объектов
как мне, используя Where/Select/Max в моем фиддле отобрать несколько инстансов с максимальными значениями свойства А?
var sortedList = listOfSomeClasses.OrderBy(r => r.SomeValue).Reverse();
И вытягиваешь столько максимальных значений, сколько тебе нужно.
Поясните, плиз, чем мой вариант не устраивает. Или я неправильно понял, что ему нужно?
Но ведь подобного метода нету ни в стандартной поставке, ни в популярных либах.
Тем более, если требованием является сделать это за один заход, то цепочка из операторов из Where/Select/Max здесь явно не подойдёт.
ты это указал как решение задачи, которого (решения) я не понял. во что я сейчас и пытаюсь въехать
охебанаврот
Думаю под одним заходом он имел ввиду то, что нужно все записать одной строчкой, а не писать простыню с новыми методами, классами и прочим.
Генерируется 100 объектов. У каждого объекта поле Prop в диапазоне от 0 до 29. Потом берутся объекты с максимальным полем и выводятся.
Если уменьшить число объектов или поменять верхнюю границу значения поля Prop, то тогда результат будет меняться.
Откуда 5 в Take берётся? Разве ему нужно не все объекты, у которых заданное поле максимальное?
> Разве ему нужно не все объекты, у которых заданное поле максимальное?
> Как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта
Я слепой мудак, прошу прощения. Несколько - это сколько? Все, или какое-то константное значение?
надо как-то проверить, чтобы все элементы одного были в другом. т.е. если в одном две единицы, то и в другом должно тоже быть 2 единицы.
Как это сделать?
хранить объекты "соответствий" элементов массивов и при нахождении пары проверять, дабы этот индекс не был использован ранее. хотя так се решение, имхо
щито тебе не нравится?
Данный кусок кода ставит ограничение для обобщённого элемента. В данном случае мы говорим, что тип TR должен реализовывать интерфейс IComparable<TR>
Интерфейс IComparable предоставляет метод CompareTo для сравнения двух элементов (дата, число и т.п.). Если не указывать это ограничение, то в обобщённом методе нельзя будет вызвать метод CompareTo, т.к. не у любого объекта он доступен, а только у реализующих указанный интерфейс.
http://professorweb.ru/my/csharp/charp_theory/level11/11_3.php
Спасибо, а там ещё написано, что датаконтекст можно поставить в разметке, как это сделать?
<Window.Resources>
<local:aViewModel x:key=aVM>
</Window.Resources>
<Grid DataContext="{Static Resource aVM}">
</Grid>
если view model с параметром в конструкторе, то придется прибегнуть к ObjectDataProvider
Также размещаешь в ресурсах, указываешь тип объекта, параметры конструктора и чё то там ещё, и также в DataContext грида пихаешь
Например я заполнил List данными и теперь мне нужно с его данными создать файл с классом по шаблону.
Что тут непонятного. На стороннем ресурсе есть список, который нужен мне в виде физического класса в одном проекте.
Т.е я не хочу парсить это в рантайме, мне проще иметь его в виде статического класса с List или Dictionary. Можно ли как-то его сгенерировать из шаблона в ооп стиле, не хочется билдить это строками, без форматирования. Или может билдить строками и пропустить через утилиту форматирования, но мб есть другой путь.
Да, данных много, наверно даже заюзаю lazy.
Ну в общем сделал через StringBuilder, вышло кучеряво.
Тебе просто данные захардкодить? T4 шаблоны. Можешь просто файл с данными рядом с собой положить и не выебываться
Тут просто данные периодически обновляются, не часто, но все же. И они на стороннем ресурсе.
Так тем более положи в файл, потом прост заменять его будешь, вместо перекомпиляции.
Так жеж это лишняя работа.
Если ты про декомпиляцию сборки то ilspy с плагином может декомпилировать, так и просто поправить сборку.
Инструменты разработчика есть в любом браузере, даже ничего устанавливать не нужно
дык на лету можно даже инжектировать инструкции/данные
Аноны, есть такая проблема: есть файл на сетевой шаре, файл постоянно дописывается, мне надо новые строки из него читать. Вроде бы хуйня, но не получается. Открываю через FileStream, выставляю FileShare.ReadWrite, но таки третья программа в этот момент не может открыть файл на чтение, а выдает только "permission denied". Как-то победить можно?
Эта константа определяет, как файл шарится же. https://msdn.microsoft.com/ru-ru/library/system.io.fileshare(v=vs.110).aspx
А файл я конечно в режиме чтения открываю.
сикуль
А что там учить в ненси это довольно таки простой микрофреймворк, на котором можно быстро что-нибудь запилить.
Смотря какие у тебя цели, на работе тебе будет нужен 4ый и возможно если новый проект то core.
Для себя я уже решил что буду писать на core и старые проекты на ненси тоже переведу на новый асп. Он тоже довольно-таки прост в освоении.
Аноны, ну есть какое-то решение? Открываю по всем инструкциям, не блокируя файл, и всё равно другая программа открыть его не может.
using (FileStream fileStream = new FileStream(plFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
ПК, на котором выполняется третья программа, имеет доступ к чтению файла? Имею ввиду, ОС позволяет?
Да, имеет. Если мою программу закрыть, то доступ на третьем ПК начинает работать
Пытался навернуть "Объектно-ориентированные мышление" от Вайсфельда - будто говна поел, еще и большинство примеров на ломаной джаве.
да это с опыт приходит, анон.
так, если хочешь, то паттерны проектирования хорошо мозги вправляют еще.
> Создал проект на Нэнси. Кроме основного файла программы добавил отдельный файл с роутером и рандомным названием файла и класса, но стандартным неймспейсом. И он... работает! Как? Откуда программа узнала об этом классе? Она что, автоматически парсит все .cs файлы? Их не нужно подключить вручную? Где можно прочитать про принцип работы этого?
Там небось класс или метод атрибутами декорируются?
Зачем вообще начиеающим читать что-то кроме Трэлсона? Вы же не про цене выбираете, все равно все бесплатно.
Разница в async await (важно), строчной интерполяции, дефолтных значения свойств и прочего с# 6 сахара(не очень важно)
начиная с c# 5.0 завезли async и await, (в 6,0 ещё и их поддержку в catch-finally блоках), что хоть и является лишь синтаксическим сахаром, но поможет разгрузить код от ебанутых конструкций типа
Task<int> A = new Task(...);
Task B = A.ContinueWith(()=>{a = A.Rezult();})... ну и прочий приятный синтаксический сахар, который может сделать код более наглядным. Оператор nameof() может пригодится в WPF при использовании биндингов.
Вот тебе и ответ
А я ещё вот такой вариант методом тыка нашёл. Если в MainWindow есть ссылка на объект, из которого надо брать данные (напр., myObject со свойством myProperty), то можно написать DataContext="this.myObject", и потом в контроле (напр., текстбоксе) вот так: Text="{Binding Path=MyProperty, UpdateSourceTrigger=PropertyChanged}".
А со статик ресурсом будет лучше (если да, то чем), или без разницы?
с точки зрения производительности - без разницы. возможно, даже лучше все контролы и вообще ебаное всё делать в коде, ибо код КЗАМЛа конвертируется в БАМЛ (бинарное представление), а потом вроде прям при запуске парсится и генерируются контролы. но с другой стороны, похоже разница в скорости милипиздронческая будет, так что рекомендуется весь UI код писать в кзамле, просто потому что это визуально разделяет бизнес логику и представление (паттерн MVVM все дела ебала). Типа, если не впихивать всё в кзамл, то у тебя помимо this.DataContext = myObject; ещё потом строчка появится, которую можно было в кзамле прописать, потом ещё и ещё и в итоге у тебя 1/4 c# кода может быть вынесена в кзамле, а вместо этого ты прокручиваешь его каждый раз, когда тебе нужно изменить/вспомнить как работает бизнес логика.
>>850719
я знаю про разницу 4.0 и всех остальных версий. глобально разница-то в чем? TPL есть и в четвертом, nameof заменяется атрибутом типа CallerNameAttribute, если правильно помню. остальной сахар всего-лишь сахар. канеш писать на новой версии всегда приятней, не спорю. но в обучении-то какой принципиальный момент есть?
Направляемый наставлениями премудрых волхвов создал клинопись рабочую с использованием mssql да на windows forms. И всё бы ничего, но решимостью одержимый оптимизировать код натолкнулся на темную область в своем разуме.
На одной из скрижалей надобно мне одну и ту же надпись в несколько label'ов залить, поступил по-древлянски сначала, присвоив каждому эту надпись вручную, но должно же это как-то и слаще делаться? Или ошибаюсь я?
можешь присвоить лейбмлам тег уникальный, и потом делаешь что нибудь типа
foreach(Control C in this.Controls)
if (C is Label && C.Tag=="uniqueTag")
((Label)C).Text="newtext";
Хм. Ниработаит. Почему-то проверяет кнопки, лол. Напрямую
label1.Text = label2.Tag.
втыкается, а вот почему он на кнопках цикл гонит.
Пробовал в условии ставить Label C in Controls, сразу же исключение вываливается - "невозможно батон к лэйблу привести". Смешно чота
Прости, но я именно так и делал сначала, потом уже стал экспериментировать.
Тут видимо надо получать коллекцию только лэйблов для начала, а потом уже по нему гонять с проверкой.
Спасибо еще раз
C#5 4.5framework*
>>850344
В итоге так и не получилось у меня это победить. Пришлось городить костыли: мониторю дату изменения файла, и в случае изменения читаю весь файл с последней измененной строки (её тоже запоминаю). Благо, единственная прога, которая пишет в файл, только добавляет новые строки, ничего не удаляя. Но это как-то через жопу, и мне не нравится, если честно.
> в логику foreach не вложена проверка допустимости приведения типа
Если бы это было так, то это был бы не язык программирования, а сплошной анал-карнавал.
>в 2D игрушке
бери гамак и лепи. а если любишь шарпы, то юнети и вперед.
иди в /gd/, там найдешь тред юнетей.
еще там один доброанон выложил цикл уроков по юнете для самых маленькихна ютабе ищи level gd. за выходные осилишь.
Не понял, что тебе не нравится. Оно и будет проверять кнопки. Цикл пройдётся по всем контролам в форме, но вставит текст только лэйблам с указанным тегом.
Мне всё нравится. Я уже отписался. Кстати, во многом и допёрло, что дело в групбоксе, из-за того, что кнопки всплывали
Мне нужно разобраться с готовым open source проектом на самодельном фреймворке. Так что юнити мне не нужно от слова совсем.
имею ввиду как убрать эту ебучую точность, когда вместо 0 получается 0.0099999999999Е-17?
Ну ты левую и правую границы и шаг как получаешь? double.parse? Вот сделай decimal.parse.
О, спасибо. И вот ещё вопрос. Допустим есть приложение, которое для своих нужд создаёт дочерние процессы. Если основной процесс завершает работу аварийно, как пиздануть все дочерние процессы?
Не понял, метод можно напрамую подписывать на событие?
Зачем тогда во всех книгах описывают это только с помощью делегатов? Как я вообще до этого должен был дойти?
byte res = new byte[256];
for(byte i = 0; i <= 255; i++)
{
res = i;
}
res=i
Сука сраный ондроед, ну, думаю, все поняли
в прошлом треде такой же вопрос был вроде. у байта максимальное значение = 255, потом переполнение, в результате (если на 1) которого число становится = 256%256=0, что и происходит в твоём случае. сделай условие <255
но после каждого цикла остается ~60-80 мегабайт памяти, занятой System.Byte[]. прошерстя профайлером, убедился, что все их корни идут от тех самых стримов, сериализаторов, коннэкторов и всей прочей шешуры, которых уже и след давно простыл
суть то проблемы, что приложение активно выделяет память под себя, пока не упрется в определенного рода потолок, который на разных энвайрментах разнится от сотен мб до единиц гигабайт, ну и уж начинается "плавание" вокруг этого предела
гуглы ничего адекватнее using/Dispose не говорят. пробовал и обнулять все объекты по выходу из цикла, и вызывать GC.Collect (хотя бы для того, чтобы оценить потенциальный результат). но все, к чему привело - уменьшение скорости выделения памяти под себя. т.е. проблема не ушла, но стала совсем на писечку менее явной. есть один "пример", который, используя винАПИ, принудительно делает deallocate памяти под процесс, но это во-первых так себе, а во-вторых имеет такую проблему, что я не знаю, сколько реально памяти можно сожрать
вообще, есть методы борьбы с подобными процессами? в частности, как определить, почему мусор, являющийся мусором, не умирает. а если мусором не является (в чем я сомневаюсь ибо в конце концов процесс съедания памяти имеет предел), то что его держит в живых?
а это не делегат?
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.
тебе что непонятно-то? как события использовать на практике или как оно в машинный код переводится? По-человечески объясни. Я нуб, если что.
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;
//дописываешь в файл залупу
}
Начнем с того, что .vs и packages не нужно комитить.
Зачем тебе dynamic? Почему post, если это get?
>метод можно напрамую подписывать на событие?
>Зачем тогда во всех книгах описывают это только с помощью делегатов?
В книге написано, что - нет.
Хотя судя по синтаксису и логике работы - вполне. Поэтому я и застопорился, либо я чего-то не догоняю, либо в книгах странно объясняют.
Алсо, как таким образом (подпиской напрямую) передавать ссылку на вызывающий объект?
>>852325
давайте разберёмся в терминологии для начала, шо такое "подписка напрямую" и чем она отличается от такой же, только в обход?
Хмм. Надеялся, что вопрос будет понятен. Надо подумать, как сформулировать вопрос правильно.
Есть, например, форма с радиобаттонами.
Есть событие 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 пустой статический конструктор?
начнем с того, что "стандартный" делегат - это такой же тип делегата, как и все остальные, ничем не менее стандартные как RoutedEventHandler, MouseRventHandler и т.д.
как тебе подписаться на событие - решай сам: через new HuiPizdaDelegate, через += Method, через +=(s,e)=>{ }
вот, почитай крч: https://m.habrahabr.ru/post/198694/
>>852364
тебя, надеюсь, не реализация синглтона смущает? пустой конструктор - это, скорее всего, архаизм. когда-то там чота было, возможно даже инициализация самого синглтона, а потом перекочевала куда надо. в любом случае наличие пустого статического конструктора плоды не делает и перфоманс не поломает.
само вложение классов, вероятней всего, связано с попыткой разделения зависимостей/функционала. все дело в том, что за функционал населяет оба класса, и, самое главное, какова их история. может быть, если копнуть за годы назад, окажется, что все было по-другому и раньше было лучше
>Перво-наперво: события (event) не являются экземплярами делегатов. А теперь снова: События — это НЕ экземпляры делегатов.
Ну, что скажешь?
оо, ну я теперь понял твой вопрос
принципиально - да, конечно, делегат != событие (так же как класс != структура, enum != int/long), чем я, наверное, смутил тебя децл.
если совсем сгладить все - событие можно представить как частную форму делегата, но, опять таки, именно так и воспринимать сее не стОит
Не знал про сигнлтоны, спасибо что, прояснил
Шарпаны, поясните, неймспейс Windows.Devices.Gpio можно использовать только для windows IoT?
1 - пикрелейтед
2 - хз, насколько я знаю, программы сисярпа запускаются в виртуальной машине, которая, рискну предположить, сама берётся из .net framework'a.
на хабре.
Task Scheduler.
http://ideone.com/JGo8qY
Точно, на каждый экземпляр диска же запускается поиск.
И еще вопрос по ошибкам с доступом к папкам, как его обойти?
Спасибо
public Task GetAsync(string name, out Texture targetVariable)
{
var task = Task.Run(() => Get(name)).
ContinueWith(t =>
{
targetVariable = t.Result;
});
backgroundLoadingTasks.Add(task);
return task;
}
Потому что для меня там все китайская грамота :-(
Файл проверил, галочек онли рид на нем не стоит.
Ну зато увидишь где у теб падает. Значит try/catch нужно еще и здесь можель попробовать запускать от админа свое приложение, может тогда доступ будет
памушта после запуска эвейт управление передается вызывающему коду, где ожидается, что реф/аут будут инициализированы, что не является гарантией
Dotnetcademy, но там есть баг, отчего один урок нельзя пройти на 100%. В остальном годнота.
мимокрокоди дальше
сильно вероятно, что код, потребляющий эту таску, будет с эвэйт. даже если не так, то конпелятор совершенно справедливо предполагает, щито метод может/будет выполняться асинхронно
ну почему же?
Ок, спасибо.
Я думаю, я разобрался, и мне кажется ты не совсем прав.
Делегат, в контексте события, нужен толькр для того, чтобы определить сигнатуру методов, которые могут подписаться на событие.
События, которые включены в среду я использую SharpDevelop, например:
gridView.SelectionChanged
radioButton.CheckedChanged
уже определены с помощью делегата EventHandler. В этом можно убедиться, если посмотреть на код этих событий.
Поэтому, метод можно напрямую подписать на события, которые поставляются со средой.
Если использовать свои какие-то события - придется использовать делегат для определения сигнатуры методов.
> что курить для графики на C#
> C#
Ничего там нет. Нормальное 2D рисование и C# - понятия практически несовместимые (не, ну можешь конечно рисовать через GDI, только никому не рассказывай).
А с учётом того, что ты и C# не знаешь (раз тебе требуются уроки с твоего пика), то выкатывайся оттуда и закатывайся на C++. Программирование под DirectX начиная с 10.1 очень сильно упростили, ищи мануалы под Direct2D, и вперёд.
Угу, поставил два катча на занятые и недоступные и вроде бы заработало. Спасибо.
Проблема в том, что я дочитываю Троэлсена и понемного программирую разные програмки уровня laba1, и совершенно не знаю что и в каком порядке учить.
Если что, в вебе вообще не шарю, так что подскажите плиз
Полный трєдж специалистов, никто не может сказать или я на правильном пути и похвалить?
От того, что ты используешь SharpDevelop события по другому работать не начниают.Почитай еще.
Да банально, понадобилось мне на лету подредактировать PEB запущенного процесса другой программы. Она была криво написана, и в какой-то момент работы портила его сама себе. Вот делал минификс для этого.
gzip же сжимает данные
Когда ты делаешь
> req.Headers.Set("Accept-Encoding", "gzip, deflate, br")
то ты говоришь удаленному серверу: мол, я могу и сжатые данные принять. Вот он тебе и шлёт сжатые. А твой HttpWebRequest по умолчанию их расжимать не умеет.
ну во всем не выиграешь. выбирай, что тебе важнее: нагрузка на трафик плюс, возможно, дополнительные расходы на unmanaged-память, либо нагрузка на проц в лице декодирования сообщения
Пробовал так:
Parallel.ForEach (uri, async (x) => {
y = await Processing(x);
z = await Processing(y);
Console.WriteLine(z);
})
Console.Wrilteline(«цикл завершён»);
Но задача считается выполненной на первом-же awaitе. И первой записью в консоли будет «цикл завершён».
Двачую, с DirectX и С++ даже в моём мухосранске были вакансии в геймдев.
C# больше используется для серверного и декстопного по финансового сектора. Хотя, когда проходили в универе мы делали подобие пейнта, это теоретически возможно. Уроки с пика >>853417 годные.
чё тебе греть? все деньги в asp.net. десктоп сисярпа в лице WPF и winforms умирает перерождается в веб и мобильных устройствах. Unity имхо годится для 2д индюшатины, но это на любителя.
Parallel.ForEach был бы нужен, если бы у тебя были блокирующие методы, а у тебя асинхронная кашка, к ней можно подойти сбоку
http://pastebin.com/wcXBb91D
Так троелсен/албахари/скит/рихтер вроде все есть. Но читать всё равно надо на ангельском, а то посоны на двощах засмеют.
.AsParallel().ToArray() смеха ради
Есть стринг с двоичным числом как мне его записать в массив?(нужно сделать из прямого кода обратный)
стринг и есть массив символов. (ну или класс с индексатором, ссылающемся на List<char> а может и вообще char[], не рефлектил
)
на ввод подаётся число в двоичном представлении, или ты парсишь интовое число в 10 СС и загоняешь его побитово в строку?
Спасибо! Работает как надо!
>>854154
Спасибо за советы, просто мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше, типа C++ это ООП, а С# это КОП который включает в себя ООП, а еще он легче. По поводу DirectX я сразу загуглил есть ли он под .NET и нашел SlimDX который вроде полный аналог. Надо короче еще посидеть подумать, поискать больше разной инфы.
> SlimDX
Он в разработке до сих пор, и неизвестно, когда допилят. А в C++ всё есть здесь и сейчас.
> мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше
Мужичок твой говорит, да недоговаривает. Не надо его слушать, он походу сам не особо понимает, что к чему. Потрать сам время, и выясни различия этих языков. Тогда тебе станет понятно, почему тебе для графики рекомендуют C++, а не C#.
Там где directx, обычно требуется высокая скорость, при прочих равных, c++ будет быстрее шарпа, плюс, вроде как, во время сборки мусора остальные рабочие потоки приостанавливаются, в обычном софте будет незаметно, но для графы критично
EF и sql
winforms с его picturebox'ом и обработкой для него событий mouseup, mousedown, mousemove. wpf с его InkCanvas'ом.
Ты не понял. Я уже сделал это, теперь мне нужно разбить этот стринг по разрядно
а в твоей ситуации я бы делил строку на подмассивы по '|', потом присваивал каждому элементу массиву строк его же, только приведённому к int с NumberStyle.Binary, обработанного битовым оператором отрицания "~", и снова взятому через ToString()
Ебать, как сложно, что я ничего не понял.
а,ты знаешь про атрибуты. тогда хз, в чем твой вопрос
Чем тебе Шилдт не угодил?
EventHandler это тип делегата.
gridView.SelectionChanged и radioButton.CheckedChanged это объекты делегата.
Единственное отличие обычного объекта делегата от объекта с припиской event — это то, что со вторым за пределами класса, в котором он объявлен, можно делать только 2 операции: += и -=.
Порядок действия:
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?
Не единственное: event можно пихать в интерфейс, чего не сделать с делегатом
Коннектор и плагин для студии установлены, они шли вместе с MySQL
я бы попробовал держать файл xml на ЖД, потом через какой нибудь xml reader считывать его в DataTable из ADO.net (а им точно можно xml скармливать, правда, не помню как.) а можно и поискать, как его прям в ObservableCollection захуячить (для этого придётся Model-классы создавать), ну и потом к itemsSource'ам listView присваивать полученный datatable или observablecollection.
>Кто-нибудь уже пилит что-нибудь на .Net core?
Юзаю еще с первых беток.
Разрабатываю в VisualStudioCode на своем макбуке.
В основном пилю бэкенды для своих мобильных приложений и деплою в docker под linux.
Для базы данных юзаю Postgress через EF Core.
Получается в разы дешевле чем возится с виндоус серверами (это важно тк приложения opensource).
Сейчас жду когда Xamarin переведут на CoreCLR, вот тогда прикольно будет.
А еще прикольно будет когда добавят сборку нативных бинарников,
можно будет рассылать один бинарник вообще без зависимостей на .net (как в Go).
Спасибо за ответ. Я додумался до решения. Заюзал три ObservableCollection, в общем.
Поступил в универ на заочку. Буду изучать c#. Подскажите годную книгу по данному языку для изучения с нуля.
Миллиард раз говорилось уже. Книги устаревают. Не нужно их читать. Выбирай себе реальную задачу, и разрабатывай, изучая по пути. По ключевым фичам разных версий языка можешь погуглить или почитать хабр, чтобы быть в курсе, что в языке нового (и не писать вечно под фреймворк 3.5 или даже 2, как некоторые делают).
ну хоть не 1.1
Что посоветуешь почитать/посмотреть по мобильным бэкендам на .net core?
человек, не умеющий читать, спрашивает, что прочитать
Важно что бы это работало без Visual Studio и запускалось на mono/coreclr.
Может есть какие консольные утилитки, типа как для запуска на CI сервере?
Пишу на маке под xamarin.
ну тогда могу только пожелать удачи.
Вы видите копию треда, сохраненную 4 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.