c# - C# 委托(delegate)是否像 Excel/用户定义函数一样工作?

标签 c# excel function vba delegates

<分区>

提出了很多很棒的问题并给出了很棒的答案 here about Delegates concept .具体this answer was more captivating.我一直在使用 VBA 以及早期版本的 Java 和 C#。作为兴趣和工作,我正在尝试在更高版本的 C# 中使用有用的和高级的概念进行升级。

在 VBA 中,没有必要构建类/接口(interface)来做一些,例如使用用户定义函数 (UDF) 使用参数负载进行大量计算。我们能够在另一个 VBA 函数/子函数或 Excel 工作表中使用 UDF。

例如VBA 中的以下函数需要几个参数并返回计算值

Private Function DoSomeCalc(ByRef x as long, ByRef n as int, _ 
                            ByRef type as String) as long
//'--function implementation
End Function

就理解委托(delegate)在现实世界中的使用而言,我进行了大量搜索,发现这是一个很好的讨论。但是,如果我能将我已经知道的联系起来,那将会非常有帮助。

是对着正确的树吗?

最佳答案

抱歉,委托(delegate)不像 Excel UDF 那样工作。不能将函数或子例程作为参数传递给 VBA 中的另一个函数。

不确定这是否让您耳目一新,但它们真的很像 C 中的函数指针:一种用户数据类型,可以保存具有特定参数列表和明确返回类型的函数的地址;基于此,您可以存储/调用与“签名”匹配的任何函数;这是委托(delegate)允许的部分内容。

现在,在旁注中,函数指针大约从1971 年……所以委托(delegate)们就像喇叭裤:回归时尚。 :-)

关于c# - C# 委托(delegate)是否像 Excel/用户定义函数一样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706097/

相关文章:

vba - 生成所有 2^n 个子集的列表

Java - 从剪贴板检索 XML (Excel) 电子表格

javascript - 我的构造函数有什么问题

c# - 如何将四元数旋转转换为方向盘运动?

c# - 从泛型引用类型 <T> 获取枚举或静态属性

c# - 即使在 PhraseRecognitionSystem 被处置后,听写识别 session 也不会启动

Javascript - 传递预定义值

c# - 分页无法正常工作

excel - 格式为excel时coldfusion cfreport错误

c - 在 C 中,如何在创建线程时将变量传递给 Pthreads 中的函数?