Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'operator': Der Rückgabetyp von kombinierten Delegaten ist nicht "void"; der zurückgegebene Wert ist nicht definiert.
Zwei Stellvertretungen wurden kombiniert, und der Rückgabewert ist nicht ungültig. Wenn zwei Stellvertretungen mit nicht ungültigen Rückgabewerten kombiniert werden, kann der Compiler keine ordnungsgemäße Zuweisung ausführen, wenn der Rückgabewert des Delegaten verwendet wird.
Im folgenden Beispiel wird C4358 generiert:
// C4358.cpp
// compile with: /clr /W1
delegate int D();
delegate void E();
ref class X {
int i;
public:
X(int ii) : i(ii) {}
int f() {
return i;
}
};
ref class Y {
int i;
public:
Y() {}
void g() {}
};
int main() {
D^ d = gcnew D(gcnew X(1), &X::f);
D^ d2 = gcnew D(gcnew X(2), &X::f);
d += d2; // C4358
int j = d(); // return value indeterminate
E^ e = gcnew E(gcnew Y, &Y::g);
E^ e2 = gcnew E(gcnew Y, &Y::g);
e += e2; // OK
}