Как реализовать класс one который хранит все методы?
Но видимо проблема с передачей конструкторов я думаю
public partial class Form1 : Form
{
private one clasone;
public Form1()
{
InitializeComponent();
}
public class one //основний для роботи з массивами символів
{
private DataGridView dataGridView1;
private TextBox textBox1;
public int check = 0;
public double[] Array = new double[0];
public one(DataGridView dataGridView1, double[] array, TextBox textbox1)
{
this.dataGridView1 = dataGridView1;
this.Array = array;
this.textBox1 = textbox1;
}
private bool Check()
{
if (check != 0)
return true;
else
{
MessageBox.Show("Not enough values!");
return false;
}
}
public void BubbleSort()
{
if (Check() == true)
{
double temp;
for (int i = 0; i < Array.Length; i++)
{
for (int j = 0; j < Array.Length - 1 - i; j++)
{
if (Array[i] > Array[j + 1])
{
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
for (int i = 0; i < Array.Length; i++)
{
textBox1.Text += (Array[i].ToString() + " ");
}
}
}
public Tuple<double, double> MinMax()
{
if (Check() == true)
{
textBox1.Visible = true; textBox1.Clear();
double min = Array.Min();
double max = Array.Max();
textBox1.Text = "Min= " + min + " Max= " + max;
return (Tuple.Create(min, max));
}
else
{
double a = 0;
return (Tuple.Create(a, a));
}
}
public void Ave()
{
if (Check() == true)
{
textBox1.Text += ("С: " + Array.Average());
}
}
public void ParOrNot()
{
if (Check() == true)
{
for (int i = 0, j = 0, k = 0, n = 0; i < Array.Length; i++)
{
double Par, Not, ParNotPar;
if ((Array[i] % 2) == 0 && (Array[i] != 0))
{
Par = Array[i];
dataGridView1.Rows[j].Cells[1].Value = Par; //richTextBox1.Text += "Par=" + " " + Par;
j++;
}
else if (Array[i] % 2 != 0)
{
Not = Array[i];
dataGridView1.Rows[k].Cells[2].Value = Not;//richTextBox1.Text += "Not=" + " " + Not;
k++;
}
else if (Array[i] == 0)
{
ParNotPar = Array[i];
dataGridView1.Rows[n].Cells[3].Value = ParNotPar;
n++;
}
}
}
}
}
private void button1_Click(object sender, EventArgs e)
{
button1.Text = "Перезаписать";
int SumCell = 0;
bool indic = true;
var _listOfTrad = new List<double>();
for (int a = 0; a < dataGridView1.Rows.Count - 1; a++)
{
if (dataGridView1.Rows[a].Cells[0].Value != null)
{
_listOfTrad.Add(Convert.ToDouble(dataGridView1[0, a].Value));
}
else
{
indic = false;
}
}
for (int i = 0; i < dataGridView1.RowCount; i++) //кол-значний в dataGrid
{
for (int y = 0; y < dataGridView1.ColumnCount; y++)
{
if (dataGridView1[y, i].Value != null)
{
SumCell = SumCell + 1;
}
}
}
clasone.check = SumCell;
if (indic == true)
{
double[] array = new double[SumCell];
array = _listOfTrad.ToArray();
clasone = new one(dataGridView1, array, textBox1);
}
else if (indic == false)
{
MessageBox.Show("Not enough values!");
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (clasone.check != 0) {
{
if (comboBox1.Text == "Sort")
{
clasone.BubbleSort();
}
else if (comboBox1.Text == "MinMax")
{
clasone.MinMax();
}
else if (comboBox1.Text == "Average")
{
clasone.Ave();
}
else if (comboBox1.Text == "PairUnpair")
{
clasone.ParOrNot();
}
}
}
}
}
Источник: Stack Overflow на русском