如何在C#中动态更改对象的类?

Chr*_*ris 6 c#

假设我有一个名为Visitor的基类,它有2个子类Subscriber和NonSubscriber.

首先,访问者从NonSubscriber开始,即

NonSubscriber mary = new NonSubscriber();
Run Code Online (Sandbox Code Playgroud)

然后在这个"mary"订阅了一些服务,我想将"mary"的类型更改为Subscriber.

这样做的常规方法是什么?

cru*_*zer 6

不能那样做.抱歉.C#不是动态语言.

  • 但是,你可以使用GoF中描述的"状态"模式.但是你不需要改变类/对象的类型! (4认同)