Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET.


Информационный Канал Subscribe.Ru

C# и .NET. Уроки с сайта http://progs.biz

Рассылка №25

Основы C#. Урок 42. Переопределяем методы класса System.Object.

Полные версии уроков (с картинками) можно найти по адресам
Урок 42. Переопределяем методы класса System.Object.

Основы C#. Урок 42. Переопределяем методы класса System.Object

Часть методов класса System.Object, рассмотренных на прошлом уроке, были виртуальными. Это значит, что мы можем переписать их в классе-потомке. Давайте для примера перепишем в нашем классе Vector метод ToString так, чтобы он возвращал не имя класса, а координаты вектора в красивом виде. Это будет выглядеть вот так:

    class Vector
    {
        public float x, y; //Координаты.
        //Переопределяем метод ToString.
        public override string ToString()
        {
            return "x = " + x +", y = " + y;
        }
    }
    //Тестовый класс.
    class App
    {
        static void Main()
        {
            Vector v=new Vector();
            v.x=2;
            v.y=3;
            //Выводим координаты вектора.
            Console.WriteLine(v.ToString());
        }
    }

А в следующем примере мы переопределим виртуальный метод Equals таким образом, чтобы считать равными два вектора с одинаковой длиной (вспомним теорему Пифагора):

    class Vector
    {
        ...
        //Переопределяем метод Equals.
        public override bool Equals(object ob)
        {
            Vector t=(Vector)ob;
            return (t.x*t.x+t.y*t.y)==(this.x*this.x+this.y*this.y);
        }
    }
    //Тестовый класс.
    class App
    {
        static void Main()
        {
            Vector v1=new Vector();
            v1.x=2;
            v1.y=3;
            Vector v2=new Vector();
            v2.x=-3;
            v2.y=2;
            Console.WriteLine(v1.Equals(v2));
        }
    }

В тестовом классе мы проверяем действие переопределенного метода для равных по длине векторов (2, 3) и (-3, 2). Указанный фрагмент выведет True.

Наверх

Рассылки сайта progs.biz:

Рассылки Subscribe.Ru
Обзор программ

Обзор новых программ. Тематика - программы и утилиты для программирования, WEB-дизайна, работы в Интернете и др. Ссылки на сайты фирм-разработчиков.


Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное