编译器错误 C3374

不能采用“函数”的地址,除非创建委托实例

在上下文中而不是委托实例的创建中采用函数的地址。

以下示例生成 C3374:

// C3374.cpp
// compile with: /clr
public delegate void MyDel(int i);

ref class A {
public:
   void func1(int i) {
      System::Console::WriteLine("in func1 {0}", i);
   }
};

int main() {
   &A::func1;   // C3374

   // OK
   A ^ a = gcnew A;
   MyDel ^ StaticDelInst = gcnew MyDel(a, &A::func1);
}

另请参阅

如何:定义和使用委托 (C++/CLI)