Down/Up Cast for Control Events?

L

lucius

ASP.NET 2.0

I have web controls with their own event handlers that I need to
funnel into a central handler, eg


TypicalEvent( object sender, TypicalEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}

LinkEvent( object sender, LinkEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}

SpecialEvent( object sender, SpecialEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}


And the central event handler is


HandleEverything( object sender , EventArgs e )
{

}



Within "HandleEverything", I would like to know the original Type of
what is in EventArgs and then cast it to the proper Type, because if
it's TypicalEventArgs there is a Value property, if it is
LinkEventArgs there is an AnchorText property, etc.

How can I use Reflection (or Generics?) to "uncast" and use?

Thanks.
 
W

Walter Wang [MSFT]

Hi lucius,

I assume TypicalEventArgs/LinkEventArgs/SpecialEventArgs are all inherited
(directly or indirectly) from EventArgs. You can always use a child type
where a base type is needed without casting. A child type *is* always a
base type.

To cast a reference with base type to a child type, you need to explicitly
cast it, for example:

TypicalEventArgs e2 = (TypicalEventArgs) e;


Of course you need to determine if it's a TypicalEventArgs first:

if (e is TypicalEventArgs) {
TypicalEvent(sender, (TypicalEventArgs) e);
}


Hope this helps.


Sincerely,
Walter Wang ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
W

Walter Wang [MSFT]

Hi lucius,

If you see this, would you please reply here to let me know if you think
this issue is solved now? Thanks.


Regards,
Walter Wang ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,787
Messages
2,569,627
Members
45,328
Latest member
66Teonna9

Latest Threads

Top