By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,681 Members | 1,775 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,681 IT Pros & Developers. It's quick & easy.

Down/Up Cast for Control Events?

P: n/a
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.
Jun 6 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
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 (wa****@online.microsoft.com, remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.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/subscripti...t/default.aspx.
==================================================

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

Jun 7 '07 #2

P: n/a
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 (wa****@online.microsoft.com, 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.

Jun 12 '07 #3

P: n/a
Yes, the issue is solved. Thanks.
Jun 16 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.