类指针c#

时间:2016-02-15 09:46:13

标签: c# c++ pointers

我想知道在C#中是否可以创建指向基类的类指针。然后,您可以将其设置为任何下层类。就像在C ++中一样:例如:

class Base
{
   virtual void get() = 0;
}
class A : public Base
{
   void get();
}

class B : public Base
{
   void get();
}

main
{
   int i = 0;
   Base *base;

   if(i==0)
      base = new A();
   else
      base = new B();
}

1 个答案:

答案 0 :(得分:0)

在C#中,所有类都是引用类型,因此您只需要使用普通声明。换句话说,它好像所有类类型的变量都被声明为classname&(用C ++术语)。

namespace Demo
{
    abstract class Base // Abstract means derived classes must implement.
    {
        public abstract void SomeVirtualMethod();
    }

    class Derived1 : Base
    {
        public override void SomeVirtualMethod()
        {
            // Do something.
        }
    }

    class Derived2 : Base
    {
        public override void SomeVirtualMethod()
        {
            // Do something.
        }
    }

    class Program
    {
        static void Main()
        {
            int i = 0;
            Base b;

            if (i == 0)
                b = new Derived1();
            else
                b = new Derived2();

            b.SomeVirtualMethod();
        }
    }
}