ВНИМАНИЕ! Конкурс по программированию!

Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости
 (голосов: 0)

Урок 42. Переопределяем методы класса System.Object

Категория: Программирование » C# » Уроки C#

Часть методов класса 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.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *