Вынесение процедур и функций в отдельную dll С# - C#
Формулировка задачи:
Всем привет нужна помощь, есть код калькулятора, надо вынести функции private void AddOperatorToArray(Button bttn), private void AddToArray(Button bttn) и private void Reset() в dll как ни пробовал ничего хорошего не выходит выручайте! Вот код программы может понадобиться:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClassLibraryCalculation;
using System.Collections;
namespace WindowsFormsApplicationCalculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string log;// переменная для логирования
public ArrayList mas_store = new ArrayList();
string mas_value = "";
private void AddOperatorToArray(Button bttn)
{
mas_store.Add(mas_value);
TextBox_calculation.Text += bttn.Text;
mas_value = "";
mas_store.Add(bttn.Text);
}
private void AddToArray(Button bttn)
{
mas_value += bttn.Text;
TextBox_calculation.Text += bttn.Text;
}
private void Reset()
{
mas_value = "";
TextBox_calculation.Text = "";
mas_store.Clear();
}
private void button_one_Click(object sender, EventArgs e)
{
AddToArray(button_one);
}
private void button_two_Click(object sender, EventArgs e)
{
AddToArray(button_two);
}
private void button3_Click(object sender, EventArgs e)
{
AddToArray(button_three);
}
private void button_four_Click(object sender, EventArgs e)
{
AddToArray(button_four);
}
private void button_five_Click(object sender, EventArgs e)
{
AddToArray(button_five);
}
private void button_six_Click(object sender, EventArgs e)
{
AddToArray(button_six);
}
private void button_seven_Click(object sender, EventArgs e)
{
AddToArray(button_seven);
}
private void button_eight_Click(object sender, EventArgs e)
{
AddToArray(button_eight);
}
private void button_nine_Click(object sender, EventArgs e)
{
AddToArray(button_nine);
}
private void button_zero_Click(object sender, EventArgs e)
{
AddToArray(button_zero);
}
private void button_plus_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_plus);
}
private void button_equal_Click(object sender, EventArgs e)
{
try
{
mas_store.Add(mas_value);
mas_store.Add(button_equal.Text);
/* m_res получает первый элемент mas_store если этот элемент
* оператор типа +*-/ то выдается сообщение об ошибке, иначе получается число
*/
double m_res;
if (mas_store[0].ToString() == "")
{
m_res = 1;
}
else
{
m_res = Double.Parse(mas_store[0].ToString());
}
/* Цикл получает элементы массива и проверяет их
* если элемент оператор тогда выполниться операция над предыдущим и
* следующим элементом
*/
for (int i = 0; i < mas_store.Count; i++)
{
if (mas_store[i].ToString() == "")
{
m_res = 1;
}
else if (mas_store[i].ToString() == "+")
{
TextBox_calculation.Text = "";
m_res += float.Parse(mas_store[i + 1].ToString());
TextBox_calculation.Text = m_res.ToString();
}
else if (mas_store[i].ToString() == "-")
{
TextBox_calculation.Text = "";
m_res -= float.Parse(mas_store[i + 1].ToString());
TextBox_calculation.Text = m_res.ToString();
}
else if (mas_store[i].ToString() == "*")
{
TextBox_calculation.Text = "";
m_res *= float.Parse(mas_store[i + 1].ToString());
TextBox_calculation.Text = m_res.ToString();
}
else if (mas_store[i].ToString() == "/")
{
TextBox_calculation.Text = "";
m_res /= float.Parse(mas_store[i + 1].ToString());
TextBox_calculation.Text = m_res.ToString();
}
else if (mas_store[0].ToString() == "" & mas_store[i].ToString() == "sqrt")
{
TextBox_calculation.Text = "";
m_res = Math.Sqrt(Double.Parse(mas_store[i + 1].ToString()));
TextBox_calculation.Text = m_res.ToString();
}
}
mas_store.Clear();
mas_value = TextBox_calculation.Text;
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "Ошибка");
}
}
/// <summary>
/// Кнопка очистки, очищает Textbox и зануляет переменные
/// </summary>
private void button_Allclear_Click(object sender, EventArgs e)
{
TextBox_calculation.Text = "";
Reset();
}
private void button_minus_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_minus);
}
private void button_Clear_Click_1(object sender, EventArgs e)
{
TextBox_calculation.Text = "";
Reset();
}
private void button_divide_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_divide);
}
private void button_mult_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_mult);
}
private void button_square_root_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_square_root);
}
private void button_point_Click(object sender, EventArgs e)
{
TextBox_calculation.Text += ",";
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void справкаToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Программа калькулятор;)","Справка");
}
private void button_pow_Click(object sender, EventArgs e)
{
AddOperatorToArray(button_pow);
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}Решение задачи: «Вынесение процедур и функций в отдельную dll С#»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Windows.Forms;
namespace ClassLibraryCalculation
{
public class Calculate
{
public ArrayList mas_store = new ArrayList();
string mas_value = "";
private void AddOperatorToArray(Button bttn)
{
mas_store.Add(mas_value);
TextBox_calculation.Text += bttn.Text;
mas_value = "";
mas_store.Add(bttn.Text);
}
private void AddToArray(Button bttn)
{
mas_value += bttn.Text;
TextBox_calculation.Text += bttn.Text;
}
private void Reset()
{
mas_value = "";
TextBox_calculation.Text = "";
mas_store.Clear();
}
}
}