gpt4 book ai didi

c# - 为什么使用 Delegate.Combine 需要强制转换而使用 + 运算符不需要?

转载 作者:太空狗 更新时间:2023-10-29 23:00:50 24 4
gpt4 key购买 nike

我在 Reflector 的 DelegateMulticastDelegate 下找不到 + 运算符。

我想弄清楚为什么这不需要强制转换:

Action a = () => Console.WriteLine("A");
Action b = () => Console.WriteLine("B");

Action c = a + b;

但是这样做:

Action a = () => Console.WriteLine("A");
Action b = () => Console.WriteLine("B");

Action c = (Action)MulticastDelegate.Combine(a, b);

在第一个样本中, Actor 只是在幕后完成的吗?

最佳答案

+=-= 是在语言级别(即在编译器帮助下)使用已知委托(delegate)类型实现的,因此它不需要强制转换,而 Delegate.Combine 只是一个具有 Delegate 返回类型的普通(非泛型)方法,因此需要强制转换。

关于c# - 为什么使用 Delegate.Combine 需要强制转换而使用 + 运算符不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com