Выполнить расчет на основе оператора, переданного в качестве параметра метода ⇐ C#
Выполнить расчет на основе оператора, переданного в качестве параметра метода
Я пытаюсь выполнять арифметические операции на основе операторов, переданных в качестве параметра метода. Я могу сделать это разными способами, но проблема в том, что у меня есть таблица данных, с которой нужно работать. Я не могу передать определенную строку данных, так как у меня много строк данных, с которыми нужно работать.
Что я сделал: Я знаю, что это можно сделать в стиле делегата. что-то вроде ответа - https://stackoverflow.com/a/44333156
public int MainOperationSimplifeid(Func оператору) { если (перед операцией == 2) { a2 = Convert.ToInt32(textBox1.Text); textBox1.Текст = ""; результат = оператору(а1, а2); // textBox1.Text = Convert.ToString(result); а1 = 0; а2 = 0; } перед операцией++; вернуть результат; } Я знаю, я также могу добиться этого, используя перечисление или переключатель или даже перегрузку метода. Но мой код уже огромен и сложен с множеством методов поддержки. Поэтому я не хочу усложнять ситуацию.
Что мне нужно: Могу ли я сделать что-то вроде этого?
void MethodName (DataTable dt, int операнд, char op) { //несколько строк кода dt.SomeRowName1 = (double)dtRowValue операнда; //несколько строк кода dt.SomeRowName2 = (double)dtRowValue операнда; dt.SomeRowName3 = (double)dtRowValue операнда; //несколько строк кода } Я хочу добиться этого очень общим способом (повторное использование кода), а не перегружать методы или переключаться на разные операторы и писать одни и те же строки кода снова и снова.
Буду очень признателен, если кто-нибудь сможет мне в этом помочь. Заранее спасибо.
Я пытаюсь выполнять арифметические операции на основе операторов, переданных в качестве параметра метода. Я могу сделать это разными способами, но проблема в том, что у меня есть таблица данных, с которой нужно работать. Я не могу передать определенную строку данных, так как у меня много строк данных, с которыми нужно работать.
Что я сделал: Я знаю, что это можно сделать в стиле делегата. что-то вроде ответа - https://stackoverflow.com/a/44333156
public int MainOperationSimplifeid(Func оператору) { если (перед операцией == 2) { a2 = Convert.ToInt32(textBox1.Text); textBox1.Текст = ""; результат = оператору(а1, а2); // textBox1.Text = Convert.ToString(result); а1 = 0; а2 = 0; } перед операцией++; вернуть результат; } Я знаю, я также могу добиться этого, используя перечисление или переключатель или даже перегрузку метода. Но мой код уже огромен и сложен с множеством методов поддержки. Поэтому я не хочу усложнять ситуацию.
Что мне нужно: Могу ли я сделать что-то вроде этого?
void MethodName (DataTable dt, int операнд, char op) { //несколько строк кода dt.SomeRowName1 = (double)dtRowValue операнда; //несколько строк кода dt.SomeRowName2 = (double)dtRowValue операнда; dt.SomeRowName3 = (double)dtRowValue операнда; //несколько строк кода } Я хочу добиться этого очень общим способом (повторное использование кода), а не перегружать методы или переключаться на разные операторы и писать одни и те же строки кода снова и снова.
Буду очень признателен, если кто-нибудь сможет мне в этом помочь. Заранее спасибо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Запрос JPA OR для поиска 2 полей для 1 значения, переданного в качестве параметра
Anonymous » » в форуме JAVA - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-