TransWikia.com

Приведение типов в с#

Stack Overflow на русском Asked on January 27, 2021

Как проходит процесс приведение типа в Program( то, что закомментировано-возвращает Null(пытаюсь понять логику))

namespace тренировка2
{
interface Iinterface
    {
        public void Show();
    }
class MyClass : MyClass1, Iinterface
    {
        private MyClass1 MyClass1;
        public MyClass1 Field1 
        {
            get { return MyClass1; }
            set { MyClass1 = value; }
        }
        override public string Field{
            get
            {
                if (field=="base")
                  return  "derived";
                else
                return field;
            }
        }
        public void Show()
        {
            Console.WriteLine(field + " " + Field1.Field);
        }
        public MyClass(string field)
            :base(field)
{

}
    }
    class MyClass1
    {
        protected string field;
        public MyClass1(string field)
        {
            this.field = field;
        }
        virtual public string Field
        {
            set { field = value; }
            get { return field; }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MyClass my = new MyClass("base");
            Console.WriteLine(my.Field);
            MyClass1 my1 = new MyClass1("base");
            Console.WriteLine(my1.Field);
            my.Field1 = new MyClass("base");
            //my = (MyClass)my.Field1;     //Что здесь происходит?
            my.Show();
        }
    }
}

One Answer

//my = (MyClass)my.Field1;     //Что здесь происходит?

Здесь происходит обращение к полю MyClass.MyClass1, которое нигде не назначается.

Correct answer by Igor on January 27, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP