Среда, 08.01.2025, 20:53
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » C#

Урок 42
Часть методов класса 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.
Категория: C# | Добавил: SLOT85 (07.02.2012)
Просмотров: 602 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]