Что будет выведено в результате выполнения программы? class Program { static void Main(string[] args) { var a = new A { B = 3 }; Console.Write(a is System.Object); var o = a as System.Object; Console.Write(o.B); } } public class A { public int B; }
При приведении к типу object, скрывается поле B, соответственно обратиться к нему нельзя.
PS: Если закомментировать Console.Write(o.B);, то программа выведет True, так как объект класса A является также объектом класса Object, который стоит на вершине иерархии классов. Создавая класс A мы неявным образом наследуем его от класса Object.
Будет ошибка при компиляции
Объяснение:
При приведении к типу object, скрывается поле B, соответственно обратиться к нему нельзя.
PS: Если закомментировать Console.Write(o.B);, то программа выведет True, так как объект класса A является также объектом класса Object, который стоит на вершине иерархии классов. Создавая класс A мы неявным образом наследуем его от класса Object.