这个问题是很久以前在一个老外的blog上看到的,当时没有很在意,最近看了CAB(Composition UI Application Block)的源码后, 又想到它.利用泛型来确保参数的类型安全, 我想这是泛型的重要意义之一.但是利用泛型完成返回值类型(Return Value Typr)的自动转化(Casting), 你想过没有?
以GetService方法为例, 在没有泛型的时候是这样的.




在使用的时候,我们需要显式(explicit)将获得的Service对象转化(Casting)为相应的类型.





但是在有了泛型的支持后,我们可以这样做.









没有了Casting, 没有了参数, 看上去简洁多了. Is it a perfact solution? No!
要知道泛型的重要意义在于提供类型安全(Type safe). 在目前的这个方法中, 并没有涉及到类型安全的问题. 而且在实际的实现中,该方法仅仅做了一个Casting的包装.并且使用泛型的方法效率要比不使用低的多.




so. what's your opinion? CAB(Composition UI Application Block)使用了这个方法.
BTW: CAB is a very cool MVC Framework in smartclient, you will soon be familiar with it.
It's Highly Recommanded you check it out. I hope i can give some introduction about it in future.
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步