Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ C#.docx
Скачиваний:
16
Добавлен:
20.11.2019
Размер:
1.85 Mб
Скачать

5.2. Создание отдельных классов

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

Создавать классы можно двумя способами:

  • написать классы самому «с нуля»; не забудьте, что класс формы должен быть впереди собственных классов;

  • ставить курсор мыши на имя проекта, нажать на правую клавишу, выбрать из выпадающего меню пункт «Add», далее «Class».

namespace Klassid

{

public class Cl1

{

protected int a1 = 0;

protected double a2 = 3.5;

private Cl3 _Cl3;

public Cl1(int i, double x)

{

a1 = i;

a2 = x;

}

public string opp()

{

_Cl3 = new Cl3("Greeting from Moscow");

return _Cl3.get_c1();

}

public double op2()

{

return (a1*a2);

}

}

public class Cl2 : Cl1

{

public string st1;

public Cl2(int i, double x, string s)

: base(i, x)

{

st1 = s;

}

public string op21()

{

return st1;

}

}

public class Cl3

{

public string c1;

public Cl3(string t)

{

c1 = t;

}

public string get_c1()

{

return c1;

}

}

public class Cl4

{

public int i1;

public Cl4(int k)

{

i1 = k;

}

public int fun2()

{

return i1;

}

}

class Cl5 // обработка массива

{

int[] k;

public Cl5(int[] temp)

{

k = new int[temp.Length];

for (int i = 0; i < temp.Length; i++)

k[i] = temp[i];

}

public int sum_pol()

{

int u=0;

for (int i = 0; i < k.Length; i++)

if (k[i] > 0) u += k[i];

return u;

}

} }

Работа с классами из формы:

namespace Klassid

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Close();

}

private void button2_Click(object sender, EventArgs e)

{// создание объекта класса Cl3

Cl3 pp = new Cl3(textBox1.Text);

textBox2.Text = pp.get_c1();

}

private void button3_Click(object sender, EventArgs e)

{ // работа с классом Cl2

Cl2 q;

string s1;

s1 = textBox1.Text;

q = new Cl2(6, 2.5, s1);

textBox2.Text = q.st1;

}

private void button4_Click(object sender, EventArgs e)

{ // работа с классом Cl2

Cl2 q;

string s1;

int i;

s1 = textBox1.Text;

i=Convert.ToInt32(textBox2.Text);

q=new Cl2(i,2.5,s1);

textBox2.Text=Convert.ToString(q.op21());

}

private void button5_Click(object sender, EventArgs e)

{// работа с классом Cl1, а через него с Cl3

Cl1 f1 = new Cl1(5, 3.7);

textBox1.Text = f1.opp();

}

private void button6_Click(object sender, EventArgs e)

{// обработка массива

string[] z;

string s1;

int[] t;

s1 = textBox1.Text;

z = s1.Split(';');

t=new int[z.Length];

for (int i = 0; i < z.Length; i++)

t[i] = Convert.ToInt32(z[i]);

Cl5 My_Cl = new Cl5(t);

textBox2.Text = "Summa " + My_Cl.sum_pol();

}

} }