Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
DonRumata
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 32
1

Оптимизация кода, функции и методы как параметры функции

25.02.2016, 18:19. Просмотров 319. Ответов 2

Грубо говоря - есть множество циклов которые привязаны к проверочным функциям, поскольку сами по себе тела циклов в принципе идентичны, думаю можно ли сами циклы запихнуть в функцию.

Примеры двух похожих друг на друга кодов:
1)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
                            help_str = "";
                            Helper1 = i;
                            while (Alphabet_check(textBox1.Text[Helper1])==8)  //Формирует из букв слово, которое затем записывается как отдельный токен, даже в том случае если перед словом шел не пробел, однако это указывается отдельно
                            {
                                help_str += textBox1.Text[Helper1];
                                Helper1++;
                            }
                            if (Previous_char_ID == 0)  //Проверка предыдущего символа, был ли он пробелом.
                                List_of_Words.Add(Alphabet_space_checkncreator(help_str, true));
                            else
                                List_of_Words.Add(Alphabet_space_checkncreator(help_str, false));
                            i = Helper1-1;
                            Helper1 = 0;
                            Previous_char_ID = 8;
                        }
2)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
                        Helper1 = i;
                        help_str = "";
                        while (Numeric_check(textBox1.Text[Helper1])==4)  //Формирует из цифр число, которое затем записывается как отдельный токен, даже в том случае если перед числом шел не пробел, однако это указывается отдельно
                        {
                            help_str += textBox1.Text[Helper1];
                            Helper1++;
                        }
                        if (Previous_char_ID == 0)  //Проверка предыдущего символа, был ли он пробелом
                            List_of_Words.Add(Numeric_space_checkncreator(help_str, true));
                        else
                            List_of_Words.Add(Numeric_space_checkncreator(help_str, false));
                        i = Helper1-1;
                        Helper1 = 0;
                        Previous_char_ID = 4;
                    }

Собственно как бы хотелось сделать, можно ли саму по себе функцию, или указатель на функцию передать в параметр?

Тобишь что-то вроде Private Test_function(int Pointer_on_function*) или (Pointer Pointer_on_function)?

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

P.S. Извиняюсь если что не так, на форуме первый раз, до этого в основном только читал.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2016, 18:19
Ответы с готовыми решениями:

Передавать в функции имя таблицы (Оптимизация кода)
Есть класс class A { public Int32 IDGeneration() { ... ...

Функции как параметры метода. (реализация с помощью делегатов)
Есть две функции, с разными количествами параметров и с разными типами этих параметров и есть метод...

Переделать код, создав один класс, функции сделать как методы
Помогите пожалуйста создать класс! using System; using System.Collections.Generic; using...

Как использовать строку из кода в коде в функции
как использовать строку из кода в коде в функции?

Передача функции в параметры на вход другой функции
Здравствуйте! подскажите как передать функцию в параметром другой функции, раньше функции были с...

2
Storm23
Эксперт .NETАвтор FAQ
7309 / 4302 / 1565
Регистрация: 11.01.2015
Сообщений: 5,552
Записей в блоге: 32
25.02.2016, 18:29 2
Цитата Сообщение от DonRumata Посмотреть сообщение
можно ли саму по себе функцию, или указатель на функцию передать в параметр?
Конечно можно, притом несколькими способами. Например так:

Вызов метода и передача ему функции:
C#
1
2
3
MyFunction((s, b) => s + b.ToString());
//либо 
MyFunction(Numeric_space_checkncreator);
Сам метод:
C#
1
2
3
4
        public void MyFunction(Func<string, bool, string> func)
        {
            //... здесь мы можем вызывать func: var str = func("bla bla", true);
        }
1
DonRumata
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 32
25.02.2016, 18:43  [ТС] 3
Как передавать понял, я так понимаю еще есть вариант с созданием делегата ручками и заданием ему значения?

Однако, в таком ключе метод не может быть Public, ругается на несогласованность по доступности, получается только private, но в принципе это не критично, спасибо большое.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2016, 18:43

Оптимизация кода функции swap для двусвязного списка
Написал функцию для обмена двух любых элементов двусвязного списка, рассмотрел все случаи, но мне...

Какими способами можно использовать функции класса B, как параметры функции Sub класса А?
class A {... void Sub(...); ...} class B : ... { public: float f1(float); float f2(float);...

Описать каждую строчку кода функции либо описать как осуществляется решение этой данной функции
Дана функция и хотелось бы узнать как происходит решение это функции или же подписать каждую строку...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru