首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从C#创建等价的Action<T1,T2>

可以使用委托来实现。委托是一种引用方法的类型,可以用于封装具有相同参数和返回类型的方法。在这种情况下,我们可以使用委托来创建等价的Action<T1,T2>。

首先,我们需要定义一个具有相同参数的委托类型。在这个例子中,我们可以使用以下代码定义一个委托类型:

代码语言:txt
复制
delegate void MyAction<T1, T2>(T1 arg1, T2 arg2);

接下来,我们可以创建一个方法,该方法与Action<T1,T2>具有相同的参数和返回类型。例如,我们可以创建一个名为PrintValues的方法,该方法接受两个参数并打印它们的值:

代码语言:txt
复制
static void PrintValues(int arg1, string arg2)
{
    Console.WriteLine($"arg1: {arg1}, arg2: {arg2}");
}

然后,我们可以使用委托类型来创建一个委托实例,并将PrintValues方法作为参数传递给委托实例。这样,我们就创建了一个等价的Action<T1,T2>:

代码语言:txt
复制
MyAction<int, string> myAction = PrintValues;

现在,我们可以像使用Action<T1,T2>一样使用myAction委托实例。例如,我们可以调用委托实例并传递相应的参数:

代码语言:txt
复制
myAction(10, "Hello");

这将调用PrintValues方法并打印输出:arg1: 10, arg2: Hello。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法提供具体的链接。但是,腾讯云提供了丰富的云计算服务,包括计算、存储、数据库、人工智能等领域的产品。您可以访问腾讯云官方网站,了解更多关于腾讯云的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C Sharp(十二)

    之前写 Objective-C 时候,感觉他泛型太弱了,现在写 C#,感觉他泛型系统太好用了!...我们可以使用类型占位符书写代码,在创建实例时指明实际类型即可。 C# 提供了 5 种泛型可用在地方: 类、结构、接口、委托、方法。前四种是类型,最后一种是成员。... { public T1 SomeVal = new T1(); public T2 OtherVal = new T2(); } 创建构造类型 列出类名并在尖括号中提供真实类型代替类型参数...中有两个常用预定义泛型委托: Func 和 Action: Action 是无返回值泛型委托,有 16 个重载(即最多 16 个参数) Func 是有返回值泛型委托,有 17 个重载(即最多...16 个参数和 1 个返回值) public delegate TR Func (T1 p1, T2 p2); class Simple { static string

    84020

    C# 委托 、事件、同步、异步知识点归纳

    C# 委托 、事件、同步、异步知识点归纳 一、委托 基本用法: 1.声明一个委托类型。委托就像是‘类'一样,声明了一种委托之后就可以创建多个具有此种特征委托。...自定义事件需要有以下几个元素: 事件发起者,事件订阅,以及事件处理程序。发起者到处理程序之间是可以传参数。...在启动任务时,会创建Task类 一个实例,利用ActionAction委托不带参数或带一个object参数 ,可以指定应运行代码,这类似于Thread类 。...例如:Action调用带一个参数方法,Action调用带两个参数方法等 Func用法和Action用法类似,但是Func表示引用一个带返回类型方法...,Func也存在不同变体,至多可以传递16个参数类型和1个返回类型,例如:Func表示带一个参数方法,Func<in T1,in T2,out Resout

    1.5K41

    Python3 与 C# 面向对象之~封装

    ,python解释器默认调用_init_方法,对必要字段进行初始化赋值 需要注意是:__init__并不是C#构造函数,__new__ (后面会说) + __init__ 等价于构造函数 第一个参数和类其他方法一样...这次两个都删掉: t1 = Temp() t2 = t1 del t1 del t2 print("-" * 10) 输出: # 你被干掉了 # ---------- 都删了,自然就真删掉了 ----...t1 = Temp() print(sys.getrefcount(t1)) #(结果比实际引用大1)【object也会占1个引用计数】 t2 = t1 print(sys.getrefcount...(t1)) print(sys.getrefcount(t2)) del t1 print(sys.getrefcount(t2)) # sys.getrefcount(t1)#被删掉自然没有了 del...t2 print("-" * 10) 运行结果: 2 3 3 2 你被干掉了 ---------- 我再贴一种情况,你可以思考下为啥: t1 = Temp() t2 = Temp() del t1

    2.1K30

    第61篇-必须通过改写SQL才能提升性能一些情况

    改写首要任务是等价,其次才是性能提高,不等价改写危害更大。 希望能对大家有一些帮助。一家之言,欢迎留言讨论。...如果要改写,注意等价性,一般来说not exists返回是需要结果。...; 注意:等价改写是用union all,而不是网上普遍流传union,既不等价,效率又低;需要使用union all,但不要忘了lnnvl补充条件,而且注意,不要写成object_name'...owner最后创建对象信息,不但低效,而且结果集也不是想要。...这个方法查询效率基本上等同于上面直接使用索引方法,但是还要同时维护另一个“索引”中间表,这么差一个方法据说还是oracle.com.cn流传出来,被多人模仿写在博客和书里,真是让人无语啊。

    43720
    领券