Compiler Warning (level 1) C4803
'metode' : metode kenaikan memiliki kelas penyimpanan yang berbeda dari peristiwa, 'peristiwa'
Metode peristiwa harus memiliki kelas penyimpanan yang sama dengan deklarasi peristiwa. Pengkompilasi menyesuaikan metode peristiwa sehingga kelas penyimpanan sama.
Peringatan ini dapat terjadi jika Anda memiliki kelas yang mengimplementasikan peristiwa dari antarmuka. Pengkompilasi tidak secara implisit menghasilkan metode peningkatan untuk peristiwa dalam antarmuka. Ketika Anda mengimplementasikan antarmuka tersebut di kelas, pengkompilasi secara implisit menghasilkan metode kenaikan dan metode tersebut tidak akan virtual, oleh karena itu peringatan. Untuk informasi selengkapnya tentang peristiwa, lihat peristiwa.
Lihat pragma peringatan untuk informasi tentang cara menonaktifkan peringatan.
Contoh
Sampel berikut menghasilkan C4803.
// C4803.cpp
// compile with: /clr /W1
using namespace System;
public delegate void Del();
ref struct E {
Del ^ _pd1;
event Del ^ E1 {
void add (Del ^ pd1) {
_pd1 = dynamic_cast<Del ^>(Delegate::Combine(_pd1, pd1));
}
void remove(Del^ pd1) {
_pd1 = dynamic_cast<Del^> (Delegate::Remove(_pd1, pd1));
}
virtual void raise() { // C4803 warning (remove virtual)
if (_pd1)
_pd1();
}
}
void func() {
Console::WriteLine("In E::func()");
}
};
int main() {
E ^ ep = gcnew E;
ep->E1 += gcnew Del(ep, &E::func);
ep->E1();
ep->E1 -= gcnew Del(ep, &E::func);
ep->E1();
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk