Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 5
1

Метод принимающий делегат

28.12.2017, 23:19. Показов 3224. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать статический метод, возвращающий количество элементов одномерного массива целых чисел.
Параметры: массив целых чисел, заданный критерий – объект, содержащий ссылку на метод. Тип этого параметра – делегат с одним параметром, с логическим типом возвращаемого результата (написать свой делегат).
Используя написанный метод, найти:
количество элементов массива, квадрат которых не превышает 12.6 (написать метод, ссылку на который передавать в качестве аргумента-критерия отбора).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2017, 23:19
Ответы с готовыми решениями:

Делегат не видит метод
Делегат не видит метод который я ему передаю. ниже в коде я отметил место где происходит передача....

Не срабатывает делегат и метод Invoke
Добрый день всем. Товарищи такая беда, сообразить не могу поэтому прошу вашей помощи. Есть метод в...

Метод подписывается на делегат, а не на event
Здравствуйте, в книгах написано, что делегат нужен для event: создаётся делегат, потом создаётся...

Возможно ли описать метод, принимающий переменную не заданного типа
Возможно ли описать метод, принимающий переменную неизвестного типа, точнее ее тип будет зависеть...

2
54 / 48 / 31
Регистрация: 14.04.2015
Сообщений: 273
29.12.2017, 06:17 2
Лучший ответ Сообщение было отмечено Fort9988 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Другой файл класса
    public class SomeClass  ----- имя класса
    {
        // Описываем делегат (Делегат - указатель на функцию)
        public delegate void ChangeTextDelegate(string text);
 
        // Функция которая выполняеться делегатом
        public void DoSomething()
        { 
            Код программы...
        }
 
        // Создаем мембер - объект делегата
        public ChangeTextDelegate TextChanger = null;
 
   }

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    
 
private void test1()
        {
            delegateqq.SomeClass sc = new delegateqq.SomeClass();
 
            sc.TextChanger = this.ChangeButtonText;
 
            sc.DoSomething(); // вызов функции через делегат
        }
 
 
        public void ChangeButtonText(string text)  --- измени название писал для кнопки
        {
            делаешь присвоение переменной text (text это то что выполниться в делегате)
        }
Полностью писать программу не буду, самое трудоемкое думаю тебе подсказал, остальное осталось реализовать. Проблем тут мало. Пишешь массив вызываешь делегат и в принципе все. В делегате описать алгоритм который найдет количество элементов массива, квадрат которых не превышает 12.6
0
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
29.12.2017, 12:21 3
Fort9988,
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
using System;
using System.Linq;
/* Написать статический метод, возвращающий количество элементов 
 * одномерного массива целых чисел.
Параметры: 
массив целых чисел, 
заданный критерий – объект, содержащий ссылку на метод. Тип этого параметра – 
делегат с одним параметром, с логическим типом возвращаемого 
результата (написать свой делегат).
Используя написанный метод, найти:
количество элементов массива, квадрат которых не превышает 12.6 
(написать метод, ссылку на который передавать в качестве аргумента-критерия отбора). 
 */
namespace csharp_console {
    delegate bool Compare(Object c);
    class thread2167108 {
        static int CountingArray(int[] arr, Compare logic) {
            int count = 0;
            for (int i = 0; i < arr.Length; i++) {
                if (logic(arr[i])) {
                    count++;
                }
            }
 
            return count;
        }
        static bool Logic(Object c) {
            if(Math.Pow((int)c,2) <= 12.6 ) {
                return true;
            }
            return false;
        } 
        static void Main(string[] args) {
            Random rand = new Random();
            int[] test = Enumerable.Repeat(0, 100).Select(i => rand.Next(0, 100)).ToArray();
            Console.WriteLine(CountingArray(test,Logic));
        }
    }
}
0
29.12.2017, 12:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2017, 12:21
Помогаю со студенческими работами здесь

Вызвать метод через делегат в словаре
Приветствую. Запутался в синтаксисе. Как мне вызвать метод из словаря и вернуть массив дат?...

Почему в поток передается делегат, а не ссылка на метод
Привет всем. Вопрос в следующем, допустим у нас есть метод возвращающий значение типа int и мы...

Описать класс с функцией. Объявить делегат. Произвести вызов функции через делегат
Описать функцию Exchange(X, Y), меняющую значения переменных X и Y.

Метод для клика по кнопке и ошибка "требуется класс, делегат или структура"
Кода добавляю метод для клика по кнопке пишет такие ошибки: &quot;Требуется &quot;}&quot;&quot;(хотя там вроде все...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru