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

Автор: admin | 14 Июнь 2008 – 16:24 -


Урок 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.


Tags: , , , , , , , , ,
Находится в Уроки C# | No Comments »

Ответить

Вы должны быть в системе, дабы комментировать.


C# — язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio. Применяться пила Инструмент, выбранная пила торцевая электрическая птэ 1800 255. . Купить Комоды MIBB в интернет магазине. Самые простые комоды под заказ. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).