Безопасное приведение объекта в C#
Явное приведение бросает исключение, если тип не подходит.
Оператор as при неудаче возвращает null,
и код может спокойно проверить результат.
Запишем базу и потомка, затем попробуем безопасное приведение:
class User {
}
class Employee : User {
public int GetSalary() {
return salary;
}
private int salary = 1000;
}
Сохраним Employee в User и получим потомка через as:
User user = new Employee();
Employee? employee = user as Employee;
if (employee is not null) {
Console.WriteLine(employee.GetSalary());
}
Сохраните в User объект Employee,
получите доступ к методам Employee и выведите зарплату, если тип подошёл.