Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C++/CLI和C“;铸造;代表的职能,什么';独家新闻是什么?_C#_Delegates_C++ Cli - Fatal编程技术网

C# C++/CLI和C“;铸造;代表的职能,什么';独家新闻是什么?

C# C++/CLI和C“;铸造;代表的职能,什么';独家新闻是什么?,c#,delegates,c++-cli,C#,Delegates,C++ Cli,在C#2.0中,我可以执行以下操作: public class MyClass { delegate void MyDelegate(int myParam); public MyClass(OtherObject obj) { //THIS IS THE IMPORTANT PART obj.SomeCollection.Add((MyDelegate)MyFunction); } private void MyFu

在C#2.0中,我可以执行以下操作:


public class MyClass
{
     delegate void MyDelegate(int myParam);

     public MyClass(OtherObject obj)
     {
//THIS IS THE IMPORTANT PART
           obj.SomeCollection.Add((MyDelegate)MyFunction);
     }

     private void MyFunction(int myParam);
     {
           //...
     }
}
试图在C++/CLI中实现同样的功能,似乎我必须执行以下操作:


MyDelegate del = gcnew MyDelegate(this, MyFunction);
obj->SomeCollection->Add(del);
显然,我也可以在C#中创建一个新的委托实例,而不是上面正在发生的事情。在C++世界中是否存在某种C++/CLI中不存在的魔法,可以让强制转换工作?某种神奇的匿名代理?谢谢

<> C++中存在不存在某种魔法吗? 对。从C#2开始,你可以简单地说:

  MyDelegate del = SomeFunction;
编译器将其重写为长(C#1)形式:


在C++/CLI中没有这种支持,但这只是符号上的区别。没什么大不了的。

看起来像C++ + CLI,不是C++。你是正确的。很抱歉给你带来了困惑。编辑以澄清。
 MyDelegate del = new MyDelegate (SomeFunction);