Первый класс объектов
Добрый день.
В этой статье будет рассказано о том, как же лучше всего хранить различные переменные и доставать их, когда нам это надо.
Для этого нам понадобится создать объект класса к нашей уже существующей программе (эта). Открываем проект, открываем «Solution explorer», кликаем по названию нашего проекта правой клавишей мыши и выбираем «Add Item» (рис. 1), выбираем «Class.cs» и называем его «myCl» (рис. 2)
namespace myCulc_1 { public class myCl { } }
Следующий шаг будет заключаться в том, чтобы перетащить нашу функцию в класс. Вы наверно спросили, себя: А как же мы будем передавать параметры?. Отвечаю: Довольно просто и это я опишу чуть ниже, а сейчас отмечу то, что функция проверки значений пока останется в форме. Теперь добавим еще один класс и назовем его «EnterVal» и также присвоим ему свойство «public». В этом классе мы будем размещать наши переменные, которые будут вводиться нами. Давайте опишем их:
public class EnterVal { private float N1 = 0; private float N2 = 0; // public float _N1 { get { return N1; } set { N1 = value; } } public float _N2 { get { return N2; } set { N2 = value; } } }
Теперь необходимо внести некоторые поправки в нашу форму, процедуру и функцию проверки. Также сделать ссылку на объект класса с входными параметрами:
public partial class Form1 : Form { private EnterVal enVal; private myCl mC; public Form1() { InitializeComponent(); enVal = new EnterVal(); mC = new myCl(enVal); } private void Go() { if (!check()) { return; } this.lblOut.Text = mC.myFunc().ToString(); } private bool check() { try { enVal._N1 = Convert.ToSingle(this.txtN1.Text); enVal._N2 = Convert.ToSingle(this.txtN2.Text); } catch (System.Exception erAll) { MessageBox.Show("Параметры введены неверно"); return false; } return true; } }
Откроем класс «myCl» и подтвердим ссылку на полученный объект, добавим функцию расчета:
public class myCl { private EnterVal enVal; public myCl(EnterVal enVal) { this.enVal = enVal; } public float myFunc() { float sum = enVal._N1 + enVal._N2; return sum; } }
Запустите построитель, а затем отладчик. Если никаких ошибок не оказалось, то вы все правильно сделали. Чтобы понять, как же достать входные параметры: кинем на форму один «Lable» и назавем его «lblParams». Организуем вывод всей информации в одной процедуре. Создадим новую процедуру и назавем ее «Fill», вставим код:
private void Fill() { this.lblOut.Text = mC.myFunc().ToString(); this.lblParams.Text = "Были введены:" + enVal._N1 + " и " + enVal._N2; this.txtN1.Text = ""; this.txtN2.Text = ""; }
Добавим «Fill» в процедуру «Go»:
private void Go() { if (!check()) { return; } Fill(); }
Ну вот и все, что я хотел высказать в этой сатье.
Доброго дня.