Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 148
- Предыдущая
- 148/642
- Следующая
Изменить размер шрифта:
148

Чтобы проиллюстрировать стандартное поведение, обеспечиваемое базовым классом
Object
ObjectOverrides
Добавьте в проект новый файл класса С#, содержащий следующее пустое определение типа
Person
// Не забывайте, что класс Person расширяет Object.
class Person {}
Теперь обновите операторы верхнего уровня для взаимодействия с унаследованными членами
System.Object
Console.WriteLine("***** Fun with System.Object *****\n");
Person p1 = new Person();
// Использовать унаследованные члены System.Object.
Console.WriteLine("ToString: {0}", p1.ToString());
Console.WriteLine("Hash code: {0}", p1.GetHashCode());
Console.WriteLine("Type: {0}", p1.GetType());
// Создать другие ссылки на pi.
Person p2 = p1;
object o = p2;
// Указывают ли ссылки на один и тот же объект в памяти?
if (o.Equals(p1) && p2.Equals(o))
{
Console.WriteLine("Same instance!");
}
Console.ReadLine();
}
Вот вывод, получаемый в результате выполнения этого кода:
***** Fun with System.Object *****
ToString: ObjectOverrides.Person
Hash code: 58225482
Type: ObjectOverrides.Person
Same instance!
Обратите внимание на то, что стандартная реализация
ToString()
ObjectOverrides.Person
ObjectOverrides
Person
Program
ObjectOverrides
Стандартное поведение метода
Equals()
Person
pi
Person
р2
Person
р2
pi
pi
р2
о
object
pi
р2
о
Хотя готовое поведение
System.Object
Person
// Не забывайте, что класс Person расширяет Object.
class Person
{
public string FirstName { get; set; } = "";
public string LastName { get; set; } = "";
public int Age { get; set; }
public Person(string fName, string lName, int personAge)
{
FirstName = fName;
LastName = lName;
Age = personAge;
}
public Person(){}
}
Переопределение метода System.Object.ToString()
Многие создаваемые классы (и структуры) могут извлечь преимущества от переопределения метода
ToString()
ToString()
Person
public override string ToString()
=> $"[First Name: {FirstName}; Last Name: {LastName};
Age:
{Age}]";
Приведенная реализация метода
ToString()
Person
ToString()
148
- Предыдущая
- 148/642
- Следующая
Перейти на страницу: