关于学习C#泛型委托过程中发现的一些疑惑,大家一起讨论下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于学习C#泛型委托过程中发现的一些疑惑,大家一起讨论下相关的知识,希望对你有一定的参考价值。

大家知道泛型委托Action,是定义一个没有返回值的委托。

例如:

技术分享
public Action<int, int> AddAction = (x, y) =>
{
Console.WriteLine(x+y);
};
定义一个Action

 

可以在Action上F12进入可以看到源码为:

public delegate void Action<T1, T2>(T1 arg1, T2 arg2);

这里发现一个问题,T1,T2是什么类型呢,在哪里定义的,我按F12并没有找到对应的类型。

之后我试着定义一个类似Action的泛型委托。

技术分享
  public delegate int Add<Hello, World> (Hello x, World y);
自定义Action

然后我定义一个Add<Hello,World>的泛型委托变量

        public Add<int, int> Adddemo= (x, y) =>
        {
            return x + y;
        };

居然不报错,且能调用。

这里问题来了,我输入的Hello,World的类型是在哪里定义的呢?大家来帮助回答下

以上是关于关于学习C#泛型委托过程中发现的一些疑惑,大家一起讨论下的主要内容,如果未能解决你的问题,请参考以下文章

《C#零基础入门之百识百例》(八十一)泛型概念介绍 -- 泛型类/结构/接口/委托

c#使用委托 + 泛型,编写可复用代码

c#使用委托 + 泛型,编写可复用代码

C#进阶C# 泛型

c#中的泛型委托(@WhiteTaken)

委托 ,事件,泛型学习总结