Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
95 / 15 / 3
Регистрация: 09.07.2009
Сообщений: 886
.NET 4.x

Посоветуйте понятные книги по сложным для меня элементам C#

24.12.2019, 23:44. Показов 583. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не очень понимаю, для чего нужны делегаты, лямбда-выражения, итераторы, когда их нужно использовать, а когда нет. Посоветуйте, пожалуйста, книгу, в которой объяснялось бы понятным языком их назначение, их преимущества и на конкретных примерах разбиралось бы, когда их использование делает понятным код, или сокращает количество кода, или повышает скорость обработки данных (уменьшает время обработки данных).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2019, 23:44
Ответы с готовыми решениями:

Не понятные для меня ошибки
Сделал курсач, должен работать, но почему-то выкидывает ошибки, подскажите, что не так, чтоб исправить, буду благодарен очень.#include...

Самые не понятные для меня лабы:(
Доброго времени суток. Сдал почти все работы. Скоро конец практики. Осталось совсем чуть чуть и вот эти .... работы портят всю оценку мою...

посоветуйте книги по математике и физике за 5-11 И еше книги по матиматике для программиста?(типа алгоритмы,мат анализ и тд)
Народ всем привет у меня к вам вопрос вот я хочу стать программистом на C++ И мне требуется знания математики и физики(хочу проги писать,и...

4
C# = ♫♪♫♪♪♫
 Аватар для Sanek32
57 / 56 / 18
Регистрация: 02.08.2014
Сообщений: 283
25.12.2019, 05:43
Цитата Сообщение от tumanovalex Посмотреть сообщение
для чего нужны делегаты, лямбда-выражения
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
class Program
    {
        static void Main(string[] args)
        {
            var array = new int[] { 1, 5, 10 };
 
            //WriteConsole_array Именованный делегат вызывающий лямду
            Action WriteConsole_array = new Action(
                //Анонимный метод непринимающий значений (Лямда)
                () =>
            {
                //Обратите внимание, что мы имеем доступ к локальной переменной array в методе без параметров 
                //т.к находимся в теле метода Main
                foreach (var item in array)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine("-----------------------");
            });
 
            //Вызываем наш метод передавая массив array и ссылку на метод More1
            // Метод не вызавается он активируется делегатом myDelegate(array[i]) в теле метода MySumm
            //Когда я писал метод More1 у меня возникло затруднение с его названием
            //Задача его простая проверить одно условие if (d > 1), а нам дальше надо проверить условие if (d > 5)
            //И что ? будем создавать метод More5 ? А ведь подобных методов может быть множество 
            MySumm(ref array, More1);
 
            //Выводим на экран резульат 
            WriteConsole_array();
 
            //Лямда приходит к нам на помошь  
            //Вызываем наш метод передавая массив array и лямду с сегнатурой делегата
            MySumm(ref array, (int i) =>
            {
                //Если елемент массива больше 5 то сработает условие в методете MySumm и елемент увеличит свое здачение на 1
                if (i > 5)
                    return true;
                else
                    return false;
            });
 
 
            //Вызываем повторно вывод на экран результата
            //Если бы не Лямда выше прилось бы создавать отделный метод с параметром принимающим int[]
            WriteConsole_array();
            Console.Read();
            //И зачем нам тогла лямда спросите вы если можно создать метод
            //Метод будет доступет на весь класс Programm, а лямда видна только в методе Main
        }
 
 
        public delegate bool MyDelegate(int i);
 
        public static void MySumm(ref int[] array, MyDelegate myDelegate)
        {
            for (int i = 0; i < array.Length; i++)
            {
                //Ссылка на метод (делегат) где в параметр передаем елемент массива 
                //Логика определенная в методе переданная через делегат если результат метода истина то увеличиваем элемент массива на 1
                if (myDelegate(array[i]))
                {
                    array[i] = array[i] + 1;
                }
            }
        }
 
        public static bool More1(int d)
        {
            if (d > 1)
                return true;
            else
                return false;
        }
    }
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
25.12.2019, 08:27
Волшебных пенделей непосредственно в учебе не существует.
Или изучили или не изучили. Уровень Ваших знаний исключительно на Вашей ответственности.

Сейчас книги по азам C# устарели. Актуальные знания онлайн на Метаните или в официальных онлайн справочниках.
Цитата Сообщение от tumanovalex Посмотреть сообщение
делегаты
https://metanit.com/sharp/tutorial/3.13.php
Цитата Сообщение от tumanovalex Посмотреть сообщение
лямбда-выражения
https://metanit.com/sharp/tutorial/3.16.php
Цитата Сообщение от tumanovalex Посмотреть сообщение
итераторы
https://metanit.com/sharp/tutorial/4.12.php
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
25.12.2019, 15:55
Цитата Сообщение от amr-now Посмотреть сообщение
Сейчас книги по азам C# устарели.
Спорное утверждение в рамках интересующих ТСа тем: делегаты, лямбда-выражения, итераторы.
1
Wanna be serious
 Аватар для Bespridelschic
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
26.12.2019, 17:40
Берете любую из этого перечня для начинающих, и изучаете. От себя рекомендую книгу Троелсена, на мой взгляд она более подробно и глубже затрагивает большинство тем, что Вам пригодятся в дальнейшем
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2019, 17:40
Помогаю со студенческими работами здесь

Посоветуйте книги для программирования
Подскажите пожалуйста мне книгу по pascal(для начинающих) Прошу не делать как на другом форуме, они просто кидали сайт с книгами, а их...

Посоветуйте книги по С++ для начинающих
Посоветуйте книги по С++ для начинающих.

Посоветуйте книги для курсовой
Пишу курсовую на тему &quot;Классификация, характеристики, принцип работы внешних запоминающих устройств&quot;. Нашел много информации в...

Посоветуйте книги для углубленного изучения C#
Привет, посоветуйте книги для углубленного изучения C#(чтобы была работа с данными и т.д), т.к все основы я уже знаю, хотелось бы более...

Посоветуйте книги для изучения DirectX
Посоветуйте мне пожалуйста хорошие книги/сайты по DirectX,желательно с уроками для новичков.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru