Этого треда уже нет.
Это копия, сохраненная 4 ноября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
5 Кб, 375x375
.NET THREAD #2 (C#/F#/VB) #843711 В конец треда | Веб
Тред единственной элитной платформы в мире программирования.

Шапка: https://github.com/CSharpShapka/SharpHat/wiki

(пока просто перенесена шапка из ОП-поста, в ближайшее время приведу к более-менее адекватному виду, не стесняйтесь слать свои пулл-реквесты)

Прошлый тред тонет здесь: https://2ch.hk/pr/res/824683.html (М)
#2 #843719
Как указать размер у незубчатого массива? У зубчатого так -

>int[,] te = new int[4,8]


А у незубчатого как? Эти варианты не работают:

>int[][] te = new int[4][8]


>int[][] te = new int[4,8]

>>843725
25 Кб, 604x305
#3 #843725
>>843719
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];

>>843732
#4 #843732
>>843725
Понял, спасибо!
568 Кб, 2048x1152
4 Кб, 1366x768
#5 #843733
>>843711 (OP)
Какой маленький оп пик, я понимаю что у вас нет комплексов, но все же
5 Кб, 457x124
#6 #843749
Почему у меня в цикле выводятся лишь первые 218 элементов массива, если должно выводиться около 10000?
#7 #843767
>>843749
i <= array[array.Length - 1]
нужно
i < array.Length
>>843792>>843842
#8 #843792
>>843767
Это слишком просто

>>843749
Нюфажик, раскажи как ты вообще понимаешь смысл написанного тобой условия?
>>843842
#9 #843842
>>843792
>>843767
Я не думал, что мог обосраться с элементарным циклом. Писать код в 3 ночи было ошибкой, всем спасибо.
#10 #843844
>>843749
Так, он все равно мне в консоли выводит лишь с 9759 и до последнего элемента массива.
for (int i = 0; i <= array.Length-1; i++)
{
Console.WriteLine(i + ":\t" + array);
}
493 Кб, 1920x1080
#11 #843850
>>843557
Анон, а как ты разбираешься с большими неизвестными солюшенами?

С отдельными мелкими классами проблем нет, но я не понимаю как разобраться с большой кодовой базой в целом.
Разобраться в целом = знать какие классы есть в проекте, какие у них интерфейсы, как классы связаны между собой. Глубокое знание реализации пока не интересует.

Пробовал Code Map, легче не стало. :(
>>843971
92 Кб, 944x720
#12 #843970
Есть большой файл. Хочу считывать его строки в пределах указанных байтовых границ.

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 с побайтовым считыванием строк?
>>844025
#13 #843971
>>843850
Зачем тебе полностью видеть всю картину? Чтобы добавить функционал или что-то поправить не нужно знать как работает все приложение.
Просто беру и разматываю ты часть, которая мне нужна.
>>844041
#14 #844008
>>843844
Выводится на самом деле, просто консолька не хранит весь вывод, только последнее
34 Кб, 400x524
#16 #844041
>>843971
Я и не говорил что мне нужно.

>знать как работает все приложение.



Я просто хочу получить представление о кодовой базе продукта. Из каких классов он состоит и как они между собой связаны(т.е. глубже интерфейса изучать классы не требуется).
>>844043
#17 #844043
>>844041
Никак, идешь к тому кто знает, он тебе все рассказывает.
>>844048
#18 #844048
>>844043
Никак, идешь к тому кто знает, он тебе все рассказывает
выкладываешь тысячу денег, чтобы пришёл кто-то, и разобрался в этом пиздеце: https://www.upwork.com/job/Custom-Control-Library-WPF-using_~01eaa9761402514863/
>>844058
#19 #844058
>>844048

>Once the programmer is left


Инстант проигрыш, да и все история анекдот какой то, и нубов научи, и контрол у них с нуля, и фрилансером будь.

>Member Since Sep 8, 2016


Okay
#20 #844106
>>843711 (OP)
Спасибо за перекат, думал перекатывать вовремя и обновить/структуировать шапку, но времени катастрофически что-то не хватает. Добра, короче.
>>844111
#21 #844111
>>844106
Можно сделать скрипт для автопереката и брать текст с мастера в гите.
>>844129
#22 #844129
>>844111
Я хотел сделать скрипт для автопереката, но сейчас занят и не определился, какой язык взять. Один рубист это делал, но он бросил. Нужно сделать так, чтобы любой ОП мог добавить свой тред.
>>844141
#23 #844141
>>844129
Я могу конечно, правда это не слишком интересный проект. ОПом будет скрипт, который по достижению бамплимита будет пересоздавать тред.
>>844551
Я наверное опять хуйню сморожу, но #24 #844412
Если я работаю с одной БД MSSQL, но приложение с несколькими формами, то мне на каждой форме что ли надо заново контекст выдергивать? Или где-то его один раз открыть и потом уже по выходу из приложения закрывать? Интуитивно понимаю, что на производительности сказаться может
>>844424>>845797
#25 #844424
>>844412
ты, конечно, можешь держать соединение все время работы приложения, но правильней всего будет создавать контекст каждую транзакцию
>>844427>>845797
#26 #844427
>>844424
ага, спасибо. а это не сильно по-васянски?
>>844548>>844574
#27 #844548
>>844427
Держать соединение это по васянски. Гугли Unit of work.
>>845797
#28 #844551
>>844141
И где будет хоститься этот скрипт?
>>844624
#29 #844574
>>844427
это наоборот самое верное решение.
>>845798
#30 #844587
>>843844
В консоли так много не помещаетс, выводи в файл
#31 #844624
>>844551
У меня есть vps.
>>844679
6 Кб, 364x150
#32 #844651
Возможно ли такое, чтобы содержимое where из linq можно было подгрузить из гуя? И не просто сравнение с переменными, а как если бы это условие было бы написано в коде.
#33 #844668
>>844651
Копай в сторону expression trees
#34 #844671
>>844651
Покажи примерно что ты хочешь то, а то не понятно нихуя.
#35 #844677
>>844651
Гугли Linq.Dynamic, там можно передавать строки эквивалентные лямбдам в Linq.
Если я правильно понял вопрос.
#36 #844679
>>844624
А а капчу как распознавать? Сервисом чтоль каким?
>>845288
#37 #844683
Анон,
Как узнать на какие методы указывает делегат?
>>844712
11 Кб, 853x203
#38 #844712
>>844683
оттака
#39 #844868
Есть maskedtextbox'ы в которых заданы маски типа "0,00", заданы выражением "0.00". С формы забираю те, которые вводятся, конвертирую их в дабл, рассчитываю значения и вывожу их в другие mtb, конвертнув тустрингом.

На форме всё отображается как надо, но когда пишу полученные значения в таблицу БД вываливается ошибка формата. Причем в тех случаях только, когда одно из значений имеет нулевую целую часть.

При записи в БД конвертируется вновь в дабл текст, полученный после расчета в mtb
>>844870>>844970
#40 #844870
>>844868
Хуево, чо.
#41 #844970
>>844868
О, как она меня унизиль субханаЛЛах.

в свойстве textMaskFormat надо было include prompt указать. ибо оно значение типа 0,23 возвращало в виде _,23 где _ - это пробел.
Чтобы понять пришлось эту говносхему в консольке параллельно произучать, охуительный язык, все понятно на самом деле, даже без справочников
#42 #845032
Пиздец анон,
Я просто плачу от собственной тупости. Уже хуй знает сколько пытаюсь пройти главу с событиями. Делегаты разобрал, все вроде ясно.
Можешь подкинуть схематичное объяснение event'ов?
Как подписывать на событие, схематично с привязкой к коду.
Спасибо.
>>845034
#43 #845034
>>845032
Делегаты-то здесь и вовсе ни при чём.

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();
}
#44 #845042
ньюфаг в треде. Посоветуйте ресурсов с задачками, только не хардкорно-анальной сложности, желательно по темам чтобы были разделены.
40 Кб, 600x600
#45 #845067
>>845034

>Делегаты-то здесь и вовсе ни при чём.

#46 #845172
>>845034

>Делегаты-то здесь и вовсе ни при чём.


Правильно, я тоже на хую вертел EventHandler
#47 #845191
>>845034

Спасибо.
Объясни пожалуйста каждую строчку. Что-кого вызывает и куда указывает.
Спасибо.
>>845193>>846426
#48 #845193
>>845191

>каждую


>одна строка полезного кода


>каждую

#49 #845278
Добрался до 7.0, полистал. Туплы, readonly-классы, патерн-матчинг. Дебилов на c# насильно осчастливливают короче. Превращают в F#.

Вангуем, когда завезут констрейны? https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/generics/constraints

в 8.0? Особенно интересно будет, если зделают не уёбищные инлайн-констрены мемберов, а что-нибудь типа тайпклассов хачкеля, пусть и простеньких. 20 лет жду.
>>845287
#50 #845287
>>845278
Какого хрена они про primary-constructor забыли, обещали еще в 6.0 и все что-то тормозят.
Заебали анальные приседания с присвоение всех параметров к полям.
#51 #845288
>>844679
Можно и антигейтом, но есть вариант проще.
>>845803
#52 #845797
>>844412
>>844424
>>844548
А разве божественный дотнет не оптимизировать это вместо нас по умолчанию?
https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx

Олсо. Вопрос. Как структуририровать проект? Ну там мультилеер, где кор выше всего (в нем всякие коммон хелперы, интерфейсы, логирование и все такое). Дата - репозитории. Возможно модел- где лежат поко, модели, дтохи. Сервисный слой- где бизнесслогика дергает репозитории и манипулирует моделями. Ну и конечные солюшены, которые дергают сервиси. Поясните, так норм?

Еще. Стоит ли выделять в класс лайбрари логику работы с определенным доменом. Юзер менеджеры,например. Чтоб теоретически юзать это в других проектах. Но тогда получается, что для каждого такого домена нужно еще по слою делать( репо, кор и т.д). Этож охуеть сколько класс лайбрари в проекте будет.
Приведите пример архитектуры годной, плиз.

Может кто в личечке не против, чтоб я с ним посоветовался, если тут не удобно?
#53 #845798
>>844574
Почему же?
>>845819
#54 #845803
>>845288
Какой же?
>>845917
#55 #845819
>>845798
У тебя не расходуются ресурсы на поддержание коннекта к бд, ты не даёшь разрастаться своему контексту до неебических масштабов и ему не придётся трекать миллион всякой хуеты.

Господин сверху советовал глянуть на Unit of Work. Именно так в промышленной разработке пользуют контексты.
>>846482
149 Кб, 1089x813
#56 #845833
Сап шарпаны. Что тут можно выбрать, если меня учили просто работать с базой данных через скрипты в манагер студии?
155 Кб, 1126x292
#57 #845902
Был точно уверен что правильный ответ это D. Это я тупой, или в тесте ошибка?
>>845915>>845932
#58 #845915
>>845902
Ты тупой.
#59 #845917
>>845803
Попробуй подумать каким образом можно вообще не иметь дела с капчей.
>>846490
#60 #845932
>>845902
protected internal = protected ИЛИ internal
>>846489
#61 #845959
Но там нет ИЛИ.
Пюслюс, почему в ответе правильном перед and запятая, это инглиш грамматика или ошибка?
>>845979
#62 #845979
>>845959
Почитай про сложносочиненные предложения.
>>846121
#63 #846019
Господа, я в сомнениях.

Есть базовый класс с набором автосвойств.

Есть класс-наследник с тем же набором свойств, но с заданными значениями по умолчанию.

Правильно ли я понял, что в базовом надо сделать их виртуальными, а в наследнике перезаписать?
>>846030
#64 #846030
>>846019
если у наследника они также станут автосвойствами, то, понятное дело - нет
оверрайд нужен для внутреней логики, а не значения. прост записывай нужные тебе значения в конструкторе по-умолчанию
>>846031>>846050
#65 #846031
>>846030
Тхэнкс
#66 #846050
>>846030
Что-то совсем не варит котелок. Вот что писать для того, чтобы у наследника по умолчанию name вася было? И чтобы вдруг он потом подрастет и будет не вася, а василий егорович?

http://pastebin.com/WZWGU7Sh
>>846092
56 Кб, 300x300
#67 #846080
Проблема с таймером. Нужно написать маленькую программку. Задать время, допустим 4 часа и интервал, допустим один час. Каждый час она должна выполнять определенное действие. Необходимо, чтобы она выполнялась каждый день при запуске учётной записи пользователя. Действие напогромировал. Для того чтобы это всё регулярно включалось, я так понял нужно создать службу. Сделал, глянул как устанавливать службу. А теперь главная проблема. Как хранить таймер? Допустим он был включен, пользователь выключил компьютер. Прошло какое-то время он включил, как продолжить отсчёт с того же времени? Сколько не гуглю не знаю как это запихнуть в службу и к какому времени привязаться? Хорошо, изначально дёрнуть системное, а потом как защититься от подмены? Есть какие нибудь статьи на эту тему?
#69 #846095
>>846080
Можешь писать последнее время запуска в текстовичек.
Вариант в лоб — Thread.Sleep().
Другой вариант: консольное приложение и настроить виндовый шедулер.
>>846492
#70 #846098
>>846092
От души, брат. А мне оказывается вообще не это надо было. Я ебанутый, мне для ведения справочников надо было, а я теплое с мягким попутал. Спасибо еще раз, охуенный тред
>>846107
#71 #846107
>>846098

>А мне оказывается вообще не это надо было


