编译器错误 C3350

“delegate”: 委托构造函数需要 number 个参数

创建委托实例时,必须传递两个参数,一个是包含委托函数的类型的实例,一个是该函数。

下面的示例生成 C3350:

// C3350.cpp
// compile with: /clr
delegate void SumDelegate();

public ref class X {
public:
   void F() {}
   static void F2() {}
};

int main() {
   X ^ MyX = gcnew X();
   SumDelegate ^ pSD = gcnew SumDelegate();   // C3350
   SumDelegate ^ pSD1 = gcnew SumDelegate(MyX, &X::F);
   SumDelegate ^ pSD2 = gcnew SumDelegate(&X::F2);
}