C#等价于Actionscript函数的应用和调用?

AStackOverflowUser

我很好奇,在AS3中我可以使用apply和call方法,如下所示:

aFn.apply( thisObj, arrayOfArgs );

要么

aFn.call( thisObj, a, b, c );

C#中有等效的语法吗?

最好不使用反射。

感谢您的阅读。

迈克尔·B

不完全的。给定一个特定的实例方法,比如说,Object#Equals您可以使用Delegate.CreateDelegate创建一个“开放”委托。它将取消绑定“ this”参数。不幸的是,它不会调用的特定实现Equals,而是会调用thisclass实现。作为Object#Equals一种virtual方法。

一旦有了开放的委托,就可以使用动态调用。apply,但数组中的第一个元素是this。

你可以这样做::

var @this = new { a = 3, b = 4 };
var other = new { a = 3, b = 4 };
Func<object, object, bool> equalFn = Delegate.CreateDelegate(
  typeof(Func<object, object, bool>),
  typeof(object).GetMethod("Equals",
    System.Reflection.BindingFlags.Public |
    System.Reflection.BindingFlags.Instance)) as Func<object, object, bool>;
equalFn.Invoke(@this, other); // call example
equalFn.DynamicInvoke(new[] { @this, other }); // apply example

开放式委托非常有用。DynamicInvoke如果您知道自己的类型,我真的不能推荐一个好用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

int *和HANDLE *等价于C#

来自分类Dev

调用函数C#

来自分类Dev

从C ++ / CLI函数调用C#函数

来自分类Dev

从C#调用Delphi函数

来自分类Dev

从C#调用Delphi函数

来自分类Dev

从html <a>调用c#函数

来自分类Dev

如何在C ++ / CLI DLL中从C#应用程序调用函数?

来自分类Dev

在C#应用程序中使用void *参数调用C ++函数

来自分类Dev

如何在C#应用程序中从C ++调用抛出C#的函数,以便正确解开C ++堆栈?

来自分类Dev

无法将部分应用的F#函数作为C#中的方法来调用

来自分类Dev

从C#应用程序调用Delphi函数时出现PInvokeStackImbalance

来自分类Dev

从 C#/.NET MVC 应用程序中的另一个类调用函数

来自分类Dev

c#中haskell中迭代函数的等价物是什么?

来自分类Dev

在 C# 中从 dll 调用一个带有 wchar 和 char 的 C 函数

来自分类Dev

如何从C#调用C ++ DLL函数

来自分类Dev

开销-从C#调用C ++函数

来自分类Dev

从C#(Windows)调用C函数(Linux)

来自分类Dev

如何判断我的 PowerShell 模块函数是由 C# 应用程序调用还是从命令行调用?

来自分类Dev

什么是 C# 中 NSMutableDictionary()、NSMutableArray()、NSArray 和 NSDictionary 的等价物?

来自分类Dev

C#和TPM函数

来自分类Dev

用于从C#和ODP.NET包中调用函数的代码

来自分类Dev

从Java脚本为Webkit浏览器和.NET调用C#函数

来自分类Dev

从Java脚本为Webkit浏览器和.NET调用C#函数

来自分类Dev

在C#文件中调用javascript函数

来自分类Dev

从C#代码调用ILAsm全局函数

来自分类Dev

如何从C#调用Jquery函数

来自分类Dev

通过HTML按钮调用C#函数

来自分类Dev

从C#调用F#函数

来自分类Dev

如何从.Net / C#调用Schannel函数

Related 相关文章

热门标签

归档