如何将T到T1、T2、Tn的泛型代码自动扩展为多种类型泛型?
- 内容介绍
- 相关推荐
本文共计2330个文字,预计阅读时间需要10分钟。
前语:当你想写一个泛型T的类型的时候,是否想过是否想使用两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数的版本呢?这是一个个编写的问题吗?是小类还好,大类就麻烦了!+ 实际上,+
前言
当你想写一个泛型 <T> 的类型的时候,是否想过两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数的版本如何编写呢?是一个个编写?类小还好,类大了就杯具!
事实上,在 Visual Studio 中生成代码的手段很多,本文采用最笨的方式生成,但效果也很明显——代码写得轻松写得爽!
本文主要给大家介绍了关于从T到T1、T2、Tn自动生成多个类型的泛型的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
我们想要的效果
我们现在有一个泛型的版本:
public class Demo<T> { public Demo(Action<T> demo) { _demo = demo ?? throw new ArgumentNullException(nameof(action)); } private Action<T> _demo; public async Task<T> DoAsync(T t) { // 做某些事情。 } // 做其他事情。
本文共计2330个文字,预计阅读时间需要10分钟。
前语:当你想写一个泛型T的类型的时候,是否想过是否想使用两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数的版本呢?这是一个个编写的问题吗?是小类还好,大类就麻烦了!+ 实际上,+
前言
当你想写一个泛型 <T> 的类型的时候,是否想过两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数的版本如何编写呢?是一个个编写?类小还好,类大了就杯具!
事实上,在 Visual Studio 中生成代码的手段很多,本文采用最笨的方式生成,但效果也很明显——代码写得轻松写得爽!
本文主要给大家介绍了关于从T到T1、T2、Tn自动生成多个类型的泛型的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
我们想要的效果
我们现在有一个泛型的版本:
public class Demo<T> { public Demo(Action<T> demo) { _demo = demo ?? throw new ArgumentNullException(nameof(action)); } private Action<T> _demo; public async Task<T> DoAsync(T t) { // 做某些事情。 } // 做其他事情。

