Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Разбираемся в методологии повторяемого исполнения кода в C#: https://proglib.io/w/ff069dd8
Интересный курс по проектированию на C# с каверзными практическими заданиями на платформе Stepik, в котором вы ознакомитесь с концепциями и приёмами программирования, помогающими создавать большие программные проекты на C#: https://proglib.io/w/3f560022
Почему все-таки выведется Foo.Quux()?

Класс Bar.Quux имеет область видимости private и не может быть использован из дочернего класса. Поэтому при вызове метода Quux из класса Baz будет использован класс Foo.Quux.
​​📕 25 лучших книг для программистов

Список наиболее часто рекомендуемых книг о программировании, составлен по результатам анализа упоминаний в интернет-публикациях. Книги об алгоритмах, чистом коде, паттернах проектирования, а также пособия для развития soft skills и прохождения собеседований.

https://proglib.io/sh/hwx5MziQen
Весь мир на удаленке, заработки в офлайне просели – нельзя полагаться на один источник дохода. Бывшие офисные сотрудники штудируют курсы и уходят во фриланс за онлайн-заказами. Преимущества очевидны:

💎 Зарплату определяют нагрузка и опыт, а не мнение начальника
🌐 Международный рынок: больше вариантов, оплата в валюте
🌊 Сам выбираешь, когда трудиться и отдыхать

Но работа во фрилансе отличается от офисной. Учиться лучше у людей с опытом – на GeekBrains freelance. Курсы по тестированию, верстке, мобильной разработке и вебу – все с акцентом на быстрый старт во фрилансе. Делимся ссылкой: https://proglib.io/w/5d8dce59
Действительно, на экран будет выведено Bar.Quux(object) и Baz.Quux(params T[]).

Есть такое правило: если при вызове некоторого метода в «текущем» классе находится подходящая сигнатура, то компилятор не будет даже смотреть на родительские классы. В данной задаче классы Bar и Baz имеют собственные версии метода Quux. Их сигнатуры подходят под передаваемый набор параметров, а значит они и будут вызваны, а перегруженный Quux базового класса будет проигнорирован.

Источник: «Задачник.NET» Андрея Акиньшина
Практическая причина, почему стоит выбрать ORM вместо сырого ADO.NET: https://proglib.io/w/6b223eff
Автор статьи приводит множество примеров рефакторинга из реальной (некорректной) кодовой базы с подробным объяснением и иллюстрациями: https://proglib.io/w/bae12d80
В связи с тем, что переменная s не инициализирована, такая программа не скомпилируется.

Программа заработает в случае, если переменной s будет присвоено хоть какое-то значение, например:

string s = ""; 
s += "string"; 

Источник: http://www.quizful.net/test/c_sharp_basic
Можете однозначно утверждать, что C# медленнее, чем C++? Автор статьи, будучи младшим разработчиком, был уверен, что ответ будет «Да, определенно». С опытом пришло понимание, что этот вопрос не очевиден и довольно сложен. Разбираемся: https://proglib.io/w/58fadd15
Задача «Linq:QueryAfterRemove». Что выведет программа?
Anonymous Quiz
47%
1
9%
3
37%
2
7%
Нет правильного ответа
При вызове list.Where(c => c.StartsWith("B")) запрос будет только построен, но не выполнен. Реальное выполнение начнётся в момент вызова query.Count(). К этому моменту значение list будет {"Foo","Baz"}, следовательно будет найден только один элемент, начинающийся с ’B’.

Источник: «Задачник.NET» Андрея Акиньшина