Так обычно и бывает
#72 #846121
>>845979
Ну и при чем тут это? В любом случае там или запятая должна быть или соеденитель.
#73 #846426
#74 #846427
Подскажите как проверить символ на то алфавитный он или нет?
Проверка вроде @char == [?принадлежность к алфавиту?]
>>846431>>846452
#75 #846431
>>846427
if (char.IsLetter(char c))
#76 #846432
>>846431
хотя нет, это на принадлежность к юникоду. делай свой метод, хули ты
#77 #846452
>>846427
Regex to the rescue!
22 Кб, 705x513
sage #78 #846455
>>846431
Для каких случаев IsLetter будет неправильно работать?
>>846456
#79 #846456
#80 #846482
>>845819
Коннект не требует никаких ресурсов, кроме мизера памяти, а вот создание и разрыв коннекта - это ресурсоемкая операция, от которой стараются избавится (например keepalive)
Если говорить про ef, то в стандартном его поведении ничего не разрастается
#81 #846489
>>845932
Как ты себе это представляешь?
>>846529
#82 #846490
>>845917
Пасс код? Но я не хочу делать приятно макаке, шалун
>>847050
#83 #846492
>>846095
Thread . Sleep? Ты позоришь честь этого треда
>>846080
https://msdn.microsoft.com/ru-ru/library/system.timers.timer(v=vs.110).aspx
Это чем не подходит?
>>846698>>846706
#84 #846529
>>846489
Ты не очень умный?
>>846892
#85 #846628
>>846431
Char.IsLetter - то, что нужно. Спасибо!
До этого пытался через regex, но не совсем понял как правильно его использовать в if
>>846637>>846661
#86 #846637
>>846628
regex'ы не в иф блоках используются вроде. они возвращают строку, обработанную согласно параметрам regex'а.
>>846661
#87 #846650
Подскажите, где достать GTK# for .NET для макоси?
Скачал Xamarin и Mono, но гтк найти не могу, хотя бы в виде исходников
>>846653
#88 #846653
>>846650
Он ставится автоматически с Xamarin Studio
>>846655
#89 #846655
>>846653
А последовательность какая? Сначала Mono или потом?

Как проверить, что все компоненты работают? захеллоувордить? извините, что нуб
>>846670
#90 #846661
>>846628
>>846637
Regex.IsMatch, наркоманы
63 Кб, 899x653
#91 #846670
>>846655
1) Качаешь установщик https://www.xamarin.com/download
2) Запускаешь установщик, он сам ставит mono/gtk/android sdk
3) Запускаешь Xamarin Studio, выбираешь пункт "New Project" -> "Other" -> "GTK"
#92 #846698
>>846492
Я же сказал — вариант в лоб. В случае если не интересует точность интервалов.
>>846895
#93 #846706
>>846492
Я могу его хранить в службе? А если мне нужно поменять интервал мне надо пересоздать службу с новым значением таймера или можно как-то изменить?
>>846899
184 Кб, 1080x1080
#94 #846747
После нескольких неудачных собеседований впал в депрессию и забил на программирование. Целый год нихуя не делал, нихуя не учил. Сейчас вот потихоньку вылажу из этого говна, вновь начал читать Троелсена и вспоминать забытое. Так вот, хочу еще параллельно начать наворачивать литературу по джаваскрипту. Нормальное решение, или лучше оставить на потом?
#95 #846751
>>846747
почему неудачных? какой бэкграунд?
>>846761
#96 #846754
>>846747

>джаваскрипту


Не будь говноедом, начинай хотя бы с TypeScript
#97 #846761
>>846751

>почему неудачных?


Плохо дается теория, хоть я и зубрил ее, на теоретические вопросы на собеседовании мог только мычать. Обычно было так - hh дает мне тестовое задание, я его делаю, зовут на собеседование, на котором я опять обсираюсь.

>какой бэкграунд?


Закончил курсы погромирования, никакого опыта реальной работы нет. Образование средне-специальное.
#98 #846820
Подскажите годных книг по VB для вообще полного нубаса. Чтоб и за синтаксис пояснили и про ООП(в рамках бэйсика конечно же) без всяких "ехал инкапсуляция через абстракцию видит инкапсуляция в полиморфизме наследование сунул инкапсуляция в абстракцию наследование инкапсуляция ипнкапсуляцию за инкапслуляцию инкапсулировала".
И можно с примерами работы с .NET.
>>846841
#99 #846841
>>846820
книг не знаю, но знаю норм такой мануал. берёшь, короче, пишешь код на любимом сисярпе, прогоняешь его через ILSpy, получаешь код на VB. показываешь работодателю/преподу гришь о смотри ясделяль. ну или если тебе нужно разобраться в коде - та же хурма, перегоняешь интересующий блок с vb на c# и вуаля. базарю я синьёр помидор
>>846846
#100 #846846
>>846841
Ну, блядь, ты просто гений. Мне нужно конкретно гайд для обучения конкретно нуба программированию на бэйсике. Мне не нужен готовый код, готовый сам смогу "добыть". А вот книги толковой не могу.
#101 #846871
Есть список объектов, как с помощью linq найти объект с максимальным значением одного поля. Ебучий min max возвращает само значение поля, а мне нужен весь объект.
>>846906>>847066
#102 #846892
>>846529
Да, зато ты, видимо, пиздец тупой
protected internal = protected И internal
Как может быть или? В одном случае protected, а в другом internal?
>>846944
58 Кб, 518x229
29 Кб, 400x447
#103 #846894
Сломался деббагер в студии.
>>846898
#104 #846895
>>846698
Проблеиа не в неточности, а в твоей быдлиности: ты создаешь поток, который делает... нихуя, но при этом ты выделяешь на него ресурсы: память под стэк и другие плюшки, процессорное время (контексты все равно переключаются). Один такой поток в системе, вроде и не страшно, но если бы все так писали, как ты, я бы не пользовался бы пекой
#105 #846898
>>846894
А все, это из-за знака ' в названии, лол.
#106 #846899
>>846706
С чего в службе нельзя хранить переменные?
Я не знаю, кури мсдн, я просто спросил чем не устраивает
193 Кб, 1143x681
#107 #846906
>>846871
А мне сам объект возвращает. Может ты с IComparable проебался?
>>846955
248 Кб, 1149x767
9 Кб, 252x200
#108 #846916
Max работает, а Min не работает.
>>846919
43 Кб, 500x562
#109 #846919
>>846916

>listOfObjects.Min() + "\t" + listOfObjects.Max().someField)


Вот поэтому из меня никогда не получится нормального программиста.
#110 #846944
>>846892
Модификаторы доступа показывают откуда можно получить доступ к методу, в одном случае из наследованных классов, а в другом из классов в той же либе.
>>847059
#111 #846955
>>846906

> IComparable


> Решил такой писать на функциональном линке


> Нужно реализовать интерфейс @ Нельзя лямбды

>>846961
45 Кб, 499x635
#112 #846961
>>846955

>listOfObjects.First( y => y.someField == listOfObjects.Max(r => r.someField))

>>847061
43 Кб, 500x282
#113 #847013

>шел 2016 год


>в фреймворк добавляют кучу всякого сахарного говна, но до сих пор нет реализации простейшего дерева

>>847020
#114 #847020
>>847013
Мы тут максимальный элемент в списке не можем найти, а ты уже про деревья
#115 #847050
>>846490

>Пасс код?


Нет/
>>847063
#116 #847059
>>846944
А теперь... что если их поставить вместе, Маня, как тебя в вопросе и спрашивают
>>847068
297 Кб, 602x282
#117 #847061
>>846961
SEQUENCE CONTAINS NO ELEMENTS
>>847141
#118 #847063
>>847050
Отвечай, не томи
#119 #847066
>>846871
Install-Package morelinq

https://dotnetfiddle.net/saAaLG
Не могу разобраться, почему фиддлер не хочет компилировать, но в студии пример работает.
>>847073>>847132
#120 #847068
>>847059
Не меня спрашивают, я пришел к словам попридираться.

> can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly

#121 #847073
>>847066

>// MoreLINQ - Extensions to LINQ to Objects


>// Copyright (c) 2008 Jonathan Skeet. All rights reserved.


Джон Скит в треде, все на SO!
#122 #847074
Шарпач, есть коллекция из n элементов Node, у которого есть поля Id и ParentId. И есть произвольное пустое дерево. Я могу вставить в него все элементы за O(n^2). Как вставить быстрее?
>>847129>>847162
#123 #847129
>>847074
Если n очень большое, то отсортировать по Id и искать ноды бинарным поиском.
>>847197
43 Кб, 554x439
#125 #847141
>>847061
Только если лист изначально пуст.
51 Кб, 1033x479
#126 #847155
>>847132
Я бы написал свой
http://pastebin.com/BJsAjJV7
метод-расширение и положил бы в папочку /Commons/
>>847160
#127 #847160
>>847155
Что за шрифт?
>>847165
#128 #847162
>>847074
Сортани коллекцию таким образом, чтобы корень был в середине, слева все левые поддеревья, корень которых посередине между началом и главным корнем (1/4), то же самое с правой стороны. Начинай строить дерево с корня, потом поддеревья
>>847197
#129 #847165
>>847160
https://github.com/i-tu/Hasklig (размер 15) + включенные лигатуры в VSC
>>847166
#130 #847166
>>847165
Спасибо.
#131 #847197
>>847162
>>847129
Но дерево не бинарное. Оно произвольное, то есть у каждого узла может быть k детей.
#132 #847560
Почему нельзя сделать так, чтобы анонимный тип как бы реализовывал интерфейс? Не хочется кучу бесполезных классов писать.
>>847600
#133 #847600
>>847560
Потому что это не java и тут есть нормальные делегаты и лямбды.
274 Кб, 400x281
#134 #847670
Сап, шарпёры. Нужна ваша помощь. Здесь мне подкинули тестовое задание на программиста стажера за 200$\месяц, вот пилю потихоньку (хуй успею, ибо параллельно ебашу эникеем).
Короче, всю жизнь не комментил свой код, а сейчас задумался, ведь есть есть жы некий годный стандарт комментирования. Анон, реквестирую кусок кода с годными комментариями.
>>847717
#135 #847717
>>847670
Для публичного API используй XmlDoc (то, что у тебя на скрине). Внутри кода комментарии не нужны - код должен быть самодокументирующимся. Исключение - какая нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал.
>>847915
#136 #847732
>>843711 (OP)
UWP вообще как? Есть с ним жизнь без Store? В Магазин хентай пускают? Или дальше на WPF сидеть?
>>847763
#137 #847763
>>847732
а на wpf жизнь есть?
#138 #847790
Шалом, уважаемые.

В спецназе языков программирования 1с есть элемент "поле ввода", к которому прилагается кнопочка "обзор", в результате этот элемент может и как комбобокс в выпадающий список значения давать, и как опенфайл работать, только открывая другую форму.
А чем это в C# достигается? Что-то я потёк уже от размышлений, неужели кнопочку отдельно приклеивать?
>>847809
#139 #847809
>>847790
Ну, в C# есть разные графические фреймворки для декстопа, в основном это winforms и wpf. ну ещё UWP. Насколько я знаю, в этих фреймворках нет того, что нужно тебе изподкаропки, но во всех трёх фреймворках есть возможность клепать кастомные контролы, но в wpf и uwp возможности ГОРАЗДО больше для этого, чем в winforms. короче говоря, можешь сделать просто конфетку ещё пизже чем на твоём 1с, но делать придётся самому, да. отсюда следует, что может получиться и не конфетка вовсе, а просто пиздец нахуй блять я у мамы фронтенд
#140 #847815
О, братья!

Где почитать про правильную структуру проекта? Тысячи форм и сотни классов уже пугают, хочется упорядочивания. Если просто по папкам их распихаю, там же надо еще и директивы везде переписывать? Или папки на навигацию никакого влияния не оказывают? Или вообще проект разбить на несколько проектов, в одном формы, в другом классы, в третьем гробгробкладбище имейджез?
>>847816
#141 #847816
>>847815
при помещении в папку уже существущего файла .cs, неймспейс не меняется. а вот при создании нового файла в папке неймспейс соответствует папке типа namespace projectName.folderName { }
#142 #847830
Поясните, плиз, по хардкору, что это за GTK, GTK+, GTK+ 2.0?

Я понимаю, что такое .Net - платформа с дохуя библиотеками, для винды, которая .Net код компилирует налету в ассемблерный код, но строго для винды.
А GTK - это какая-то кроссплатформенная платформа для других, кроме винды?

Или я чего-то не догоняю.
Провалил из-за этого собеседование
>>847831
#143 #847831
>>847830
ты бы хоть Троелсена первую главу открыл, чисто для интереса.
#144 #847846
Когда сольют русик 7 редакции Троелсена? Или уже?
Вроде продают и на складах в наличии.
#145 #847868
>>846747
Тут главное упорство, мне за 3 месяца поиска работы было три приглашения на собеседование и с третьего зашло.
12 Кб, 700x209
36 Кб, 830x504
11 Кб, 622x297
#146 #847869
Есть тут магистры 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 будет работать корректно, то есть для каждого чекбокса определятся соответствующие значения. Ещё раз, вопрос: какого хуя? Почему в "пустом" биндинге всё равно правильно привязываются значения? Как он определяется по дефолту?
>>847904>>847916
#147 #847874
Ок, почитаю.
#148 #847904
>>847869
Отбой. Кажется, нашёл ответ на свой вопрос.
#149 #847915
>>847717

>Исключение - какая-нибудь сложная хуйня, которая будет неочевидна, как бы ты её не расписывал


Это значит что ты пидар что написано криво и есть смысл переписать нормально.
8 Кб, 192x256
#150 #847916
>>847869
Омакконелмой как же я проблевался с твоих длинных портянок.
73 Кб, 1919x705
#151 #847953
Сап, дотнетач. Помоги мне, я немного заебался. В общем, мне надо десериализовывать однотипные JSON с сайта. По некоторым причинам я не хочу юзать сторонние либы для этого, поэтому приходится юзать DataContractJsonSerializer. Я сгенерировал классы, они работают, но не для всех JSON. Некоторые вылетают с SerializationException:

