Четверг, 03.07.2025, 11:32

  Сайт проекта StreamLive 216.73.216.50

Вы вошли как Гость | Группа "Гости" | RSS

Меню

Категории
С# [55]
VB.net [0]
VB6 [1]

Реклама

Nothing

 
Главная » Статьи » Программирование » С# [ Добавить статью ]
Переопределяем методы класса 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.


Источник:
Категория: С# | Добавил: Sumrak (14.11.2010) | Автор: E W
Просмотров: 1641 | Комментарии: 0 | Теги: | Рейтинг: 0.0/0
Всего комментариев: 0

Log in

Block title

Copyright sumrak © 2025