为什么 C# 可以做到这一点而 C++/CLI 却不能?
.NET Framework 3.5 附带了所有 LINQ 功能,还包括预定义的通用 Func 和 Action 委托。 它们对于最多 4 个参数是通用的。 我正在编写一个 C++/CLI 项目(不幸的是)使用 VS 2005 并且必须仅依赖于标准 2.0 程序集集(因此没有 System.Core)。
我尝试定义我自己的通用委托(在我自己的命名空间中),以使未来的端口更容易,因为编译器对此感到窒息(多个定义)。 有什么建议么?
delegate void Action();
generic <typename Arg1>
delegate void Action(Arg1 arg1);
.NET Framework 3.5 comes with all the LINQ goodies, and also includes predefined generic Func and Action delegates. They are generic for up to 4 arguments. I am writing a C++/CLI project that (unfortunately) uses VS 2005 and must only rely on the standard 2.0 assembly set (so no System.Core).
I tried defining my own generic delegates (in my own namespace) to make future ports easier, by the compiler chokes on this (multiple definitions). Any suggestions?
delegate void Action();
generic <typename Arg1>
delegate void Action(Arg1 arg1);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在这里猜测,但我认为最好的选择是在 C# 程序集中仅定义这些委托。 C++/CLI 使用这样一组重载泛型没有问题,但似乎无法定义它们。
I'm guessing here but I think your best bet is to define only those delegates in a C# assembly. C++/CLI has no problem making use of such a family of overloaded generics, but doesn't seem to be able to define them.