Автор,я твой фанат,давай больше видео,самые толковые уроки по rus c# на ютубе.
@hristy-A2 жыл бұрын
19:07 немного неправильно описан метод. Я долго не мог понять, почему в MakeGenericMethod передаётся 2 параметра, а в приведённой выше Вами синей подсказке "OrderBy(IEnumerable, Func) один. На MSDN 2 параметра, и правильно будет OrderBy(IEnumerable, Func). Уроки просто суперские, спасибо Вам большое, ничуть не потеряли актуальность и даже наоборот, много нового узнал :)
@serhiitelf62985 жыл бұрын
Игорь, вы молодец. Я 3 года учил с# в универе. Знания были очень поверхностные. А после ваших уроков начал понимать суть, и как оно работает! Большое спасибо за труд!
@ЕленаПрекрасная-ф9ъ7 жыл бұрын
спасибо большое за видео уроки, я как представила, как их было тяжко делать, так и думаю что вам это стоило не мало трудов
@KiliMoa5 жыл бұрын
Крутяк !!!!! Очень важная, интересная и отлично изложенная информация !!
@maxlee954210 жыл бұрын
спасибо большое, ваши уроки - лучшие по си шарпу
@syberianbeast77965 жыл бұрын
Мозг так и просится выйти покурить, но похоже лучше уже ни кто не изложит)
@sergeykozlov38119 жыл бұрын
Здравствуйте! Хочу сказать большое спасибо за ваши замечательные уроки, смотрю их с большим удовольствием! Тема деревьев выражений для меня абсолютно новая, и после просмотра вашего урока возникли вопросы. Прежде всего к чему такие сложности и почему в данном примере (с соритровкой множества по имени свойства) не использовать рефлексию напрямую? В одном из комментариев уже задавали такой вопрос и там даже был свой пример реализации. Вы пишете "В случае с деревьями выражений Reflection используется пару раз. А в этом случае - по количеству сортируемых элементов." Но почему в примере с деревьями Reflection используется пару раз? В формировании дерева выражения участвует Expression.Property, которое, как я понимаю, работает через рефлексию (а как иначе получить свойство по имени). Т.е. при сортировке для каждого элемента будет вызываться полученное лямбда выражение, внутри которого каждый раз точно также используется рефлексия - для каждого элемента множества. Я решил проверить что же будет быстрее работать и набросал пример github.com/serkozzz/c_sharp_lessons-expressions/tree/master/TimeTest У меня не получилось придумать хороший пример, который сильно нагрузил бы систему, но по результатам моего примера всё же складывается впечатление, что без деревьев работает быстрее. Скриншот результатов запуска: github.com/serkozzz/c_sharp_lessons-expressions/blob/master/Time%20test.jpg Что скажете?
@AlexDEVpro6 жыл бұрын
Вы правы, но цель урока - не научить эффективной реализации сортировки, а показать основы деревьев выражений. В данном уроке и другие допущения были сделаны, о которых было явно сказано. Что же касается real world-реализации, конечно, делать как в данном уроке - не лучший вариант с точки зрения эффективности и, кстати, для этого предлагается Dynamic LINQ.
@bt13ka10 жыл бұрын
спасибо! доходчиво
@iwantpizza66932 жыл бұрын
внатуре четко
@MrDudeNudem4 жыл бұрын
Мощно! :)
@СофияСолнцева-й7щ10 жыл бұрын
Не обратили внимания на класс Person и ладно, но правильнее было бы разъяснить момент связывания объекта и таблицы. У меня, например, долго ничего не выходило с bindingSource1 из панели инструментов. А нужно было не перетаскивать новый bindingSource1 с панели инструментов на форму и пытаться его связать, а непосредственно в DataGrid задать источником данных класс (в представленном меню - объект) Person, что автоматически создаст personBindingSource и свяжет грид с объектом. Затем можно отредактировать заголовки столбцов с заданных по умолчанию.
@alukardishe7 жыл бұрын
Но урок то не про связывание данных, а про деревья выражений. Не знаете как заливать данные в таблицу, тогда вам рано еще смотреть этот урок. Разберитесь сначала с основами контролов.
@СофияСолнцева-й7щ10 жыл бұрын
А в общем и целом Вы делаете нужную работу и Ваши уроки действительно выглядят полезными - жаль только, что несмотря на попытки выпускать уроки почаще ничего не получается и они выходят редко.
@alekseikorsak63559 жыл бұрын
А можно ссылку на как "завязать DataGrid на BindingSource"?
@alexanderzhyrok1336 жыл бұрын
Спасибо, очень помогло
@sergepikovsky33858 жыл бұрын
Обращаю внимание, на то, что ответ о привязке класса Person к источнику данных грида (с последующей русификацией столбцов) раскрыт по ссылке www.cyberforum.ru/windows-forms/thread1240579.html . Помучался...
@РНС_Саакашвили Жыл бұрын
спасибо . . . я тоже часа 2 мучился оказалось нужно было добавить вот это: dataGridView1.DataSource = bindingSource1;
@YuryYatskov7 жыл бұрын
Отличное разъяснение! Спасибо! Но мне все же не понятно как составить дерево с группировкой, где могут быть группы указанные пользователем. И с Dynamic Linq группировка толком также не получается. Как для такого запроса составить дерево или строку для Dynamic Linq? var queryShipments = from shipmentItem in shipmentsData group shipmentItem by new { City = shipmentItem.City, Country = shipmentItem.Country } into shipmentGroup select new { City = shipmentGroup.Key.City, Country = shipmentGroup.Key.Country, Quantity = shipmentGroup.Sum(q => q.Quantity), SumMoney = shipmentGroup.Sum(s => s.SumMoney) }; или в таком виде var queryShipments = shipmentsData.GroupBy(x => new { x.City, x.Country }).AsQueryable() .Select(b => new { City = b.Key.City, Country = b.Key.Country, Quantity = b.Sum(q => q.Quantity), SumMoney = b.Sum(s => s.SumMoney) }); В сети все обсуждают один два легких примера, чуть глубже никто не копает, во вложенные запросы, в группировки, временные таблицы...
@fedirkatushonok76796 жыл бұрын
Отличное видео! Но появился вопрос, а как сделать сортировку столбца наоборот? Т.е. не в порядке возрастания, а в порядке убывания?
@vitalikdemko10 жыл бұрын
Могли вы бы рассказать о dependency injection и некоторые паттерны такие как mvvm и mvp?
@Defazze10 жыл бұрын
Про MVP см. урок "Пример построения приложения". Про DI будет обязательно в одном из следующих уроков.
@vitalikdemko10 жыл бұрын
Спасибо за ответ.
@Eugensson10 жыл бұрын
Defazze MVVM бы, да под Метро приложения
@СофияСолнцева-й7щ10 жыл бұрын
У меня оффтоп. Ниже уже был мой вопрос по GDI+. Но вот нашёл я на коудпроджекте контрол для построения графиков Line Graph Control, но не знаю как его использовать, хоть он у меня на панели уже - даже при попытке сохранить файл с этой приблудой выдаёт ошибку null reference. Тест программа не строит никаких линий - в ней не нашёл никаких методом загружающих данные из файла, только Buffer buffer и buffer.GetIndex(). Можете разъяснить положение? Я имею в виду - должна же быть возможность добавлять данные из файла, как в моём собственном коде при добавлении данных из файла в массив.
@mikhailsloushch505210 жыл бұрын
Скажите, а почему Grid отображает данные в колонках, только если данные хранятся в свойствах класса, а в полях нет, даже если они помечены модификатором Public?
@KiliMoa5 жыл бұрын
только там method.MakeGenericMethod(typeof(T), propretyExpression.Type); он возвращает значение, а не типизирует var result = (IEnumerable)method.Invoke(null, new object[] { sourse, lambda}); так что надо var result = (IEnumerable)method.MakeGenericMethod(typeof(T), propretyExpression.Type).Invoke(null, new object[] { sourse, lambda}); Я пол дня не мог понять
@ReasonX310 жыл бұрын
Скажите, пожалуйста, будет ли урок посвященный указателям и unsafe коду?
@Defazze10 жыл бұрын
Честно говоря, не вижу необходимости посвящать этой теме отдельный урок. unsafe-код выбивается из общей парадигмы .NET и используется не так часто, желающие могут изучить вопрос отдельно. Ну или перейти на C++ )
@mikhailsloushch505210 жыл бұрын
А куда нужно распаковать архив Dynamic Linq?
@Defazze10 жыл бұрын
Поставьте его через NuGet
@СофияСолнцева-й7щ10 жыл бұрын
Буду ставить ReSharper - ибо чувствую, что в этой сети интерфейсов, классов и методов можно завязнуть навечно.
@TheDen38rus6 жыл бұрын
Кто - нибудь помогите, почему в newLambada, скобки, содержащие делегат Func, идут перед lambdaExpression.Compile(); На минуте 6:57
@levkurbanov4315 жыл бұрын
В скобках тип. Это явное приведение возвращаемого из метода Compile() делегата к типу Func.
@aldredo55438 жыл бұрын
дерево классов хотелось бы посмотреть
@dimitrikatzman855010 жыл бұрын
а продолжение будет??
@Defazze10 жыл бұрын
Продолжение чего?
@dimitrikatzman855010 жыл бұрын
курса по c#
@Defazze10 жыл бұрын
Dimitri Katzman уже есть 18 уроков, и дальше будут выходить
@dimitrikatzman855010 жыл бұрын
Я нашёл только 15
@Defazze10 жыл бұрын
Dimitri Katzman Программирование на C#. Урок 16. Entity Framework. Часть1. Программирование на C#. Урок 17. Entity Framework. Часть 2. Программирование на C#. Урок 18. Entity Framework. Часть 3 Ну или так: dflessons.ru
@ReasonX310 жыл бұрын
Вопрос, может и не в тему. Вы часом не знаете где найти литературу по написанию виртуальной машины?
@Defazze10 жыл бұрын
К сожалению, не знаю, разве что - в гугле )
@ReasonX310 жыл бұрын
В гугле где-то 99% результатов о том, как пользоватся уже существующими.
@ReasonX310 жыл бұрын
Хотя, нет, таки нашел ))
@ElijahMplace10 жыл бұрын
ReasonX7 А можно ссылочку?)
@ReasonX310 жыл бұрын
Elijah Capricorn Туториал по написанию простой виртуальной машини, правда на англ. www.codeproject.com/KB/recipes/B32Machine1/VMCS.pdf
@MsKarlason8 жыл бұрын
ReSharper платный? у меня он бесплатно работает, скачал с офф. сайта, ничего не ломал, всё честно.
@YuriiKosiak8 жыл бұрын
Спасибо за видео. Но не слышно ничего! Я до этого смотрел в наушниках и было норм... Досадно.
@dad912 Жыл бұрын
легко
@alexcafpir81668 жыл бұрын
Писец полный, для не подготовленного сознания все это выглядит на гране шаманских плясок. Похоже нужен не слабый опыт, чтобы все это осознанно воспринимать и пользоваться интуитивно.
@Arthur_Akhmetkhanov3 жыл бұрын
Я вообще ничего не понял, что такое exception? Зачем переделывать то что и так работает? Для оптимизации? Так же в видео вообще не обьяснили что делают разные методы эксепшена. Такое чувство, что автор потерял половину своего подготовленного матерала
@DimaJP5 жыл бұрын
Вещь интерестраня - но мне сам урок не зашел. Как по мне так в самом примере было слишком много допущений и белых пятен. Я с этом тематикой признаться не знаком, но и разобраться не получилось. Похоже на обьяснение теоремы из геомертии когда надо просто поверить и начать использовать. Извините что дизлайкнул. Не понравилось обяснение самой Лямбдя - почему ее сформировали именно так. + Не понятен механизм формирования вызова выходного метода. Ваши уроки интерестные - но этот из серии вот можно вот так вот, если хотите знать глубже - разбирайтесь сами.
@mikhailslinko6322 жыл бұрын
Если автор бы объяснял каждое свое джвижение - урок бы затянулся на часов 10. Если вы не знаете, что такое лябда, делегат или ещё слишком неопытны для написания кода с применением рефлекшена, то пожалуйста, не обвиняйте в этом автора. Он в начале ролика ясно дал понять, что для просмотра это видео нужно уже много знаний.
@DimaJP2 жыл бұрын
@@mikhailslinko632 возможно я не прав и просто поленился проработать урок ещё раз более вкрадчиво, но как я сказал изначально, на мой взгляд проблема не в материале, а в последовательности подачи. Автору тем не менее респект. И спасибо вам за отзыв на мой негативный комментарий. В чем то я прав и в тоже время нет)))