Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Another use for event properties covers the situation where you are implementing two interfaces, each with an event of the same name. In such a case, you must use an explicit implementation event property.
However, when explicitly implementing events in interface, you need to provide add and remove methods.
Example
public delegate void Delegate1();
public delegate int Delegate2(string s);
public interface I1
{
event Delegate1 TestEvent;
}
public interface I2
{
event Delegate2 TestEvent;
}
public class ExplicitEventsSample : I1, I2
{
public event Delegate1 TestEvent; // normal implementation of I1.TestEvent.
private Delegate2 TestEvent2Storage; // underlying storage for I2.TestEvent.
event Delegate2 I2.TestEvent // explicit implementation of I2.TestEvent.
{
add
{
TestEvent2Storage += value;
}
remove
{
TestEvent2Storage -= value;
}
}
private void FireEvents()
{
if (TestEvent != null)
{
TestEvent();
}
if (TestEvent2Storage != null)
{
TestEvent2Storage("hello");
}
}
}
See Also
Reference
Interfaces (C# Programming Guide)
Explicit Interface Implementation (C# Programming Guide)
Concepts
C# Programming Guide
Events (C# Programming Guide)
Delegates (C# Programming Guide)