首页 > 解决方案 > 如何根据运行时类型进行调度?

问题描述

它是 C# 版本 8。

我有一个方法Dispatch<T>(T payload)

我也有T1:T, T2:T, ... T8:T

是否可以重写:

if(data is T1)
   Dispatch((T1)data);
if(data is T2)
   Dispatch((T2)data);
...
if(data is T8)
   Dispatch((T8)data);

所以当有人添加T9:T这部分代码时根本不会改变?

我知道我可以使用新的 switch 语句,但它基本上是一样的。

标签: c#.netgenericspolymorphism

解决方案


推荐阅读