пятница, 15 октября 2010 г.

Перегрузка методов в C#

Создадим для начала следующую форму


Следующий код показывает пример перегрузки методов. Самое главное, что нельзя забывать это то, что вызываемый метод задаётся входными параметрами и что их тип должен обязательно совпадать с объявленным



namespace peregruz
{
    public partial class Form1 : Form
    {
        class PingClass
        {
            //Первый метод PingClass. В параметрах ничего не передаётся
            public static string PingFunc()
            {
                return "Пинга не было";
            }

            //Второй метод PingClass. В параметрах передаётся адрес для пинга
            public static string PingFunc(string k)
            { 
                Ping p = new Ping();                
                PingReply pr = p.Send(k);
                if (pr.Status == IPStatus.Success)
                    return "Пинг google.com удачен";
                else
                    return "Пинг google.com неудачен";
            }

            //Третий метод PingClass. В параметрах передаётся адрес для пинга
            //и булевая перемення (true - добавлять к выдачи время ответа, false - нет)
            public static string PingFunc(string k, bool t)
            {
                Ping p = new Ping();
                PingReply pr = p.Send(k);
                if (pr.Status == IPStatus.Success)
                {
                    if(t == true)
                        return "Пинг google.com удачен, время отклика " + pr.RoundtripTime.ToString();
                    else
                        return "Пинг google.com удачен";
                }
                else
                    return "Пинг google.com неудачен";               
            }
        }

        public Form1()
        {
            InitializeComponent();

            label1.Text = PingClass.PingFunc();
            label2.Text = PingClass.PingFunc("www.google.com");

            label3.Text = PingClass.PingFunc("www.google.com", false);
            label4.Text = PingClass.PingFunc("www.google.com", true);
        }
    }
}