- Ошибка десериализации объекта. Ожидался маркер """, но найден "Ñ".
(разумеется, символа Ñ там нигде нет)

Я пробовал перегенерировать классы по ошибочному JSON, но это не помогает. Можно ли как-то это дебажить? Хотя бы узнать, на каком месте/оффсете парсер загибается? В инете ничего дельного не пишут, поля LineNumber и LinePosition в эксепшене равны 0.
>>847966
#152 #847966
>>847953
.net 4?
>>847967
#153 #847967
>>847966
3.5sp1, vs2008 Увы.
>>847968
#154 #847968
>>847967
Баг фреймворка, починили в 4.5
http://stackoverflow.com/questions/23909231/datacontractjsonserializer-readobject-sometimes-throws-the-token-was-expected
Нужно просто обновиться / не использовать плохие входные данные / использовать json.net
>>847976
#155 #847976
>>847968
Да, открыл тот же проект в 15 студии, сменил версию на 4.6, всё прекрасно заработало. Спасибо тебе, анон, что прекратил мои попытки решить оказывается нерешаемую проблему. Буду выбирать из двух зол, или включать стороннюю либу, или таки переходить на другую студию и версию.
>>847980
#156 #847980
>>847976
Тащемта тебе надо и новую студию поставить на этот раз английскую, потому что пиздец, и либу подключить, тому что она быстрее.
#157 #847990
Как "апгрейднуть" инстанс базового класса в сабкласс? Написать оператор конверсии нельзя - компилятор его не примет, хотя было бы очень удобно. Писать конструктор/метод в сабклассе, принимающий параметром инстанс базового и писать копирование свойств?
#158 #847994
Явно/неявно переопределить оператор каста к сабклассу в базовом классе, а потом использовать конструкцию типа
BaseClass BC = new BaseClass();
SubClass SC = (SubClass)BC;
>>848003
10 Кб, 255x200
#159 #847996
Какие профиты переходя с 13 студии на 15? Знакомые спрашивают хули я еще не обновился, а я сижу и думаю "а нахуй оно мне надо".
>>847998>>848006
#160 #847998
>>847996
c# 6.0 изподкоробки, там же всякие расширения для юнити, андроид СДК и ещё чо то.
>>847999
#161 #847999
>>847998
А для аспа что нибудь полезное-новое-модное-молодежное ввели?
>>848000
#162 #848000
>>847999
а хз. я мимостудент, дальше wpf не заезжал ещё.
>>848002
#163 #848002
>>848000
Ясно. На новую версию без переустановки шинды перейти возможно?
>>848005
#164 #848003
>>847994

>Написать оператор конверсии нельзя - компилятор его не примет

#165 #848005
>>848002
а схуяли нельзя? сносишь к ебеням скачивать коммьюнити версию с сайта майкрософт или покупаешь на торрентах алтимейт и вперод.
>>848007
#166 #848006
>>847996
Увеличение тормозов. Ты купишь новое железо, чтоб комфортно работать. Мс доставляет профиты не тебе, а себе а производителям железа. 2008 форева, даже на старом железе работает крайне шустро.
>>848008
#167 #848007
>>848005
Когда с 10 на 13 переходил прошлось полностью шинду сносить, потому что не вставало. А сейчас что, просто студию удалил и новую накатил? Пакеты вилкой чистить не нужно?
>>848009
#168 #848008
>>848006
У меня i5 2500k, 8 гиг оперативы и ссд. Да даже на моем ноуте с одним ядром 13 студия не тормозила, я хз на каком динозавре ты там сидишь.
>>848014
#169 #848009
>>848007
хз, я свой путь начал сразу с 2013. никаких проблем не было, только скопировал папку с проектами в новую директорию vs2015. НО! помни, я мимостудент, и, возможно, не использовал полностью функционал VS как ты мог это делать в энтерпрайзе. мб у тебя там какие нибудь охуенные зависимости, завязанные конкретно на vs2013.
#170 #848010
Какое последние издание у Троелсена? Седьмое?
#171 #848014
>>848008
У меня i5-4460, тоже 8 гб оперативки, правда без ссд. 2008 не думает вообще, грузится за 1-3 секунды, по нажатию F5 тоже практически мгновенно дебаг запускается. А вот 2015 уже ворочается и думает, иногда по 3-5 секунд. Особенно при запуске дебага притормаживает.
>>848015
#172 #848015
>>848014

>правда без ссд


В этом твоя проблема.
47 Кб, 610x402
#173 #848021
Ребятки, помогите, взялся делать инвентарь в простой игре, но не получается, Есть оружие, щиты и тд, для каждого свой класс. Все это дело было занаследовано от класса Item, и вот накидал Item'ы в инвентарь, все норм, а потом захотел сделать так чтоб в ячейку для оружия перетащить Item. Но Item не имеете параметра "сокет", дабы определить подходит ли в слот. Дебаг показывает что объект класса Weapon, но к свойствам доступа нет, и это понятно, в классе Item они же не прописаны. Как тут надо делать? Ведь шмот в инвентаре должен быть однородным, да? И класс Item для этого подходит? Но как тогда сделать так чтоб было понятно что в Item засунули оружие, а не щит к примеру, и использовать свойства оружия?
19 Кб, 353x334
#174 #848029
>>848021
твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия.
>>848034>>848095
#175 #848030
>>848021
А нахуй вообще нужно оружие в инвентаре, которое в слот запихнуть нельзя?
>>848034
#176 #848034
>>848030

>А нахуй вообще нужно оружие в инвентаре, которое в слот запихнуть нельзя?


Как это? Как раз оружие и хочу запихнуть в слот, но нужно сначала узнать подходят ли параметры оружия.

>>848029

>твои пушки должны реализовывать интерфейс Iweapon. Потом смотришь, реализовывает ли item интерфейс, если да, разрешаешь использование в качестве оружия.


Так, я тупой, и не всегда понимаю. Есть класс "героя", у которого есть поля типа Weapon, Shield, Engine. Вот эти все итемы (Weapon, Shield, Engine) надо класть в инвентарь/ одевать. В данные момент они все имеют класс-родитель Item, что-то подсказывает это неправильно. Если я реализую интерфейс Iweapon в классе Item, то все итемы будут уметь стрелять, не?
>>848035
#177 #848035
>>848034
Ты говоришь что у тебя у класса оружия есть поле "сокет". Зачем он?
>>848036
#178 #848036
>>848035

>Ты говоришь что у тебя у класса оружия есть поле "сокет". Зачем он?


Сокет - отдельный объект в классе Hull, сокет выполняет роль слота и имеет несколько разновидностей, нужно узнать у оружия какой сокет оно поддерживает, и если да, добавить в List<Weapon>.
>>848037
#179 #848037
>>848036
Если каждый наследник класса Item использует поле "сокет", и самому Item это поле тоже необходимо, то пиши его именно в Item.
>>848041
#180 #848041
>>848037

>Если каждый наследник класса Item использует поле "сокет"


Не, в том то и дело что сокет нужен только для орудий, у Engine должна быть своя атмосфера. Короче говоря разные классы, которые как-то нужно засунуть в один контейнер(инвентарь) и взаимодействовать(вставлять в слоты) с ними.
>>848049
#181 #848049
>>848041
ладно, а почему бы тогда не создать классы наследники от item: Shield, Weapon, Engine?
>>848064
#182 #848064
>>848049

>Shield, Weapon, Engine


Мало похожие классы, класс-суперпомойку говорят делать не есть хорошо.
>>848069
#183 #848066
Ну то есть мне же придется писать сокет в итеме, иначе я не смогу получить доступ, и сокет же нахуй не всрался в шите и двигателе.
#184 #848069
>>848064
Как вариант сделай еще класс usableItem, который будет наследоваться от обычного item. И пиши в нем что хочешь.
#185 #848095
>>848021
>>848029
поддвачну этого.

Или предлагаю вот тебе что сделать. заводишь поле
ItemTypeEnum itemType;

где
public enum ItemTypeEnum
{
Shit,
Weapon,
Gear,
// итд
}

лично я так делал, а не ебся с тоннами наследований, особенно, когда быстро решительно надо было создавать новые типы.
Но это будет работать строго, если у тебя градации самих вещей одного и того же типа нет.
Например у оружия - топор, меч, залупа,дилдак.

Если такое будет, то делай через наследование.
#186 #848122
>>843711 (OP)
Почитал ваш гайд
Начинаю с
The C# Player's Guide
CLR via C#
Pro WPF 4.5 in C#
Multithreading in C# 5.0 Cookbook
Потом дрочу эскьюэль, учусь пользоваться гитхабом и ищу какую-то джуновскую вакансию?
Алсо, про первую книгу написано что она для ньюфагов в шарпе, а если я ньюфаг в программировании? ну когда-то там писал на сях сортировку пузырьком, про массивы что-то знаю, но это не считается
Или мне начинать изучение сишарпа с с?
>>848125
#187 #848125
>>848122
Если умеешь работать с типами данных, циклами-хуиклами, массивами и условными операторами типа if else switch и тд, то можешь сразу учить шарп.
#188 #848139
>>848021
динамикодрисня multiple dispatch решительно врывается в тред!
https://dotnetfiddle.net/6jFDPm
>>848144>>848151
#189 #848143
Короче, поцоны, целый день пытаюсь понять ,и нихуя. Можно сделать с помощью рефлексии, но все говорят это обсёр. Вот блядь я либо чтото упустил, либо не могу поять как оно работает.
1. Ебаные разные шмотки должны хранится в списке , типа так List<Item> , да? Вот мы берем и ХУЯК добавляем пушку в инвентарь методоом items.add(new Weapon()). м?

2. Ну и как теперь одеть пушку в слот, который треубет тип Weapon, если я даже не могу посмотреть в List<item> мощность пушки. А даже если бы мог, через свойство, то всеравно итем стрелять то нихуя не умеет. И НЕ влезет в поле типа Weapon, где изъян?
>>848152
#190 #848144
>>848139
Кк, ща буду читать, после того как помоюсь/
>>848145
#191 #848145
>>848144
Так потом опять мыться придется.
>>848146
#192 #848146
>>848145
Ну зато вонять не буду
>>848147
2697 Кб, 400x225
#193 #848147
#194 #848151
>>848139
Ага, но вот варлока распидарасила рога голая ,выпал стафф,сворд и спелбук, не мог бы ты,бро, добавить их в сумку, вывести статы сворда в консоль и одеть стафф на рогу. Само собой рога может только стафы носить, но ты все равно попробуешь одеть сворд.
>>848158
#195 #848152
>>848143
Ты довен штоле?
https://dotnetfiddle.net/vZwtMO
>>848154>>848155
#196 #848154
>>848152
Так я просил спеллбук и стафф положить вместе, (разные типы объектов)
>>848159
#197 #848155
>>848152
ой, не, все норм
#198 #848158
>>848151
Вывести статы итема - самое простое, тут же single dispatch.
В остальном просто добавляешь правило
https://dotnetfiddle.net/jEJELz
#199 #848159
>>848154

foreach (Weapon i in inventory)
{
if (i is Staff)
//шось тут
else if (i is Spellbook)
//шось тут
else
//эксепшон
}

Вот тебе решение в лоб. Может кому будет не лень что нибудь другое придумать.
>>848163
#200 #848163
>>848159
Вот когда перебираю веапоны, то заебись, прям вообще нахуй, доступ к параметрам есть, и можно проверить сокет. НО а если перебирать итемы, то уже хуй, ведь в рюкзаке хотелось держать именно итемы, там же не тольько оружия будут лежать,а еще и броня, без сокетов блядь! Короче тут либо делать в классе-родителе поле сокет, и глушить его в классе броня, либо я вообще хуй знает. Проблема не решена.
Может рефлексия?
>>848167
#201 #848164
Или нахуй эти итемы всрались? Держать списки для оружия, и дял брони разные..
#202 #848167
>>848163
Блядь, да сделай .OfType<Weapon>()
#203 #848175
>>848167
Садись, два.
>>848176
#204 #848176
>>848175
На словах ты Лев Толстой
44 Кб, 604x604
#205 #848177
>>848167
Гляжу на пример в mdsn, делаю свой ArrayList, а у него нету метода OfType<T>()
>>848180
#206 #848180
>>848177

>ArrayList


Где ты это говно раскопал, возьми List<T>
>>848189
#208 #848192
>>848189
Это все очень хорошо, только нахуя не generic коллекция в 16 году.
>>848195
#209 #848195
>>848192
Хз, с листом не работало, пошел на мсдн глядеть, там с аррайлистом делали. Сейчас дошло что без подключения Linq не работает.
>>848198
#210 #848198
>>848195
Извини пожалуйста, ты без решарпера там штоле сидишь?
>>848201>>848262
#211 #848201
>>848198
Я на dotnetfiddle сидел вообще.
66 Кб, 668x515
#212 #848208
Сишарпач, подскажи.
Что нужно установить/сделать чтобы подключить postgres? По идее в этом списке он должен быть (пикрелейтед). Npgsql установил.
>>848224
8 Кб, 518x302
#213 #848224
>>848208
В доках обещают что будет.
http://www.npgsql.org/doc/ddex.html
Только зачем?
>>848228
#214 #848227
Отличный вопрос - где искать конторы в которых можно поработать на стажировке за нихуя удаленно? Точнее конечно за хуя - за опыт реальной работы в проекте и еще раз за опыт.
>>848229
#215 #848228
>>848224
Да, я уже нашёл это. Пункт появился. Вроде даже работает. НО! Столбцы-то он извлекает, а вот данные - нет.
Ошибка:
Error in SELECT clause: expression near '"'.
Missing FROM clause.
Unable to parse query text.
#216 #848229
>>848227

> можно поработать на стажировке за нихуя удаленно


Ты главное фотку индуса не забудь к профилю по поиску работы приделать, иначе не возьмут.
>>848231
#217 #848231
>>848229
Уверен, что ты злой человек.
#218 #848245
>>843844

> Console.WriteLine(i + ":\t" + array);


Что он у тебя вообще выводит? array
да-да, слоупок, только зашел
#219 #848262
>>848198
А решарпер он вообще нужен? Сильно облегчает работу? Я вообще нихуя не программист, а админ. Мне шарп очень сильно полюбился, и поэтому я на нём клепаю много разной хуйни себе (и юзерам) для автоматизации и облегчения работы работаю на радиостанции, у нас тут плейлисты, логи выходов/невыходов и прочая хрень, которую обрабатывать надо. Последний раз вон даже add-in для экселя сделал. Сижу на голой 2008 студии и вообще не парюсь.
>>848271
#220 #848267
Шарпоанончики, поясните за Asp.Net. На нём можно написать веб игру? Ну то есть что бы он сгенерировал хтмл5 с канвасом и js скриптами? Или JS тоже надо учить? Или это всё вообще не так работает?
>>848270
#221 #848270
>>848267

> он сгенерировал


Что значит "сгенерировал"? Ты можешь юзать asp.net как бэкэнд (равно как и java-сервлеты, php или что-то ещё подобное), но саму игру тебе писать всё равно придётся.
>>848279
#222 #848271
>>848262

>add-in для экселя сделал


Ничоси ты админ. Вообще, решарпер не нужен, но с ним гораздо проще, вместо написания кода можно нажимать ctrl+space и alt+enter, и буквы сами на экране появляются.
#223 #848279
>>848270
Уточню вопрос... Можно ли средствами asp.net выводить интерактивное анимированное содержимое в объеме достаточном для не очень сложной 2Д игры?
>>848280
#224 #848280
>>848279
Средствами asp.net можно выводить статичный html, для интерактивности и анимированности тебе нужно что-нибудь, что исполняется в браузере.
#225 #848281
>>848280
Ясно, вопрос закрыт.
#226 #848282
>>848280
И спасибо.
#227 #848283
>>848280
Нет, стой, ещё один маленький вопрос. Средствами asp.net нельзя написать типа "вывести кнопку/квадрат/картинку с ID №1 с текстом "Нажми меня", и событием, что бы при нажатии на неё приходил ответ на сервер что пользователь с такими то куками нажал c ID №1", при этом asp.net сгенерировал бы хтмл страницу, на которой был бы скрипт js который бы это делал?
>>848284>>848286
#228 #848284
>>848283
Сдаётся мне, ты вообще не понимаешь, что такое asp.net, и что такое js, и в чём вообще различие между нии.
>>848285
#229 #848285
>>848284
я понимаю что такое js (немного, пол учебника прочитал), а вот что такое asp.net - не понимаю. Поэтому разбираюсь, стоит ли мне его учить (так как я немного знаю C#), что бы решить мою задачу или не тратить время.
#230 #848286
>>848283
Ты можешь сделать страницу с кнопкой, при нажатии на которую, запрос пойдет на сервер и тебе вернется новая страница, на которой написано что ты пидор
>>848288>>848289
#231 #848288
>>848286
А я?
>>848290
#232 #848289
>>848286
Ясно, понятно. Спасибо.
64 Кб, 566x604
#233 #848290
>>848288
А ты нет.
#234 #848320
>>848167
То что нужно, братишка, я просто не знал об этой хуйне. А есть такое же, только для элемента? Чтоб объекты класса Weapon, WeaponDirect и тд будут возвращать тру, остальные фолс, if (i.GetType() == typeof(Weapon)) , только веапоны в переборе пропускает, а надо еще и наследники.
>>848345
#235 #848324
АХ, это же вроде оператор is, да? Ебать меня в сраку раскаленным ломом, как просто то.
#236 #848333
привет
#237 #848345
>>848320

>if (i.GetType() == typeof(Weapon))


Хуйню какую то написал. Вот короче
https://dotnetfiddle.net/HqgpEL
>>848358
#238 #848349
Как решить следующую задачу: есть тип, который однозначно enum, но неизвестно какой и какие у него возможные значения, но известно, что у него есть атрибут [Flags]. Затем, нужно в текстовую строку запихать элементы перечисления, которые есть в заданном int. Вопрос: как это сделать, если перечисление неизвестно наверняка и вообще задано Type'ом? Зная конкретное перечисление, я бы сделал что то типа
if ((definiteEnum)someInteger).HasFlag(definiteEnum.asd))
dosmth

а вот как это делать с неопределённым типом?
>>848352>>848364
#239 #848352
>>848349
Определить тип GetTypeом не пробовал?
>>848354
#240 #848354
>>848352
Тип у меня заранее известен, и я знаю, что это enum (ну вернее сделал так, что ничем кроме энума это быть не может). Как мне получить static public методы у неизвестного типа, заданного объектом типа Type, если я знаю наверняка, что у него есть метод HasFlag(Enum value)? Мне надо получить характерные только для этого типа атрибуты, какетоблятьсделать? Я уже в штаны сру просто как конь ебаный помогите спасите звоните в скорую
>>848357>>848364
23 Кб, 447x278
#241 #848356
Так, то что хотел узнал, но вот, у нас есть Item, и мы его пытаемся вставить в орудийный слот, если Item есть оружие, то ставим. А что если мы не знаем какого типа слот? Может то не орудийный слот, а для двигателя. Можно узнать какой тип у переменной? А потом проверить подходит ли Item для этого типа?
>>848358
#242 #848357
>>848354
Ладно, отбой. Вроде придумал.
#243 #848358
>>848360
#244 #848360
>>848358

>foreach (UsableItem i in inventory.OfType<UsableItem>())



А что тут? Тут нихуя. Ну вот получили список <UsableItem>, а теперь нужно их поставить в слот, а тип слота неизвестный, тип слота к примеру<Staff>, но ты не знаешь что <Staff> это <Staff>, как узнать какого класса слот(переменная)?И после того как узнали, попробовать преобразовать <UsableItem> в <Staff> ?

НЕИЗВЕСТНО var;
foreach (UsableItem i in inventory.OfType<НЕИЗВЕСТНО>())
>>848361>>848366
#245 #848361
>>848360
Хули оно у тебя неизвестно? Ты не знаешь какие классы оружия создавал или что? Я твою мысль никак уловить не могу.
>>848363
#246 #848363
>>848361
Не, ну я вообще, для общего развития спрашиваю, разве не может быть так что тип переменной может быть неизвестен? Или как-то динамически изменяется что в итоге сам не знаешь что там может быть.
#248 #848366
>>848360
Паттерны подъехали: https://dotnetfiddle.net/OGDyG2
>>848368
#249 #848368
>>848366
А как называется-то паттерн??
>>848372
#250 #848372
>>848368
Visitor pattern
#251 #848399
Пачаны, поясните за "c#2010 ускоренный курс для профессионалов Трей Нэш". Узнал много интересной хуйни, но однако настораживает, что 2010. Вреда не будет от того, что он такой старый?
>>848407
#252 #848407
>>848399
Ну потом просто почитаешь, что добавили в 4.5 - 4.6, типа async/await и все.
#253 #848459
Драч, помогай. Что за хуйня с этими dependencyproperty в wpf? Сделал кастомный контрол для DataGridTemplateColumn, дак вот, коллбэки вызываются каждый раз при появлении/сбросе фокуса на/с столбце, хотя изменений, на которые должны реагировать эти коллбэки, не происходит.
>>848475
#254 #848460
Чето устроился на работу и дома совсем лень кодить.
хотя когда я не работал, то тоже не особо кодил, хуй знает как меня такого дауна взяли, лол.
#255 #848475
>>848459
Так, с этим пока хуй с ним. Сделал кастом контрол, который унаследовал от ComboBox'a. Чому он не может не отображаться нивкакую на окне, если всякой добавочной логики минимум? То есть вот прям вообще нихуя: создал просто кастом контрол через мастера VS, в XAML'е выкладываю его на окно, а он нихуя, пустой. ЧЯДНТ?
>>848477
#256 #848477
>>848475
Отбой, нашел причину.
>>848484
#257 #848484
>>848477
Собсна, проблема "Драч, помогай. Что за хуйня с этими dependencyproperty в wpf? Сделал кастомный контрол для DataGridTemplateColumn, дак вот, коллбэки вызываются каждый раз при появлении/сбросе фокуса на/с столбце, хотя изменений, на которые должны реагировать эти коллбэки, не происходит.
" так и не решена. я чёт вообще в ахуе, при повторной фокусировке на контрол в дататемплейт коламне конструктор кастомного контрола вызывается каждый раз, пиздецнахуй. как это лечить?
#258 #848499
Здравствуйте, господа.
Может мне кто-то помочь , готов заплатить немношк, если еще поясните как это сделать?

В общем, есть сайт по генерации лабиринтов http://www.mazegenerator.net/

Я написал небольшую прогу консольную, которая пнгшный файл с изображением лабиринта, полученная с этого сайта генерится в лабиринт в моей игре.
Потом этот самый лабиринт я использую в игре, сделанной на юнити.

Собственно вопрос. Как мне в программе отправить запрос за получение и сохранить картинку?
Прошу, помогите.
>>848527
#259 #848527
>>848499
Устанавливаешь httpfox (или какое-нибудь другое дополнения для отслеживания запросов), запускаешь его, после чего генерируешь лабиринт. В списке появляется пост-запрос, который тебе нужен. Смотришь на его содержимое. А как отправить пост-запрос с нужными данными и обработать ответ с помощью кода, я думаю, ты сможешь загуглить.
>>848541>>850007
#260 #848541
>>848527
хм, интересное решение. сегодня вечером попробую.
спасибо
#261 #848675
Сап /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; }
}
>>848685
#262 #848678
бамп
да я макака
#263 #848679
бамп
#264 #848685
>>848675
нет, неправильно
тот вариант консоле.врайтлайн, который ты взял, использует форматированные строки
>>848688
#265 #848688
>>848685

Подскажи как исправить
>>848689
#266 #848689
>>848688
Console.WriteLine(p1.personName + p1.personAge);
>>848690
#267 #848690
>>848689

Спасибо, няша.
#268 #848768
Ребятки, короче сделал Итемы для корабля, инвентарь работает, но вот что, каждый итем вставляется в свой сокет. Корчое есть класс Item и класс Socket. У итема есть enum который говорит что это за итем вообще, и вот если итем Weapon, то оруийный сокет приводит Item в Weapon, и норм.А вот теперь сделать нужно обычные шмотки, пусть будет класс Devicе наследуемый от Item, но шмотки будут иметь уникальыне способности. Один итем чинить корабль, второй давать телепорт. И не совсем понятно как тут делать. Мне то и с оружием не понятно, класс веапон(который наследник итем) имеет пустой виртуальные метод FIre(), а его потомки уже переопределяют, и как-то некрасиво выходит. Или норм? Как делать правильно?
>>848836
#269 #848772
Почему metanit.com в шапке нет?
>>848836
#270 #848836
>>848772
ресурс хоть и хороший, но крайне поверхностно дающий сведения
тогда уж каждый высер в шапку будем включать

>>848768
наследованием в лоб в таких случаях ты упрешься в тупик достатощно быстро, что ты и сделал уже
>>848842>>848894
#271 #848842
>>848836

>крайне поверхностно


>полный гайд по сисярпу, охуенный гайд по аспнету, потрясающий гайд по ксамарину


Ты на сайт заходил хоть?
>>848868
#272 #848868
>>848842
ясен пень, что заходил
но если это все охуенные для тебя гайды, то я даж не знаю. для того, чтобы понять что и зачем - да. для того, чтобы сделать что-то мало-мальски серьезное - не смеши. про ксамарин я не итал, посему не имею мнения, однако, подозреваю, там все так же.

> крайне поверхностно


хотя да, с "крайне" я перегнул, признаю

вот что действительно, что я оттуда вынес - так это знания по WPF. и то потому, что другие источники мне ранее было читать лень/неинтересно
>>848877
#273 #848877
>>848868
поссал на дауна (тебя)
>>848945
#274 #848894
>>848836

>наследованием в лоб в таких случаях ты упрешься в тупик достатощно быстро, что ты и сделал уже



А как не в лоб?
>>848945
#275 #848945
>>848877
встречайте супирсиньора-порватку. хелловорлд скомпилил уже?

>>848894
композицией + диспетчером объектов, либо хардкодить и привязывать поведение своих классов до не могу
#276 #848968
Насколько важен в работе CIL? И нужен ли он вообще?
22 Кб, 1040x237
#277 #849009
Охуевшие модеры прикрутили хуй пойми какие слова с спам-лист, который неизвестно где задекларирован, поэтому пикрилейтед.
>>849010>>849073
#278 #849010
>>849009
вот я смотрю в чей-то код, а там var askjfhskdjghksjhdv = 5. ну, канеш, это что-то значит в расшифровке (либо кошка по клавиатуре прошлась), но совсем не очевидно.
у некоторых пул-реквесты закрывались из-за того, что переменная названа неочевидно/не в соответствии с выполняемым действием. такшо нехуй лениться, если это не пет-проджект
>>849019>>849036
#279 #849019
>>849010

ленится не нужно, только каждую_переменную тоже не стоит так называть, кроме того есть еще худо-бедно общепринятые сокращения, типа i18n
383 Кб, 2560x1600
#280 #849035
Анон, я к тебе с вопросом про ООП.
Если класс знает про своего наследника, то это нормально или нет?
Я хуево объясняю, но это что-то вроде: у нас есть классы A и B:A и в A есть свойство типа B.
>>849045
#281 #849036
>>849010
а если над акронимом был бы комментарий поясгняющий?
>>849067>>849069
#282 #849045
>>849035
Скорее всего, ты не до конца знаешь, какие возможности предоставляет наследование и полиморфизм. Сформулируй задачу конкретно.
>>849049
593 Кб, 1920x1200
#283 #849049
>>849045
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. Это же плохо и так нельзя делать?
>>849064
#284 #849064
>>849049
крякнул А, ну это GUI похоже. В гуи да, такое применяется и часто, типа чтоб при закрытии основного контейнера закрывались дочерние и типа того.
#285 #849067
>>849036
камент написать не впадлу, а назвать переменную изначально развернуто - впадлу
#286 #849069
>>849036

ты же понимаешь, что это неудобно. Нужно или умную иде держать чтобы комментарии в рантайме показывала, или переходить по имени переменной к её декларации. А что если переменных будет не 1 штука, а сотня, раскиданная по десятку неймспейсов?
#287 #849073
>>849009

>IsCheckBoxInitializingSyncronizationActive


isInitSync
17 Кб, 813x325
14 Кб, 791x241
#288 #849308
Чурбаны, а поясните вот ещё что. Допустим, есть коллекция, из которой нужно считывать объекты и делать с ними какие то действия. При этом есть булевый флаг, в зависимости от которого нужно либо прошерстить всю коллекцию, либо остановиться после первой успешной проверки определённого условия внутри цикла. И вот тут вопрос, если в коллекции ОЧЕ много объектов, целесообразно ли сделать иф-элс блок с двумя циклами, что ведёт к раздуванию и избыточности кода, или похуй, что стомилльёнов раз будет проходить проверка флага в единственном цикле?
пикрелейтед - иллюстрации того, что я пытался сформировать словами.
#289 #849309
>>849308
второй пик адекватен хотя бы потому, что отсутствует почти тотальное дублирование кода
а вопроса я так и не понял :(
>>849312
#290 #849312
>>849309
Ну типа в первом варианте (v) не будет лишней проверки в каждой итерации, потому что поведение определено ещё до входа в цикл. А во втором случае есть дополнительная проверка в каждой итерации для определения поведения блока цикла. Мне показалось, что при большом количестве итераций лишняя проверка может повлиять на производительность. Или проверить байт это как два пальца обоссать даже на 101010
>>849314
#291 #849314
>>849312
итераций?, забыл дописать, да.
>>849350
#292 #849350
>>849314
тогда тебе все варианты не подходят. лучше (эффективней) вынести if (E.HasFlag) за пределы foreach. т.к. я перенабираю твой кiд со скрина, я подзаебался пытаться исправлять, посему сам
>>849362
#293 #849362
>>849350
Но как он вынесет этот if за пределы foreach, если ему надо проверить всю коллекцию Items этим if? Или не надо?
>>849400
#294 #849400
>>849362
с помощью TakeWhile и FirstOrDefault
>>849408
#295 #849402
Котаны, пишу робота, который авторизуется и парсит сайты. Как получить итоговый код хтмл, который находится в теге iframe. Как я понял, он заполняется результатом выполнения описанных в нем скриптов. Использую хромиум, в его окне страница в итоговом виде отображается, фидлер показывает что скрипты отработали, но когда я смотрю хтмл код с формы, там результатов работы скриптов нет, а только ссылки на сами скрипты.
#296 #849408
>>849400
И как ты себе это представляешь вообще?
>>849414
#297 #849414
>>849408
да легко
>>849416
#298 #849416
>>849414
Если вынести if (E.HasFlag) за foreach, то foreach уже и не нужен будет. Я вот никак не могу уловить ход твоих мыслей.
>>849425
#299 #849419
Кто нибудь в WPF делал кастомные контролы для MenuItem? ну типа делаю кастомный класс и наследую его от menuitem Почему они не показываются в приложении при запуске, чего мне не хватает ?
>>849422
#300 #849422
>>849419
А всё, нашёл решение.
#301 #849425
>>849416
ну, сам блок foreach там будет использоваться неявно. можно прибегнуть и к его помощи непосредственно, но это будет аналогичное громоздкое решение

вообще мыслью было вынесение if-а за блок, где производится операция с коллекцией. то, на что этот блок уже будет изменен - дело десятое
>>849429
50 Кб, 610x610
#302 #849427
>>849308
Объясните мне зачем ему enum айтемов если их можно в обычную коллекцию типа листа запихнуть? Я слишком нуб и чего то не понимаю?
>>849438>>849482
#303 #849429
>>849425
А в чем профит заменять обычный foreach на TakeWhile?
>>849431
#304 #849431
>>849429
шобы потом сделать LiB.LP.SelectedItems.AddRange
опять таки, на любителя (хотя в случае с List-ом было бы эффективней)
#305 #849438
>>849427
у него коллекция enum-ов
>>849439
8 Кб, 247x200
#306 #849439
#307 #849451
>>849308
Я нихуя не понял. Такой вариант устроит?
https://dotnetfiddle.net/g2B5L6
74 Кб, 604x441
#308 #849463
#309 #849469
>>849451
Если нужна разная обработка, в зависимости от того, берём один или много элементов, можно так сделать.

https://dotnetfiddle.net/etu5Gg
>>849482>>849484
#310 #849482
>>849427
Если в кратце, пикрелейтед с моего первого вопроса - часть контрола в WPF, в который загружаются перечисления об определённом объекте. (Типа перечисления районов/этажей/деталей объекта, которые поддаются перечислению и их количество ограничено) Благодаря этому в БД хранится лишь интовое число, а при загрузке данных в клиентское приложение интовое число преобразуется в флаговый энум, который парсится, и в контроле (листбокс в popup'е, элементы которого либо радиобаттон либо чекбокс, в зависимости от флага UseAsFlaggedEnum, который определяется в зависимости от заказываемой таблицы), во первых, в список предметов добавляются все элементы перечисления, и во вторых, отмечаются соответствующие столбцу,строке в БД.
>>849451
>>849469
Да мне не нужна была конкретная реализация. Я остановился на (S) варианте, но мне просто чё то стало интересно, допустимо ли с этической точки зрения плодить код ради мельчайшего улучшения производительности, который в моём случае и заметен не будет, ибо один хуй энумы интовые и больше 63 (127?) сёравно хуй засунешь.
>>849501>>849776
100 Кб, 500x375
#311 #849484
164 Кб, 512x286
#312 #849501
>>849482

>Благодаря этому в БД хранится лишь интовое число


Щито? Захуй тебе тогда бд вообще, если по сути вся инфа хранится у клиента? Что за хуйню я только что прочитал?
>>849515
#313 #849509
Анон помоги. Что обычно требуется знать .net джуну? Важно ли знать дохуя паттернов, или достаточно ООП, алгоритмов и языка? Читаю Троелсена, все достаточно легко и понятно, что еще можно почитать?
>>849519>>849545
#314 #849515
>>849501
У клиента просто инструкции по отображению инфы. int вместо varchar(100500) на сервере, чтобы меньше байт передавалось с сервера клиенту и обратно.
>>849516
#315 #849516
>>849515
Ты так хуево все объяснил, что я сначала подумал что все расчеты проводятся на стороне клиента, а на сервере одни инты в бд хранятся за каким то хуем.
#316 #849519
>>849509
Уметь писать нормальный код под имеющуюся задачу без решарпера. Всё.

>Читаю Троелсена


Да хоть Троллсена. Один хрен не поможет. Учись на реальных задачах, книги не нужны.
#317 #849523
>>849519
Но это требования к мидлу же.
>>849527
#318 #849525
>>849519
Читаю чтобы систематизировать знания и различать String и string, ага. Практикой давно занимаюсь: ищу/ставлю себе задачу и делаю
>>849527
#319 #849527
>>849523

>это требования к мидлу


Проиграл. В голос.

>>849525

>и различать String и string, ага


Для всего этого есть MSDN + StyleCop + встроенные средства VS 2015, а не книги, хуй пойми когда написанные.
>>849530
#320 #849530
>>849527
Джун который может самостоятельно что то писать под имеющуюся задачу и которому не нужен наставник это уже не джун вовсе. Что за хуйню ты городишь?
>>849531
#321 #849531
>>849530
А кто такой джун тогда? Мартыхан, клепающий классы по шаблонам?
>>849535
#322 #849535
>>849531
Именно он и есть. Пиздец я бы таких как ты палками пиздил - уеба с опытом и умением работы прибедняется и идет на джуна, хотя знаний и опыта на мидла, а настоящим джунам, которым этот опыт работы в настоящей компании очень нужен, остается только хуй сосать.
>>849536>>849552
#323 #849536
>>849535

>Именно он и есть


Ну ок, я думал ты пошутил так.

>Пиздец я бы таких как ты палками пиздил


Не стоит, я у джунов хлеб не забираю и не занимаю их должности.
>>849539
#324 #849539
>>849536
Короче, самое главное что требуется от джуна - обучаемость. К джуну приставляется мидл в качестве наставника и тот его обучает и дает задания.
>>849545
#325 #849545
>>849539

>обучаемость


Важнейшее качество, соглашусь.

Короче, >>849509, если ты обучаемый - работу в любом случае найдёшь. Могут пару раз завалить на собеседованиях по поводу какой-то несусветной хуиты, но рано или поздно найдутся те, кто тебя возьмёт на работу.
>>849562
#326 #849552
>>849535
хех, помнится, постучалась ко мне рекрутерша с требованием к джуну - не менее 1.5 года коммерческой разработки. даже не представляю за кого они там держат действительно неопытных товарищей
#327 #849562
>>849545
Немного успокоили, спасибо.
LINQ #328 #849567
Быстро решительно, у тебя есть 5 секунд, как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта. За один проход можно же, няши?
#329 #849571
>>849573
#330 #849573
>>849571
НУ а метод какой?
>>849576
#331 #849574
>>849567
orderby считается одним проходом?
#332 #849576
>>849573
Where/Select + Max, скотина ты ленивая.
>>849581>>849582
#333 #849581
>>849576
чот я не понял, как с помощью Where и Max ты выберешь инстансы с максимальными значениями чего-либо?
Select я в каком-то упоротом варианте, возможно, смогу представить
>>849584
#334 #849582
>>849576
Как же я тебя люблю, что за вэрэ и селект? Ладно пойду гуглиться.

>orderby считается одним проходом?


Не знаю, браток, мне казалось есть простое решение, нажать кнопку и всё готово, а нихуя
>>849591
#335 #849584
>>849581
Анонимные типы, Люк. Используй их и всё получится.
>>849591
#336 #849591
>>849584
https://dotnetfiddle.net/PDGHkq
что я должен указать, дабы все получилось по свойству A?

>>849582
OrderByDescending(item => item.Prop).Take(count);
так непросто?
>>849594
#337 #849594
>>849591
Что должно в итоге получится, ты можешь нормально описать?
>>849595
#338 #849595
>>849594

> вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта


речь до сих пор идет только об этом
>>849599
#339 #849599
>>849595
Блядь, OrderBy это не то же самое, что выбирать по максимальному значению свойства.
Если я тебя правильно понял, замени строку 9 в своём фиддле на
foreach (var item in GetAzaza().OrderByDescending(i => i.A))
А иначе точнее объясняй задачу.
>>849602
#341 #849602
>>849599
да еб же твою мать. человек спрашивает:

> как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта


ты (или не ты, мне похуй) отвечаешь:

> Where/Select + Max


я, в недоумении, как же ты собрался оперировать сими методами в данной задаче. ты же, блять, сводишь все к Order
>>849605
#342 #849603
>>849600
а если последний элемент в списке, как выяснится, будет самым весомым, ты вернешь List<> с одним этим элементом? я чет не догоню
>>849608
#343 #849605
>>849602
Ты идиот или прикидываешься? Селектишь итемы (и свойства в массивы если нужно), дальше смотришь что там по Max в массивах получается, возвращаешь искомое значение.
Нахуй ты тогда здесь OrderBy в фиддле приплёл? Выражайся яснее.
>>849611
#344 #849608
>>849603
На 49 строке мы обнуляем возвращаемый массив - это произойдёт в том случае, если текущий элемент весомее тех, что хранятся в массиве.

> ты вернешь List<> с одним этим элементом?


Да.
>>849611
#345 #849611
>>849605
прикидываюсь
что мне нужно в фиддле своем нопесать в foreach для того, чтобы выполнить сее действие?

>>849608
ну а в чем фишка если мне, допустим, надо два объекта?
#346 #849614
>>849611
Сортируешь по величине и вытаскиваешь первые два.
#347 #849615
>>849611

>ну а в чем фишка если мне, допустим, надо два объекта?



Он вернёт два объекта, если они равны по заданному полю и это поле максимальное для твоего массива.
#348 #849619
>>849611

>прикидываюсь


Тогда сформируй задачу так, чтобы людям понятно было.
>>849620
#349 #849620
>>849619
человек описал ее выше
я привел для наглядности фиддл с указанием готовых объектов
как мне, используя Where/Select/Max в моем фиддле отобрать несколько инстансов с максимальными значениями свойства А?
>>849623
#350 #849623
>>849620
var sortedList = listOfSomeClasses.OrderBy(r => r.SomeValue).Reverse();
И вытягиваешь столько максимальных значений, сколько тебе нужно.
>>849632
#351 #849627
>>849600
Поясните, плиз, чем мой вариант не устраивает. Или я неправильно понял, что ему нужно?
>>849630
#352 #849630
>>849627
Просто ты изобрел велосипед.
>>849636
#353 #849632
>>849623

> используя Where/Select/Max

>>849634
#354 #849634
>>849632
Зачем?
>>849637
#355 #849636
>>849630
Но ведь подобного метода нету ни в стандартной поставке, ни в популярных либах.

Тем более, если требованием является сделать это за один заход, то цепочка из операторов из Where/Select/Max здесь явно не подойдёт.
>>849643
#356 #849637
>>849634
ты это указал как решение задачи, которого (решения) я не понял. во что я сейчас и пытаюсь въехать
>>849639
#357 #849639
>>849637

>ты это указал


Чо блять? Я вообще мимо проходил.
>>849641
#358 #849641
>>849639
охебанаврот
#359 #849643
>>849636
Думаю под одним заходом он имел ввиду то, что нужно все записать одной строчкой, а не писать простыню с новыми методами, классами и прочим.
>>849649
#360 #849649
>>849651
#361 #849651
>>849649
Странно рандом на фиддл работает, у меня всегда выдает 29.
>>849654
#362 #849654
>>849651
Генерируется 100 объектов. У каждого объекта поле Prop в диапазоне от 0 до 29. Потом берутся объекты с максимальным полем и выводятся.

Если уменьшить число объектов или поменять верхнюю границу значения поля Prop, то тогда результат будет меняться.
>>849658
#363 #849658
>>849654
Короче, если не понятно. Вот без всей хуйни с рандомом.
https://dotnetfiddle.net/TQlJSc
>>849661
#364 #849661
>>849658
Да я то понял, но как уже тут писали, можно сделать проще.
https://dotnetfiddle.net/7JjYkl
>>849665
#365 #849665
>>849661
Откуда 5 в Take берётся? Разве ему нужно не все объекты, у которых заданное поле максимальное?
>>849668>>849670
#366 #849668
>>849665

> Разве ему нужно не все объекты, у которых заданное поле максимальное?


> Как вернуть несколько объектов из списка с максимальными значениями одного из полей сего объекта



Я слепой мудак, прошу прощения. Несколько - это сколько? Все, или какое-то константное значение?
>>849670
#367 #849670
>>849665
>>849668
Сколько захочет - столько и возьмет. Если не любит магические числа, то пропишет константу, а мне лень было.
#368 #849707
есть 2 массива, например: [1, 1, 3] и [1, 3, 4, 1]
надо как-то проверить, чтобы все элементы одного были в другом. т.е. если в одном две единицы, то и в другом должно тоже быть 2 единицы.
Как это сделать?
>>849711>>849720
#369 #849711
>>849707
хранить объекты "соответствий" элементов массивов и при нахождении пары проверять, дабы этот индекс не был использован ранее. хотя так се решение, имхо
#371 #849724
Раз тут такая мутка, то скажите и мне, как найти допустим три ближайших объекта, и как оно работает, массив сортируется, после чего просто загребются первых три элемента?
10 Кб, 483x357
#372 #849740
Помогите разобраться с WPF. Я нашёл, как сделать привязку с INotifyPropertyChanged в коде, но как сделать это же в разметке xaml? Это вообще возможно?
>>849764
#374 #849776
>>849482
щито тебе не нравится?
#375 #849783
>>849600
поясните-ка этот момент
where TR : IComparable<TR>
>>849785
#376 #849785
>>849783
Данный кусок кода ставит ограничение для обобщённого элемента. В данном случае мы говорим, что тип TR должен реализовывать интерфейс IComparable<TR>

Интерфейс IComparable предоставляет метод CompareTo для сравнения двух элементов (дата, число и т.п.). Если не указывать это ограничение, то в обобщённом методе нельзя будет вызвать метод CompareTo, т.к. не у любого объекта он доступен, а только у реализующих указанный интерфейс.

http://professorweb.ru/my/csharp/charp_theory/level11/11_3.php
#377 #849797
>>849764
Спасибо, а там ещё написано, что датаконтекст можно поставить в разметке, как это сделать?
>>849804
#378 #849804
>>849797
<Window.Resources>
<local:aViewModel x:key=aVM>
</Window.Resources>
<Grid DataContext="{Static Resource aVM}">
</Grid>
если view model с параметром в конструкторе, то придется прибегнуть к ObjectDataProvider
Также размещаешь в ресурсах, указываешь тип объекта, параметры конструктора и чё то там ещё, и также в DataContext грида пихаешь
>>850888
#379 #849811
Каким образом можно сгенерировать файл с классом на основе информации полученной с ресурса?
Например я заполнил List данными и теперь мне нужно с его данными создать файл с классом по шаблону.
>>849815
#380 #849815
>>849811
Попробуй еще раз, а лучше нарисуй.
>>849826
#381 #849826
>>849815
Что тут непонятного. На стороннем ресурсе есть список, который нужен мне в виде физического класса в одном проекте.
Т.е я не хочу парсить это в рантайме, мне проще иметь его в виде статического класса с List или Dictionary. Можно ли как-то его сгенерировать из шаблона в ооп стиле, не хочется билдить это строками, без форматирования. Или может билдить строками и пропустить через утилиту форматирования, но мб есть другой путь.
>>849836>>849845
#382 #849836
>>849826
проблема в количестве данных или ты решил, что такой способ будет забавней?
>>849844
#383 #849844
>>849836
Да, данных много, наверно даже заюзаю lazy.
Ну в общем сделал через StringBuilder, вышло кучеряво.
#384 #849845
>>849826
Тебе просто данные захардкодить? T4 шаблоны. Можешь просто файл с данными рядом с собой положить и не выебываться
>>849846>>849849
#385 #849846
>>849845
[code=csharp]test();[/code]
>>849847
#386 #849847
>>849846

>Unexpected token

#387 #849849
>>849845
Тут просто данные периодически обновляются, не часто, но все же. И они на стороннем ресурсе.
>>849871
#388 #849871
>>849849
Так тем более положи в файл, потом прост заменять его будешь, вместо перекомпиляции.
>>849876
#389 #849876
>>849871
Так жеж это лишняя работа.
16 Кб, 400x331
#390 #849895
Интересно, а можно ли на основе метаданных полностью переписать чужую сборку в код?
>>849924>>850020
#391 #849924
>>849895
Если ты про декомпиляцию сборки то ilspy с плагином может декомпилировать, так и просто поправить сборку.
#392 #849952
>>849519

> без решарпера


схуяли?
#393 #850007
>>848527
Инструменты разработчика есть в любом браузере, даже ничего устанавливать не нужно
#394 #850020
>>849895
дык на лету можно даже инжектировать инструкции/данные
#395 #850300
Не тонем.
Аноны, есть такая проблема: есть файл на сетевой шаре, файл постоянно дописывается, мне надо новые строки из него читать. Вроде бы хуйня, но не получается. Открываю через FileStream, выставляю FileShare.ReadWrite, но таки третья программа в этот момент не может открыть файл на чтение, а выдает только "permission denied". Как-то победить можно?
#396 #850308
>>850300
Если тебе только читать то зачем тебе write?
>>850318
#397 #850318
>>850308
Эта константа определяет, как файл шарится же. https://msdn.microsoft.com/ru-ru/library/system.io.fileshare(v=vs.110).aspx
А файл я конечно в режиме чтения открываю.
#398 #850319
У кого-нибудь t4 шаблоны добавляются в проект net core?
#399 #850331
Учу шарп. Посмотрел ASP.NET MVC и NancyFX, нэнси нравится больше. Насколько хорошей идеей будет учить вначале нэнси, а потом асп эмвиси?
>>850338
#400 #850332
Какие смежные знания требуются шарперу? Вот например жавист или питонист должен знать основы линукса и MySQL/PostgreSQL, жаваскриптер должен знать сборщики типа gulp и webpack, основы ноды. А что дополнительно нужно шарперу?
>>850334
#401 #850334
>>850332
редко что-то требуют
шейрпоинт, жс. например
>>850336
#402 #850336
>>850334
сикуль
#403 #850338
>>850331
А что там учить в ненси это довольно таки простой микрофреймворк, на котором можно быстро что-нибудь запилить.
Смотря какие у тебя цели, на работе тебе будет нужен 4ый и возможно если новый проект то core.
Для себя я уже решил что буду писать на core и старые проекты на ненси тоже переведу на новый асп. Он тоже довольно-таки прост в освоении.
#404 #850344
>>850300
Аноны, ну есть какое-то решение? Открываю по всем инструкциям, не блокируя файл, и всё равно другая программа открыть его не может.
using (FileStream fileStream = new FileStream(plFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
>>850352>>850958
#405 #850352
>>850344
ПК, на котором выполняется третья программа, имеет доступ к чтению файла? Имею ввиду, ОС позволяет?
>>850353
#406 #850353
>>850352
Да, имеет. Если мою программу закрыть, то доступ на третьем ПК начинает работать
#407 #850394
Посоветуйте книжку по ООП с нормальными примерами на шарпе.
Пытался навернуть "Объектно-ориентированные мышление" от Вайсфельда - будто говна поел, еще и большинство примеров на ломаной джаве.
>>850427
#408 #850427
>>850394
Троелсен
>>850481
#409 #850432
Создал проект на Нэнси. Кроме основного файла программы добавил отдельный файл с роутером и рандомным названием файла и класса, но стандартным неймспейсом. И он... работает! Как? Откуда программа узнала об этом классе? Она что, автоматически парсит все .cs файлы? Их не нужно подключить вручную? Где можно прочитать про принцип работы этого?
>>850709
#410 #850481
>>850427
Всего 90 страниц про основы ООП, очень кратко.
>>850534
#411 #850534
>>850481
да это с опыт приходит, анон.

так, если хочешь, то паттерны проектирования хорошо мозги вправляют еще.
#412 #850671
Что скажете об "C# 4.0 и платформа .NET 4 для профессионалов." Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон? Насколько годная, какой порог вхождение?
>>850683>>850713
#413 #850683
>>850671
вах зачем сышарб чотыриноль?
>>850710>>850711
#414 #850709
>>850432

> Создал проект на Нэнси. Кроме основного файла программы добавил отдельный файл с роутером и рандомным названием файла и класса, но стандартным неймспейсом. И он... работает! Как? Откуда программа узнала об этом классе? Она что, автоматически парсит все .cs файлы? Их не нужно подключить вручную? Где можно прочитать про принцип работы этого?


Там небось класс или метод атрибутами декорируются?
>>850724
#415 #850710
#416 #850711
>>850683
а разница-то?
>>850714>>850719
#417 #850713
>>850671
Зачем вообще начиеающим читать что-то кроме Трэлсона? Вы же не про цене выбираете, все равно все бесплатно.
#418 #850714
>>850711
Разница в async await (важно), строчной интерполяции, дефолтных значения свойств и прочего с# 6 сахара(не очень важно)
>>850894>>850936
#419 #850719
>>850711
начиная с c# 5.0 завезли async и await, (в 6,0 ещё и их поддержку в catch-finally блоках), что хоть и является лишь синтаксическим сахаром, но поможет разгрузить код от ебанутых конструкций типа
Task<int> A = new Task(...);
Task B = A.ContinueWith(()=>{a = A.Rezult();})... ну и прочий приятный синтаксический сахар, который может сделать код более наглядным. Оператор nameof() может пригодится в WPF при использовании биндингов.
>>850894
#420 #850724
>>850709
Наследуется от NancyModule.
>>850753
#421 #850753
>>850724
Вот тебе и ответ
20 Кб, 1000x1000
#422 #850802
Анон, ты знаешь какой-нибудь быстрый способ вкатиться в OpenGL+OpenTK? Судя по гуглу, OpenGL Superbible мой друг, но 880 страниц это дохуя. Если что, мне глубокое понимание и 3D не нужно. Но хочу хотя бы иметь представление о всяких там vertex, batch, transform, shader ну или что там еще можно в 2D игрушке встретить.
>>851030
#423 #850888
>>849804
А я ещё вот такой вариант методом тыка нашёл. Если в MainWindow есть ссылка на объект, из которого надо брать данные (напр., myObject со свойством myProperty), то можно написать DataContext="this.myObject", и потом в контроле (напр., текстбоксе) вот так: Text="{Binding Path=MyProperty, UpdateSourceTrigger=PropertyChanged}".

А со статик ресурсом будет лучше (если да, то чем), или без разницы?
>>850893
#424 #850893
>>850888
с точки зрения производительности - без разницы. возможно, даже лучше все контролы и вообще ебаное всё делать в коде, ибо код КЗАМЛа конвертируется в БАМЛ (бинарное представление), а потом вроде прям при запуске парсится и генерируются контролы. но с другой стороны, похоже разница в скорости милипиздронческая будет, так что рекомендуется весь UI код писать в кзамле, просто потому что это визуально разделяет бизнес логику и представление (паттерн MVVM все дела ебала). Типа, если не впихивать всё в кзамл, то у тебя помимо this.DataContext = myObject; ещё потом строчка появится, которую можно было в кзамле прописать, потом ещё и ещё и в итоге у тебя 1/4 c# кода может быть вынесена в кзамле, а вместо этого ты прокручиваешь его каждый раз, когда тебе нужно изменить/вспомнить как работает бизнес логика.
#425 #850894
>>850714
>>850719
я знаю про разницу 4.0 и всех остальных версий. глобально разница-то в чем? TPL есть и в четвертом, nameof заменяется атрибутом типа CallerNameAttribute, если правильно помню. остальной сахар всего-лишь сахар. канеш писать на новой версии всегда приятней, не спорю. но в обучении-то какой принципиальный момент есть?
#426 #850897
Здравы буде, бояре.

Направляемый наставлениями премудрых волхвов создал клинопись рабочую с использованием mssql да на windows forms. И всё бы ничего, но решимостью одержимый оптимизировать код натолкнулся на темную область в своем разуме.

На одной из скрижалей надобно мне одну и ту же надпись в несколько label'ов залить, поступил по-древлянски сначала, присвоив каждому эту надпись вручную, но должно же это как-то и слаще делаться? Или ошибаюсь я?
>>850898
#427 #850898
>>850897
можешь присвоить лейбмлам тег уникальный, и потом делаешь что нибудь типа
foreach(Control C in this.Controls)
if (C is Label && C.Tag=="uniqueTag")
((Label)C).Text="newtext";
#428 #850899
>>850898

>тег уникальный



Спасибо, я все вокруг этого свойства крутился.
#429 #850913
>>850898
Хм. Ниработаит. Почему-то проверяет кнопки, лол. Напрямую
label1.Text = label2.Tag.
втыкается, а вот почему он на кнопках цикл гонит.
Пробовал в условии ставить Label C in Controls, сразу же исключение вываливается - "невозможно батон к лэйблу привести". Смешно чота
>>850914>>851032
#430 #850914
>>850913
и лейбл и баттон наследуются от контрола. видимо, в логику foreach не вложена проверка допустимости приведения типа, поэтому приходится действовать, как я изложил в >>850898
foreach(Control C in this.Controls)
if (C is Label && C.Tag=="uniqueTag")
((Label)C).Text="newtext";
>>850921>>850987
#431 #850921
>>850914
Прости, но я именно так и делал сначала, потом уже стал экспериментировать.
Тут видимо надо получать коллекцию только лэйблов для начала, а потом уже по нему гонять с проверкой.
#432 #850933
Ебать, я поехавший. Мне ж как покрасивее надо, а не учел, что groupBox - контейнер. Надо было не с зыс контролс брать для перебора, а с групбокса именно.

Спасибо еще раз
#433 #850936
>>850714
async await же еще с 4.5 добавили, не?
>>850937
#434 #850937
>>850936
C#5 4.5framework*
#435 #850958
>>850300
>>850344
В итоге так и не получилось у меня это победить. Пришлось городить костыли: мониторю дату изменения файла, и в случае изменения читаю весь файл с последней измененной строки (её тоже запоминаю). Благо, единственная прога, которая пишет в файл, только добавляет новые строки, ничего не удаляя. Но это как-то через жопу, и мне не нравится, если честно.
#436 #850987
>>850914

> в логику foreach не вложена проверка допустимости приведения типа


Если бы это было так, то это был бы не язык программирования, а сплошной анал-карнавал.
#437 #851030
>>850802

>в 2D игрушке


бери гамак и лепи. а если любишь шарпы, то юнети и вперед.
иди в /gd/, там найдешь тред юнетей.
еще там один доброанон выложил цикл уроков по юнете для самых маленькихна ютабе ищи level gd. за выходные осилишь.
>>851102
#438 #851032
>>850913
Не понял, что тебе не нравится. Оно и будет проверять кнопки. Цикл пройдётся по всем контролам в форме, но вставит текст только лэйблам с указанным тегом.
>>851079
#439 #851079
>>851032
Мне всё нравится. Я уже отписался. Кстати, во многом и допёрло, что дело в групбоксе, из-за того, что кнопки всплывали
#440 #851102
>>851030
Мне нужно разобраться с готовым open source проектом на самодельном фреймворке. Так что юнити мне не нужно от слова совсем.
>>856400
17 Кб, 549x357
#441 #851273
Так, шарпаны, напомните, что делать в таких ситуациях (пикрелейтед)
имею ввиду как убрать эту ебучую точность, когда вместо 0 получается 0.0099999999999Е-17?
>>851280>>851311
#442 #851280
>>851273
decimal
>>851286
#443 #851286
>>851280
кастовать всмысле или куда?
>>851299
#444 #851299
>>851286
Ну ты левую и правую границы и шаг как получаешь? double.parse? Вот сделай decimal.parse.
#445 #851311
>>851273
О, спасибо. И вот ещё вопрос. Допустим есть приложение, которое для своих нужд создаёт дочерние процессы. Если основной процесс завершает работу аварийно, как пиздануть все дочерние процессы?
#446 #851324
>>845034
Не понял, метод можно напрамую подписывать на событие?
Зачем тогда во всех книгах описывают это только с помощью делегатов? Как я вообще до этого должен был дойти?
>>851623
#447 #851379
Доставьте годный гайд/книгу/что угодно про Xamarin.
>>851387
102 Кб, 811x882
#449 #851420
Бесконечный цикл, чзх
byte res = new byte[256];
for(byte i = 0; i <= 255; i++)
{
res = i;
}
#450 #851421
#451 #851423
>>851420
Сука сраный ондроед, ну, думаю, все поняли
#452 #851424
>>851420
в прошлом треде такой же вопрос был вроде. у байта максимальное значение = 255, потом переполнение, в результате (если на 1) которого число становится = 256%256=0, что и происходит в твоём случае. сделай условие <255
#453 #851447
есть циклический процесс, который делает дела с удаленными сервисами/серверами -> практически вся работа идет через Connection's и Stream. естессно вся Disposable фигня обернута в using

но после каждого цикла остается ~60-80 мегабайт памяти, занятой System.Byte[]. прошерстя профайлером, убедился, что все их корни идут от тех самых стримов, сериализаторов, коннэкторов и всей прочей шешуры, которых уже и след давно простыл

суть то проблемы, что приложение активно выделяет память под себя, пока не упрется в определенного рода потолок, который на разных энвайрментах разнится от сотен мб до единиц гигабайт, ну и уж начинается "плавание" вокруг этого предела

гуглы ничего адекватнее using/Dispose не говорят. пробовал и обнулять все объекты по выходу из цикла, и вызывать GC.Collect (хотя бы для того, чтобы оценить потенциальный результат). но все, к чему привело - уменьшение скорости выделения памяти под себя. т.е. проблема не ушла, но стала совсем на писечку менее явной. есть один "пример", который, используя винАПИ, принудительно делает deallocate памяти под процесс, но это во-первых так себе, а во-вторых имеет такую проблему, что я не знаю, сколько реально памяти можно сожрать

вообще, есть методы борьбы с подобными процессами? в частности, как определить, почему мусор, являющийся мусором, не умирает. а если мусором не является (в чем я сомневаюсь ибо в конце концов процесс съедания памяти имеет предел), то что его держит в живых?
>>851636
#454 #851623
>>851324
SOOPER BUMB VOPROSU
>>851636>>852031
#455 #851636
>>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> глубже не имеет смысла

я чот пока не уверен, что все, что я накопал, я все понял верно, посему не буду постить догадки/преждевременные выводы. а если кто столкнулся/кому интересно, чота напейшу
>>851995
#456 #851685
Шарпач, помоги.
Есть один проект, тестовый. Знаю, что оче налажал, но где - не совсем очевидно, я же нублан. Анон, сделай ревью, потыкай носом, а?
https://github.com/Joysome/Test-Web.APi-AngularJS.git
Особенно интересует, куда надо было бы деть то, что у меня в FSService.
>>852255
#457 #851982
FileSystemWatcher'ом слежу за изменением файлов в директории. Хочу когда файл изменится дописать в него небольшой фрагмент, но возникает проблема: когда я записываю в этот файл информацию, на него снова срабатывает watcher и программа уходит в бесконечный цикл. Если перед записью в файл в обработчике события OnChange отключить watcher, а после включить, то он пропускает изменение другого файла, который записывался как раз в этот момент. Как быть?
>>852068
#458 #851995
>>851636

>а это не делегат?


Нет конечно, gridView.SelectionChanged - это событие.
>>852023
#459 #852023
>>851995
а событие это у нас нынче не делегат?
>>852325
#460 #852031
>>851623
тебе что непонятно-то? как события использовать на практике или как оно в машинный код переводится? По-человечески объясни. Я нуб, если что.
>>852314
#461 #852068
>>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;
//дописываешь в файл залупу
}
#462 #852255
>>851685
Начнем с того, что .vs и packages не нужно комитить.
Зачем тебе dynamic? Почему post, если это get?
#463 #852314
>>852031

>метод можно напрамую подписывать на событие?


>Зачем тогда во всех книгах описывают это только с помощью делегатов?

>>852339
#464 #852325
>>852023
В книге написано, что - нет.
Хотя судя по синтаксису и логике работы - вполне. Поэтому я и застопорился, либо я чего-то не догоняю, либо в книгах странно объясняют.
Алсо, как таким образом (подпиской напрямую) передавать ссылку на вызывающий объект?
>>852339
#465 #852339
>>852314
>>852325
давайте разберёмся в терминологии для начала, шо такое "подписка напрямую" и чем она отличается от такой же, только в обход?
>>852359
#466 #852359
>>852339
Хмм. Надеялся, что вопрос будет понятен. Надо подумать, как сформулировать вопрос правильно.

Есть, например, форма с радиобаттонами.
Есть событие rb1.ChckedChanged, на которое я хочу подписать метод rb1_OnCheckedChanged.
Как это правильно сделать? В частности, надо использовать стандартный делегат EventHandler или нет?
Здесь >>845034

>this.gridView.SelectionChanged += this.gridView_SelectionChanged;


не используется EventHandler, и это я называю "напрямую". Я так понимаю, это можно сделать потому, что SelectionChanged это стандартное событие C#, какое-то кастомное событие надо объявлять через делегат. Я правильно понял?
>>852423
#467 #852364
Привет, шарпач.
На работе приходится разбираться в старом коде и увидел в 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 пустой статический конструктор?
>>852423
#468 #852423
>>852359
начнем с того, что "стандартный" делегат - это такой же тип делегата, как и все остальные, ничем не менее стандартные как RoutedEventHandler, MouseRventHandler и т.д.
как тебе подписаться на событие - решай сам: через new HuiPizdaDelegate, через += Method, через +=(s,e)=>{ }
вот, почитай крч: https://m.habrahabr.ru/post/198694/

>>852364
тебя, надеюсь, не реализация синглтона смущает? пустой конструктор - это, скорее всего, архаизм. когда-то там чота было, возможно даже инициализация самого синглтона, а потом перекочевала куда надо. в любом случае наличие пустого статического конструктора плоды не делает и перфоманс не поломает.
само вложение классов, вероятней всего, связано с попыткой разделения зависимостей/функционала. все дело в том, что за функционал населяет оба класса, и, самое главное, какова их история. может быть, если копнуть за годы назад, окажется, что все было по-другому и раньше было лучше
>>852479>>852513
#469 #852479
>>852423

>https://m.habrahabr.ru/post/198694/


>Перво-наперво: события (event) не являются экземплярами делегатов. А теперь снова: События — это НЕ экземпляры делегатов.



Ну, что скажешь?
>>852488
#470 #852488
>>852479
оо, ну я теперь понял твой вопрос

принципиально - да, конечно, делегат != событие (так же как класс != структура, enum != int/long), чем я, наверное, смутил тебя децл.

если совсем сгладить все - событие можно представить как частную форму делегата, но, опять таки, именно так и воспринимать сее не стОит
>>853430>>855184
#471 #852513
>>852423
Не знал про сигнлтоны, спасибо что, прояснил
#472 #852536
Хотел спросить в /ra, но думаю здесь корректнее.
Шарпаны, поясните, неймспейс Windows.Devices.Gpio можно использовать только для windows IoT?
#473 #852727
Можно ли обеспечить для приложения совместимость с виндой вплоть до ХР? Можно как-то сделать чтобы было не обязательно устанавливать .netframework для того, чтобы моё приложение работало?
>>852734>>852737
#474 #852734
>>852727
1 - пикрелейтед
2 - хз, насколько я знаю, программы сисярпа запускаются в виртуальной машине, которая, рискну предположить, сама берётся из .net framework'a.
>>852735
46 Кб, 1048x600
#475 #852735
#476 #852737
>>852727
А что у тебя за приложения?
Если ASP.NET или console, то можно попробовать CoreCLR.
#477 #852748
Где можно почитать про то, как правильно оформлять код? Ну типа куда пихать свои классы и т.д.
>>852784
#478 #852784
>>852748
на хабре.
70 Кб, 309x281
#479 #852788
>>846080
Task Scheduler.
205 Кб, 1595x872
#480 #852871
Почему 4 раза повторяются результаты, где я накосячил?
http://ideone.com/JGo8qY
>>852879
#481 #852879
>>852871

>foreach (DriveInfo di in dis)


>DirectoryInfo dir = new DirectoryInfo(/di.Name/"H:\\");

>>852898
242 Кб, 1527x937
#482 #852898
>>852879
Точно, на каждый экземпляр диска же запускается поиск.
И еще вопрос по ошибкам с доступом к папкам, как его обойти?
>>852922
#483 #852922
>>852898
catch (UnauthorizedAccessException)
>>852927>>853006
#484 #852927
>>852922
Спасибо
181 Кб, 1489x892
#485 #853006
>>852922
Помоги, анон!
Что написать-то надо в катче?
Обновил код
http://ideone.com/JGo8qY
>>853018
#486 #853010
Почему ref и out переменным нельзя задать значение внутри анонимного метода?

public Task GetAsync(string name, out Texture targetVariable)
{
var task = Task.Run(() => Get(name)).
ContinueWith(t =>
{
targetVariable = t.Result;
});
backgroundLoadingTasks.Add(task);
return task;
}
>>853052
#487 #853018
>>853006
Ничего не надо, особенно throw.
>>853019
209 Кб, 1411x848
#488 #853019
>>853018
Вот без throw
>>853023
#489 #853023
>>853019
Почему ты без дебага запускаешь?
>>853027
270 Кб, 1322x884
#490 #853027
>>853023
Потому что для меня там все китайская грамота :-(
Файл проверил, галочек онли рид на нем не стоит.
>>853046
#491 #853042
А доставьте плиз каких-нибудь ресурсов с задачками для ньюфагов, с использованием винформочек. Что-то типа получения обратной матрицы и т.д.
#492 #853046
>>853027
Ну зато увидишь где у теб падает. Значит try/catch нужно еще и здесь можель попробовать запускать от админа свое приложение, может тогда доступ будет
>>853459
#493 #853052
>>853010
памушта после запуска эвейт управление передается вызывающему коду, где ожидается, что реф/аут будут инициализированы, что не является гарантией
>>853278
#494 #853181
Есть какой-то сайтик, где можно покодить с подсказками как на код академи?
>>853281
#495 #853278
>>853052
Где ты тут await увидел?
мимокрокодил
>>853300
#496 #853281
>>853181
Dotnetcademy, но там есть баг, отчего один урок нельзя пройти на 100%. В остальном годнота.
#497 #853300
>>853278
мимокрокоди дальше
сильно вероятно, что код, потребляющий эту таску, будет с эвэйт. даже если не так, то конпелятор совершенно справедливо предполагает, щито метод может/будет выполняться асинхронно
#498 #853377
Какая сейчас самая модная технология GUI в шарпах? Wpf уже не в моде?
>>853414
#499 #853414
>>853377
ну почему же?
327 Кб, 677x788
#500 #853417
Вкатываюсь с нуля, в идеале хочу запилить свой фотошоп с имитацией масла, жидкостей и прочих партиклес. Поясните что курить для графики на C# для самых тупых, нашел какого-то мужика (пикрилл) для основ и уроки в которых делают пейнт, я их посмотрел и один повторил, не знаю правда нахуя, все равно ничего не понял.
>>853436>>854154
#501 #853430
>>852488
Ок, спасибо.
Я думаю, я разобрался, и мне кажется ты не совсем прав.

Делегат, в контексте события, нужен толькр для того, чтобы определить сигнатуру методов, которые могут подписаться на событие.

События, которые включены в среду я использую SharpDevelop, например:
gridView.SelectionChanged
radioButton.CheckedChanged
уже определены с помощью делегата EventHandler. В этом можно убедиться, если посмотреть на код этих событий.
Поэтому, метод можно напрямую подписать на события, которые поставляются со средой.
Если использовать свои какие-то события - придется использовать делегат для определения сигнатуры методов.
>>853644
#502 #853436
>>853417

> что курить для графики на C#


> C#


Ничего там нет. Нормальное 2D рисование и C# - понятия практически несовместимые (не, ну можешь конечно рисовать через GDI, только никому не рассказывай).
А с учётом того, что ты и C# не знаешь (раз тебе требуются уроки с твоего пика), то выкатывайся оттуда и закатывайся на C++. Программирование под DirectX начиная с 10.1 очень сильно упростили, ищи мануалы под Direct2D, и вперёд.
>>854154>>854520
#503 #853459
>>853046
Угу, поставил два катча на занятые и недоступные и вроде бы заработало. Спасибо.
#504 #853604
Так-с, господа полубоги, помогайте. В общем меня приглашают стажироваться в одну фирму топовую для нашей мухосрани, кстати. А они там занимаются аспом.
Проблема в том, что я дочитываю Троэлсена и понемного программирую разные програмки уровня laba1, и совершенно не знаю что и в каком порядке учить.
Если что, в вебе вообще не шарю, так что подскажите плиз
>>853642
#505 #853642
>>853604
metanit
начни, а там че-нить другое найдешь
#506 #853644
>>853430
Полный трєдж специалистов, никто не может сказать или я на правильном пути и похвалить?
>>853669
#507 #853669
>>853644
От того, что ты используешь SharpDevelop события по другому работать не начниают.Почитай еще.
#508 #853779
Зачем использовать winapi в c#? Дайте интересных задач чтобы разобраться.
>>853780
#509 #853780
>>853779
Да банально, понадобилось мне на лету подредактировать PEB запущенного процесса другой программы. Она была криво написана, и в какой-то момент работы портила его сама себе. Вот делал минификс для этого.
#510 #853971
В HttpWebRequest устанавливаю хедеры для запроса и когда делаю req.Headers.Set("Accept-Encoding", "gzip, deflate, br"), то вместо текста страницы получаю кракозябры. Если её закомментировать, то всё в порядке. Через браузер смотрел, хедер в запросе именно такой. В чём прикол? Может я чего-то не понимаю?
>>853975>>854019
#511 #853975
>>853971
gzip же сжимает данные
#512 #854001
Какой проект можно разработать чтобы прикрепить к резюме на джуниора?
>>854029
#513 #854019
>>853971
Когда ты делаешь

> req.Headers.Set("Accept-Encoding", "gzip, deflate, br")


то ты говоришь удаленному серверу: мол, я могу и сжатые данные принять. Вот он тебе и шлёт сжатые. А твой HttpWebRequest по умолчанию их расжимать не умеет.
>>854038
#514 #854029
>>854001
rss reader
>>854298
#515 #854038
>>854019
Стоит их сжатые получать, а потом разжимать? Выигрышь от этого будет?
>>854100
#516 #854100
>>854038
ну во всем не выиграешь. выбирай, что тебе важнее: нагрузка на трафик плюс, возможно, дополнительные расходы на unmanaged-память, либо нагрузка на проц в лице декодирования сообщения
147 Кб, 3000x1682
#517 #854103
Асинхрач, а как можно организовать цикл по таскам/акшонам с несколькими awaitами?
Пробовал так:
Parallel.ForEach (uri, async (x) => {
y = await Processing(x);
z = await Processing(y);
Console.WriteLine(z);
})
Console.Wrilteline(«цикл завершён»);

Но задача считается выполненной на первом-же awaitе. И первой записью в консоли будет «цикл завершён».
>>854174
#518 #854153
Здравствуйте поцаны, я решил вкатиться именно в этот язык, уже прошел небольшой курс от гикбреинс по виндоформам, понял что это совсем детский сад и решил, что никто лучше ребят с двача не разбирается! Так что пригрейте дурачка
>>854156>>854157
sage #519 #854154
>>853436
Двачую, с DirectX и С++ даже в моём мухосранске были вакансии в геймдев.
C# больше используется для серверного и декстопного по финансового сектора. Хотя, когда проходили в универе мы делали подобие пейнта, это теоретически возможно. Уроки с пика >>853417 годные.
>>854520
#520 #854156
>>854153
чё тебе греть? все деньги в asp.net. десктоп сисярпа в лице WPF и winforms умирает перерождается в веб и мобильных устройствах. Unity имхо годится для 2д индюшатины, но это на любителя.
>>854159
#521 #854157
>>854153
Любая книга по C# из яндекса/гугла.
Любыве бесплатные видеоуроки на ютуб.
>>854159
#522 #854159
>>854156
Ну нужно же с чего-то начать второкурснику, который только и умеет что калькуляторы писать(даже это почти не умею)
>>854157
ИТВДН посоветовали, но там и они бабла хотят.
#523 #854174
>>854103
Parallel.ForEach был бы нужен, если бы у тебя были блокирующие методы, а у тебя асинхронная кашка, к ней можно подойти сбоку
http://pastebin.com/wcXBb91D
>>854204>>854391
#524 #854185
Не могу найти нормальный учебник на русском. Вообще ничего нет, что ли?
>>854202>>855149
#525 #854202
>>854185
Так троелсен/албахари/скит/рихтер вроде все есть. Но читать всё равно надо на ангельском, а то посоны на двощах засмеют.
>>854207
#526 #854204
>>854174
.AsParallel().ToArray() смеха ради
#527 #854207
>>854202
Блин, я то ангельский понимаю, но русский то понятнее..
>>854208
10 Кб, 725x92
#528 #854208
>>854207

>русский то понятнее


Врети
>>854210
#529 #854210
>>854208
Не врети!
>>854216
3 Кб, 605x54
#530 #854216
#531 #854231
Я понимаю, что прошу бред, но все же, есть ли тут люди которые смогут терпеть мои бредовые вопросы и не посылать сразу же нахуйв гугл?
>>854233
#532 #854233
>>854231
А ты вопросы спрашивай, а не метавопросы.
>>854235
#533 #854235
>>854233
Есть стринг с двоичным числом как мне его записать в массив?(нужно сделать из прямого кода обратный)
>>854296
#534 #854296
>>854235
стринг и есть массив символов. (ну или класс с индексатором, ссылающемся на List<char> а может и вообще char[], не рефлектил
)
на ввод подаётся число в двоичном представлении, или ты парсишь интовое число в 10 СС и загоняешь его побитово в строку?
>>854301>>854936
#535 #854298
>>854029
Смешно.
>>854441
#536 #854301
>>854296
Я ввожу в текстбокс допустим 1|101 нажимаю кнопку, мне возвращает 0|010
>>854701
#537 #854391
>>854174
Спасибо! Работает как надо!
#538 #854441
>>854298
что тебе смешно?
Нахуя спрашиваешь тогда?
#539 #854520
>>853436
>>854154
Спасибо за советы, просто мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше, типа C++ это ООП, а С# это КОП который включает в себя ООП, а еще он легче. По поводу DirectX я сразу загуглил есть ли он под .NET и нашел SlimDX который вроде полный аналог. Надо короче еще посидеть подумать, поискать больше разной инфы.
>>854541>>854643
#540 #854526
Почоны, есть ли у вас какие-то сайд проекты на которых вы зарабатываете? Есть ли вариант иметь ~50к в месяц, но при этом не тратить на работу по 10 часов 5 дней в неделю? В обычном фрилансе, я так понимаю дотнетчикам не место, но как быть-то тогда?
#541 #854541
>>854520

> SlimDX


Он в разработке до сих пор, и неизвестно, когда допилят. А в C++ всё есть здесь и сейчас.

> мужичок с этих уроков сказал что С# может делать тоже что и C++ и даже больше


Мужичок твой говорит, да недоговаривает. Не надо его слушать, он походу сам не особо понимает, что к чему. Потрать сам время, и выясни различия этих языков. Тогда тебе станет понятно, почему тебе для графики рекомендуют C++, а не C#.
#542 #854593
Что изучать для работы с бд?
>>854658>>854936
#543 #854643
>>854520
Там где directx, обычно требуется высокая скорость, при прочих равных, c++ будет быстрее шарпа, плюс, вроде как, во время сборки мусора остальные рабочие потоки приостанавливаются, в обычном софте будет незаметно, но для графы критично
#544 #854658
>>854593
EF и sql
#545 #854688
С помощью чего можно рисовать в шарпе простенькие рисунки? Например визулизация игры "жизнь", крестики-нолики, морской бой и т.д.
>>854850
#546 #854701
>>854301
winforms с его picturebox'ом и обработкой для него событий mouseup, mousedown, mousemove. wpf с его InkCanvas'ом.
>>854845>>854850
#547 #854714
Что за конструкция [/тут какая-нибудь фигня, например dll/] (например вот такой атрибут перед main методом в сгенерированном коде [STAThread])?
>>854936>>854940
#548 #854845
>>854701
Ты не понял. Я уже сделал это, теперь мне нужно разбить этот стринг по разрядно
>>854850>>854852
#549 #854850
>>854845
ой, я не тебе отвечал.
>>854688 --- чмотри суда → >>854701
#550 #854852
>>854845
а в твоей ситуации я бы делил строку на подмассивы по '|', потом присваивал каждому элементу массиву строк его же, только приведённому к int с NumberStyle.Binary, обработанного битовым оператором отрицания "~", и снова взятому через ToString()
>>854912
#551 #854912
>>854852
Ебать, как сложно, что я ничего не понял.
#552 #854936
>>854296
на char*

>>854593
ado.net, entity framework, nhibernate, если реляционные

>>854714
атрибуты
#553 #854940
>>854714
а,ты знаешь про атрибуты. тогда хз, в чем твой вопрос
#554 #855149
>>854185
Чем тебе Шилдт не угодил?
15 Кб, 338x568
32 Кб, 876x793
#555 #855184
>>852488
EventHandler это тип делегата.
gridView.SelectionChanged и radioButton.CheckedChanged это объекты делегата.
Единственное отличие обычного объекта делегата от объекта с припиской event — это то, что со вторым за пределами класса, в котором он объявлен, можно делать только 2 операции: += и -=.
>>855225
14 Кб, 481x176
23 Кб, 615x557
#556 #855197
Сишарпач, что же это творится? Решил сесть за изучение 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?
>>855260
#557 #855225
>>855184
Не единственное: event можно пихать в интерфейс, чего не сделать с делегатом
#558 #855260
>>855197
для мускуля нынче разве не надо коннектор устанавливать?
>>855399
#559 #855399
>>855260
Коннектор и плагин для студии установлены, они шли вместе с MySQL
#560 #855513
Кто-нибудь уже пилит что-нибудь на .Net core? Что вообще думаете по теме, взлетит? А то кругом шум, что .Net вот-вот умрет, а модные ребята на Go и прочий Elixir переходят
>>855626
19 Кб, 953x603
#561 #855535
Шарпач-wpfач, помоги говнокодеру советом. Есть xml-файлы примерно такой структуры: http://pastebin.com/ynTQAgBL (приложение может их загружать, либо генерировать). Вкратце, если ты посмотрел пастебин: Есть вопросы. Вопросы расфасованы по темам и предметам, в свою очередь темы тоже расфасованы по предметам. Все эти три хуйни можно добавлять/удалять. Для отображения всего этого есть 3 ListView пикрелейтед. Проблема в том, что я не знаю как это хранить в программе, да еще с учетом MVVM. К тому же, мне нужно по предмету получить список его тем, или по теме узнать ее предмет. Попробовал нахуярить несколько классов, но че-то над кодом плакать хочется.
>>855584
#562 #855584
>>855535
я бы попробовал держать файл xml на ЖД, потом через какой нибудь xml reader считывать его в DataTable из ADO.net (а им точно можно xml скармливать, правда, не помню как.) а можно и поискать, как его прям в ObservableCollection захуячить (для этого придётся Model-классы создавать), ну и потом к itemsSource'ам listView присваивать полученный datatable или observablecollection.
>>855655
13 Кб, 195x200
#563 #855626
>>855513

>Кто-нибудь уже пилит что-нибудь на .Net core?


Юзаю еще с первых беток.

Разрабатываю в VisualStudioCode на своем макбуке.
В основном пилю бэкенды для своих мобильных приложений и деплою в docker под linux.
Для базы данных юзаю Postgress через EF Core.

Получается в разы дешевле чем возится с виндоус серверами (это важно тк приложения opensource).

Сейчас жду когда Xamarin переведут на CoreCLR, вот тогда прикольно будет.
А еще прикольно будет когда добавят сборку нативных бинарников,
можно будет рассылать один бинарник вообще без зависимостей на .net (как в Go).
>>855839
#564 #855655
>>855584
Спасибо за ответ. Я додумался до решения. Заюзал три ObservableCollection, в общем.
34 Кб, 512x512
#565 #855744
В заглавном треде игнорят.
Поступил в универ на заочку. Буду изучать c#. Подскажите годную книгу по данному языку для изучения с нуля.
>>855747>>855779
#566 #855747
>>855744
Миллиард раз говорилось уже. Книги устаревают. Не нужно их читать. Выбирай себе реальную задачу, и разрабатывай, изучая по пути. По ключевым фичам разных версий языка можешь погуглить или почитать хабр, чтобы быть в курсе, что в языке нового (и не писать вечно под фреймворк 3.5 или даже 2, как некоторые делают).
>>855770
#567 #855770
>>855747
ну хоть не 1.1
sage #568 #855779
>>855744
Ты тупой или читать (шапку) не умеешь?
>>855849
#569 #855839
>>855626
Что посоветуешь почитать/посмотреть по мобильным бэкендам на .net core?
#570 #855849
>>855779
человек, не умеющий читать, спрашивает, что прочитать
Метрики сложности #571 #855936
Каким тулзами их можно посчитать?
Важно что бы это работало без Visual Studio и запускалось на mono/coreclr.

Может есть какие консольные утилитки, типа как для запуска на CI сервере?

Пишу на маке под xamarin.
130 Кб, 1311x844
#572 #856095
Котаны, вот есть простенький класс ракет, и я хочу создавать уже конкретные экземпляры.Но без передачи хуеву тучу параметров,а примерно вот так - RocketAmmo = new RocketAmmoLV(); Корчое сделать разные наследники от RocketAmmo, и чтоб наследников делать без передачи в конструктор параши. В одном наследнике ракеты по 10 бьют, а во втором по 20. Надеюсь вы поняли. Удобства ради.
#574 #856400
>>851102
ну тогда могу только пожелать удачи.
Тред утонул или удален.
Это копия, сохраненная 4 ноября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски