c# - 如何根据运行时类型进行调度?
问题描述
它是 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 语句,但它基本上是一样的。
解决方案
推荐阅读
- ethereum - 坚固组装。从存储和委托调用中读取结构
- php - 如果这些数据来自 Laravel 中的 API,如何存储 JSON 数据数组数据库?
- c++ - QApplication::desktop 返回 null
- reactjs - 使用 service worker 缓存 React 组件
- react-native - 反应原生的 OR 运算符
- html - 没有内容高度设置问题的纯 CSS 垂直选项卡
- php - 来自 URL 的 FPDF 和图像
- php - DevServer 17.0 - 不要启动 php 7.1.3 x.86
- javascript - 在Javascript中调用变量作为函数()
- twisted - 扭曲测试:反应堆不干净