Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 35
.NET 4.x

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

25.02.2016, 18:19. Показов 1196. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2016, 18:19
Ответы с готовыми решениями:

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

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

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

2
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.02.2016, 18:29
Цитата Сообщение от 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
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 35
25.02.2016, 18:43  [ТС]
Как передавать понял, я так понимаю еще есть вариант с созданием делегата ручками и заданием ему значения?

Однако, в таком ключе метод не может быть Public, ругается на несогласованность по доступности, получается только private, но в принципе это не критично, спасибо большое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2016, 18:43
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru