关于学习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的类型是在哪里定义的呢?大家来帮助回答下

时间: 2024-09-30 11:36:48

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

在学习&quot;$(this)和this&quot;过程中遇到的一点疑惑!

在学习JQuery的过程中,我遇到了$(this),this,通过查阅网上资料,我发现大部分来源中对于它们的解释基本一致,其最终来源似乎都来自一位叫做Remy Sharp的程序员的一篇文章https://remysharp.com/2007/04/12/jquerys-this-demystified ,其中我发现了一些解释并不够清楚的地方,写下来与各位讨论. 以下是在查阅资料过程过发现的一个例子: $("#desktop a img").each(function(index){ a

在学习“contains()和compareDocumentPositon()&quot;过程中遇到的一点疑惑!

JS开发人员经常都需要确定某个节点是否包含另一个节点,由此IE率先引入了contains()函数,随后,Safari3及其更高版本,Opera 8及其更高版本,Chrome都支持了这个方法(Safari 2.x中虽然也支持这个方法,但无法正常使用).FireFox不支持这个方法,但在DOM3中提供了一个替代方法compareDocuemntPosition().由于此种原因,要想跨平台确定某个节点是否包含另一个节点,就必须提供一个通用的contains()函数来解决这种差异,通常的解法方法如下:

Hive通过查询语句向表中插入数据过程中发现的坑

前言 最近在学习使用Hive(版本0.13.1)的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug.总而言之,这些都需要使用Hive的开发人员额外注意.本文旨在列举我发现的2个通过查询语句向表中插入数据过程中的问题,希望大家注意. 数据准备 为了验证接下来出现的问题,需要先准备两张表employees和staged_employees,并准备好测试数据.首先使用以下语句创建表employees: create table employ

AR的在录制脚本过程中发现对象录制不下来如何解决

有时候,我们在使用AR进行自动化测试的过程中会发现,有的对象无法通过常规的方法录制下来,这个时候我们可以利用AR强行获取对象的功能来实现对象的获取.然后通过视图模式下的拖拽方法把对象添加到脚本的编辑区,这种方法可以解决绝大多数对象无法录制的情况!下面我们就来看看具体是怎样操作的: 1.假设我在录制一个被测系统登录页的脚本时发现,密码的输入框录制不下来,这个时候就需要我们同时按住ctrl和alt键,拖动鼠标到对象的位置,直到对象上出现红框,对象就被我们获取下来了. 这里获取下来的对象会被直接保存到

AutoRunner 的在录制脚本过程中发现对象录制不下来如何解决

有时候,我们在使用AR进行自动化测试的过程中会发现,有的对象无法通过常规的方法录制下来,这个时候我们可以利用AR强行获取对象的功能来实现对象的获取.然后通过视图模式下的拖拽方法把对象添加到脚本的编辑区,这种方法可以解决绝大多数对象无法录制的情况!下面我们就来看看具体是怎样操作的: 1.假设我在录制一个被测系统登录页的脚本时发现,密码的输入框录制不下来,这个时候就需要我们同时按住ctrl和alt键,拖动鼠标到对象的位置,直到对象上出现红框,对象就被我们获取下来了.这里获取下来的对象会被直接保存到对

在网站制作过程中发现的block和inline-block不同。

inline-block,简单来说就是在CSS中通过display:inline-block对一个对象指定inline-block属性,可以将对象呈递为内联对象,但是对象的内容作为块对象呈递.有时既希望元素具有宽度高度特性,又具有同行特性,这个时候我们可以使用inline-block.而block的的特性有以下特征: block元素会独占一行,多个block元素会各自新起一行.默认情况下(即不设置宽度的情况下),block元素宽度自动填满其父元素宽度. block元素可以设置width,heig

包裹系统编写以及过程中发现的错误

1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 typedef enum iStatus { Sendtothewarehouse, Hasstarted, Ontheway, Arriveatthewarehouse, Hasbeendistributed, Hasbeenreceived } Status; 6 typedef enum iworkerStatus { Working, V

Mysql: Connect/C++ 使用过程中发现返回 std::string 造成的内存泄露

在使用 Connect/C++ ,测试时发现在调用 getString 出现了内存增长的情况. ConstructOutput(); //打印出当前内存 for(int i=0;i<1000;++i) { prepareState.reset(con->prepareStatement("call test.testproc3(?)")); prepareState->setInt(1,1001); prepareState->executeUpdate();

如果在网络数据处理过程中,发现一处比较卡,一般怎么解决

1>   检查网络请求操作是否被放在主线程了 2>   看看异步请求的数量是否太多了(子线程数量) 3>   数据量是否太大?如果太大,先清除一些不必要的对象(看不见的数据.图片) 4>   手机CPU使用率和内存问题