Udostępnij przez


Błąd kompilatora C2843

"członek" : nie może przyjąć adresu elementu członkowskiego danych niestacjonanych lub metody zarządzanego lub typu WinRT

Uwagi

Wystąpienie jest potrzebne do podjęcia adresu niestatycznych elementów członkowskich danych zarządzanych lub WinRT klasy lub interfejsu.

Example

Poniższy przykład generuje kod C2843 i pokazuje, jak go naprawić:

// C2843_2.cpp
// compile with: /clr
public ref class C {
public:
   int m_i;
};

ref struct MyStruct {
   static void sf() {}
   void f() {}
};

int main() {
   MyStruct ^ps = gcnew MyStruct;
   void (__clrcall MyStruct::*F1)() = & MyStruct::f;   // C2843
   void (__clrcall MyStruct::*F2)() = & ps->f;   // C2843
   void (__clrcall MyStruct::*F3)();   // C2843

   void (__clrcall *F5)() = MyStruct::sf;   // OK
   void (__clrcall *F6)() = & ps->sf;   // OK

   interior_ptr<int> i = &C::m_i; // C2843
   C ^x = gcnew C();
   interior_ptr<int> ii = &x->m_i;
}