Общий предок типов в C#
Тип object - общий предок всех классов
и упаковываемых структур в .NET.
Любой экземпляр класса можно присвоить
переменной типа object.
Так удобно хранить в одной переменной разные
ссылочные типы, когда общий контракт еще не введен.
Запишем переменную object и положим в нее строку:
object value = "hello";
Console.WriteLine(value);
В переменную того же типа помещают и экземпляр
своего класса. Проверка is показывает,
какой тип стоит за ссылкой:
object boxed = new Tag { Code = 7 };
Console.WriteLine(boxed is Tag);
class Tag
{
public int Code;
}
Если условие истинно, можно работать с полями через переменную конкретного типа:
if (boxed is Tag tag)
{
Console.WriteLine(tag.Code);
}
Создайте класс Marker с полем Id.
Сохраните объект в переменную типа object,
убедитесь, что там лежит Marker,
и выведите значение Id.