Derleyici Uyarısı (düzey 1) C4462
Türün GUID'i belirlenemiyor. Program çalışma zamanında başarısız olabilir.
Uyarı C4462, bir Windows Çalışma Zamanı uygulamasında veya bileşeninde, genel TypedEventHandler
bir tür parametresi olarak kapsayan sınıfa başvuru olduğunda oluşur.
Bu uyarı otomatik olarak bir hataya yükseltilir. Bu davranışı değiştirmek istiyorsanız #pragma uyarısını kullanın. Örneğin, C4462'yi düzey 4 uyarı sorununa dönüştürebilmek için bu satırı kaynak kod dosyanıza ekleyin:
#pragma warning(4:4462)
Örnek
Bu örnek C4462 uyarı oluşturur:
namespace N
{
public ref struct EventArgs sealed {};
public ref struct R sealed
{
R() {}
event Windows::Foundation::TypedEventHandler<R ^, EventArgs^>^ e;
};
}
[Platform::MTAThread]
int main()
{
auto x = ref new N::R();
}
Hataya geçici bir çözüm bulmanın iki yolu vardır. Bunlardan birinde, bir sonraki örnekte gösterildiği gibi, olaya dahili erişilebilirlik vererek onun aynı yürütülebilir dosya üzerinde kodun kullanımına açık olması, aynı zamanda diğer Windows Çalışma Zamanı bileşenlerinde kodun kullanımına açık olmaması sağlanabilir.
internal:
event Windows::Foundation::TypedEventHandler<R ^, EventArgs^>^ e;
Olayın genel olması gerekiyorsa, ikinci yöntem kullanılabilir, yani olay varsayılan arabirim yoluyla genele açılabilir:
ref struct R;
public interface struct IR{ event Windows::Foundation::TypedEventHandler<R ^, EventArgs^>^ e;};
public ref struct R sealed : [Windows::Foundation::Metadata::Default] IR
{
R() {}
virtual event Windows::Foundation::TypedEventHandler<R ^, EventArgs^>^ e;
};
Türün GUID'i yalnızca türe Windows::Foundation::TypedEventHandler<R^, EventArgs^>^
başka bir bileşenden erişildiğinde kullanılır. İlk geçici çözüm, çözüm uygulandıktan sonra yalnızca kendi bileşeni içinden erişilebilir olduğu için işe yarayacaktır. Aksi durumda, derleyici en kötü durumu varsayarak uyarıyı yaymak zorunda kalır.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin