diff --git a/src/libraries/System.Private.CoreLib/src/System/EventHandler.cs b/src/libraries/System.Private.CoreLib/src/System/EventHandler.cs index dba4aad09e45c8..35572083cffc64 100644 --- a/src/libraries/System.Private.CoreLib/src/System/EventHandler.cs +++ b/src/libraries/System.Private.CoreLib/src/System/EventHandler.cs @@ -5,5 +5,17 @@ namespace System { public delegate void EventHandler(object? sender, EventArgs e); - public delegate void EventHandler(object? sender, TEventArgs e); // Removed TEventArgs constraint post-.NET 4 + public delegate void EventHandler(object? sender, TEventArgs e) // Removed TEventArgs constraint post-.NET 4 + where TEventArgs : allows ref struct; + + /// + /// Represents the method that will handle an event when the event provides data. + /// + /// The type of the object raising the event. + /// The type of the event data generated by the event. + /// The source of the event. + /// An object that contains the event data. + public delegate void EventHandler(TSender sender, TEventArgs e) + where TSender : allows ref struct + where TEventArgs : allows ref struct; } diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index 84742f4e9a03fe..7e6c6bf7992dd7 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -2789,7 +2789,8 @@ public partial class EventArgs public EventArgs() { } } public delegate void EventHandler(object? sender, System.EventArgs e); - public delegate void EventHandler(object? sender, TEventArgs e); + public delegate void EventHandler(object? sender, TEventArgs e) where TEventArgs : allows ref struct; + public delegate void EventHandler(TSender sender, TEventArgs e) where TSender : allows ref struct where TEventArgs : allows ref struct; public partial class Exception : System.Runtime.Serialization.ISerializable { public Exception() { }