Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для VisMUT
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 49

Возможно ли преобразовать содержимое TextBox в код внутри процедуры/класса?

12.03.2017, 21:25. Показов 1368. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Вопрос следующий: возможно ли перенести текстовое значение из TB в функцию в классе (что бы в этой функции данный текст принял значение кода).
Иными словами у меня есть программа, которая считает интегралы, и соответственно она использует функцию (в моем случае она находится в классе), как сделать так, что бы пользователь мог к примеру ввести функцию в следующем виде: Math.Pow(x,2) в TB, и это содержимое преобразовалось в код, который в свою очередь будет использован в качестве функции для вычисления x^2 в классе.
Возможно пишу глупости, но если это невозможно, то хотел бы услышать альтернативный вариант. Спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2017, 21:25
Ответы с готовыми решениями:

Внутри процедуры GetStdHandle содержимое регистра ebp меняется?
Пытаюсь разобраться почему при написании своих собственных процедур ассемблер вставляет строки push ebp mov ebp, esp . . mov esp,...

Обработка RaiseEvent внутри процедуры - насколько возможно?
Начал ковыряться в NetMQ. Основные примеры в C#. С виду - вроде не проблема, однако... Имеем такой код в C#: using System; using...

Класс внутри класса - возможно ли?
Всем привет! Помогите, пожалуйста, понять следующий текст задания: Непонятен момент про класс date, которым нужно расширить...

4
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
12.03.2017, 21:30
Позднее связывание гуглите.
0
 Аватар для VisMUT
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 49
12.03.2017, 21:37  [ТС]
Ок, спасибо, почитаю, но хотел бы попросить привести пример решения моей задачи, возможно так быстрее разберусь, если Вас, конечно, не затруднит.
0
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
12.03.2017, 22:58
Лучший ответ Сообщение было отмечено VisMUT как решение

Решение

Если чисто для себя и поиграться, то вот, иначе так делать нельзя.
tbX - текстбокс с аргументом
tbFunction - текстбокс с функцией
tbResult - текстбокс с результатом

Форма:
Кликните здесь для просмотра всего текста
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
using System;
using System.IO;
using System.Windows.Forms;
 
namespace test_1
{
    public partial class MainForm : Form
    {
        private IMathematicalEquations _me = new MathematicalEquations();
 
        public MainForm()
        {
            InitializeComponent();
            tbFunction.Text = File.ReadAllText("..\\..\\MathematicalEquations.cs"); // путь к файлу
        }
 
        private void btnOk_Click(object sender, EventArgs e)
        {
            int x;
            if (!int.TryParse(tbX.Text, out x))
                return;
 
            if (!string.IsNullOrWhiteSpace(tbFunction.Text))
            {
                _me = (IMathematicalEquations) new Compiler().CompileAndInstantiate(tbFunction.Text);
 
                if (_me == null)
                    return;
            }
 
            var answer = _me.Power(x);
 
            tbResult.Text = answer.ToString();
        }
    }
}

IMathematicalEquations.cs
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
namespace test_1
{
    public interface IMathematicalEquations
    {
        double Power(int x);
    }
}

MathematicalEquations.cs
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
namespace test_1
{
    public class MathematicalEquations : IMathematicalEquations
    {
        public double Power(int x)
        {
            return x * x;
        }
    }
}

Compiler.cs
Кликните здесь для просмотра всего текста
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
using System;
using System.CodeDom.Compiler;
using System.Windows.Forms;
using Microsoft.CSharp;
 
namespace test_1
{
    public class Compiler
    {
        public object CompileAndInstantiate(string cs)
        {
            var ps = new CompilerParameters { GenerateInMemory = true, GenerateExecutable = false };
            foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
                ps.ReferencedAssemblies.Add(assembly.Location);
 
            var provider = new CSharpCodeProvider();
            var res = provider.CompileAssemblyFromSource(ps, cs);
 
            if (res.Errors.HasErrors)
            {
                MessageBox.Show(res.Errors[0].ErrorText);
                return null;
            }            
            
            var type = res.CompiledAssembly.GetTypes()[0];
            return Activator.CreateInstance(type);
        }
    }
}
Миниатюры
Возможно ли преобразовать содержимое TextBox в код внутри процедуры/класса?  
1
 Аватар для VisMUT
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 49
14.03.2017, 06:43  [ТС]
Спасибо за информацию. Буду пытаться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2017, 06:43
Помогаю со студенческими работами здесь

Как передать в TextBox содержимое поля класса ?
И можете объяснить как взаимодействует форма с другим классом? Как в методе обычного класса обратится к объектам формы?

Возможно ли скомпилированный код преобразовать в исходный ?
Прочитал в книге, что компилятор vb.net использует язык Intermediate Language (IL), что позволяет без труда с помощью специального ПО...

Возможно ли как-то ускорить выполнение кода? Код внутри.
Есть список жанров (например музыкальных). Мне нужно собрать большое кол-во разных жанров и добавить их в базу данных. Есть окно, в нём...

После нажатия на кнопку submit исчезает содержимое фрейма (+код внутри)?
<FORM NAME="sendform" ACTION="add.php" METHOD="post"> <? error_reporting(0); $login=$_GET; ?> <INPUT TYPE="hidden"...

Как преобразовать текст из TextBox в код?
Как преобразовать текст из TextBox в код?Нужно ввести в поле простенький метод и по кнопке выполнить его.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru