नोट
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप साइन इन करने या निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
'operator': return type of combined delegates is not 'void'; returned value is undefined
Remarks
Two delegates were combined and the return value is not void. If two delegates with non-void return values are combined, the compiler will not be able to do a proper assignment if the return value of the delegate is used.
Example
The following example generates C4358:
// 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
}