You can “upcast” (my term for treating a base class type as an inherited class type) the EventArgs in a method like OnBubbleEvent by checking the e argument (of type System.EventArgs) using the TypeOf keyword in Visual Basic.NET or the is keyword in C#.  More on this later.