Class pointer c#
本文关键字:pointer Class | 更新日期: 2023-09-27 18:34:40
我想知道是否可以在 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();
}
在 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();
}
}
}