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

Чтобы проиллюстрировать стандартное поведение, обеспечиваемое базовым классом
ObjectObjectOverridesДобавьте в проект новый файл класса С#, содержащий следующее пустое определение типа
Person// Не забывайте, что класс Person расширяет Object.class Person {}Теперь обновите операторы верхнего уровня для взаимодействия с унаследованными членами
System.ObjectConsole.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.PersonHash code: 58225482Type: ObjectOverrides.PersonSame instance!Обратите внимание на то, что стандартная реализация
ToString()ObjectOverrides.PersonObjectOverridesPersonProgramObjectOverridesСтандартное поведение метода
Equals()PersonpiPersonр2Personр2pipiр2оobjectpiр2оХотя готовое поведение
System.ObjectPerson// Не забывайте, что класс 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()Personpublic override string ToString() => $"[First Name: {FirstName}; Last Name: {LastName};Age: {Age}]";Приведенная реализация метода
ToString()PersonToString()
148
- Предыдущая
- 148/642
- Следующая
Перейти на страницу:
