<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://aspadvice.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>From .NET Geek's Desk</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/default.aspx</link><description>Thoughts and Findings on .NET</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>APTCA and Sandboxing</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/04/10/APTCA-and-Sandboxing.aspx</link><pubDate>Fri, 10 Apr 2009 10:51:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:52188</guid><dc:creator>sankarsan</dc:creator><slash:comments>2</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/52188.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=52188</wfw:commentRss><description>In .NET Framework any code which does not have the FullTrust cannot make calls to a strong named assembly.The strong naming of assemblies is again a requirement to register the same in GAC to be shared by multiple applications.Most of the third party...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/04/10/APTCA-and-Sandboxing.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=52188" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/APTCA/default.aspx">APTCA</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/Security/default.aspx">Security</category></item><item><title>.NET Memory Management and GCHandle</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/03/01/.NET-Memory-Management-and-GCHandle.aspx</link><pubDate>Sun, 01 Mar 2009 07:56:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:51222</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/51222.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=51222</wfw:commentRss><description>GC Handle provides facilities to explicitly control and monitor the lifetime of an object in heap.Whenever an appdomain loads it creates a GC Handle table which maintains a list of pointers and corresponding GC Handle type.The GC Handle can be obtained...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/03/01/.NET-Memory-Management-and-GCHandle.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=51222" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/InterOp/default.aspx">InterOp</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/GC/default.aspx">GC</category></item><item><title>Physical Layout of Data - StructLayout</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/02/22/Physical-Layout-of-Data-_2D00_-StructLayout.aspx</link><pubDate>Sun, 22 Feb 2009 06:48:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:51074</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/51074.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=51074</wfw:commentRss><description>This week I was taking a close look into various InterOp related stuff for a code review purpose.While doing so the way CLR controls the physical layout of a data structure in memory caught my attention.This is what I intend to discuss here. When we are...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/02/22/Physical-Layout-of-Data-_2D00_-StructLayout.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=51074" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/InterOp/default.aspx">InterOp</category></item><item><title>Functional Construction in LINQ To XML</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/31/Functional-Construction-in-LINQ-To-XML.aspx</link><pubDate>Sat, 31 Jan 2009 07:51:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:50566</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/50566.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=50566</wfw:commentRss><description>In this post we describe how we can create XML documents using LINQ to XML.Here we will discuss about functional construction of a XML tree in which we can construct a XML document using a single statement.Before getting into examples let us take a look...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/31/Functional-Construction-in-LINQ-To-XML.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=50566" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>LINQ To XML Overview</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/24/LINQ-To-XML-Overview.aspx</link><pubDate>Sat, 24 Jan 2009 08:40:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:50403</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/50403.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=50403</wfw:commentRss><description>In this post I will discuss about how we can use the concepts of LINQ in parsing an xml document using the classes provided in the System.Xml.Linq namespace.We can think of any xml document as a collection of nodes where a node can be element,attribute,processing...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/24/LINQ-To-XML-Overview.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=50403" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Anonymous Types and LINQ</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/17/Anonymous-Types-and-LINQ.aspx</link><pubDate>Sat, 17 Jan 2009 06:42:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:50198</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/50198.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=50198</wfw:commentRss><description>Anonymous types, introduced in C# provides the facility to encapsulate a set of properties into a type without specifically naming the type in source code as shown below: var prod = new { Name=&amp;quot;xyz&amp;quot;,Price=12.00}; In this case compiler internally...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/17/Anonymous-Types-and-LINQ.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=50198" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Dependency Injection</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/04/Dependency-Injection.aspx</link><pubDate>Sun, 04 Jan 2009 13:29:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:49850</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/49850.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=49850</wfw:commentRss><description>As the concept of TDD(Test Driven Development) is growing popular day by day the Dependency Injection (DI) and Inversion of Control (IoC) patterns are also becoming increasingly popular and much discussed about topic.In this post I will share my thoughts...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2009/01/04/Dependency-Injection.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=49850" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/Patterns/default.aspx">Patterns</category></item><item><title>Lambda Expressions</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/28/Lambda-Expressions.aspx</link><pubDate>Sun, 28 Dec 2008 12:30:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:49714</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/49714.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=49714</wfw:commentRss><description>Before getting details of Lambda expressions let us quickly take a look into how we work with delegates and a named method since the days of .NET 1.1.Let us consider the following code sample //Delegate declaration public delegate void Test(string s);...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/28/Lambda-Expressions.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=49714" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category></item><item><title>String Interning in C#</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/25/String-Interning-in-C_2300_.aspx</link><pubDate>Thu, 25 Dec 2008 06:39:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:49665</guid><dc:creator>sankarsan</dc:creator><slash:comments>3</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/49665.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=49665</wfw:commentRss><description>We all know that string objects are immutable in C# i.e we can only create a new instance of the object we cannot alter or modify them.Let us take a quick look into the following lines of code: static void Main(string[] args) { string s1 = &amp;quot;sankarsan&amp;quot;;...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/25/String-Interning-in-C_2300_.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=49665" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Object Equality</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/25/Object-Equality.aspx</link><pubDate>Thu, 25 Dec 2008 05:28:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:49664</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/49664.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=49664</wfw:commentRss><description>In this post I will discuss about the very basic concepts related to object equality.Object equality can be of two types Value Equality - Two objects having same value for all the fields Reference Equality - Two instance variables pointing to same reference...(&lt;a href="http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/25/Object-Equality.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=49664" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Upcasting and Downcasting in C#</title><link>http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx</link><pubDate>Mon, 22 Dec 2008 21:26:00 GMT</pubDate><guid isPermaLink="false">e709ad4c-0c15-48eb-915e-c462c6e85445:49591</guid><dc:creator>sankarsan</dc:creator><slash:comments>0</slash:comments><comments>http://aspadvice.com/blogs/from_net_geeks_desk/comments/49591.aspx</comments><wfw:commentRss>http://aspadvice.com/blogs/from_net_geeks_desk/commentrss.aspx?PostID=49591</wfw:commentRss><description>&lt;p&gt;While reviewing code and discussing with developers I have seen in several occasions that people are not very clear or conscious about upcasting and downcasting.In this post I would like to note down the differences between the two.&lt;/p&gt;&lt;p&gt;Upcasting means casting an object of any type to another type which is above it in the inheritance hierarchy.&lt;/p&gt;&lt;p&gt;Downcasting means casting an object of any type to another type which is below it in the inheritance hierarchy.&lt;/p&gt;&lt;p&gt;For sake of simplicity let us consider the two classes as shown below:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;public class Base &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int i; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Base() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 10; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Derived:Base &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int j; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Derived() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = 10; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Following is the code for upcasting:&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;Derived d = new Derived(); &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;&amp;nbsp; Base b = (Base)d;&lt;/em&gt;&lt;/font&gt; &lt;/p&gt;&lt;p&gt;The corresponding IL code will be as follows:&lt;/p&gt;&lt;p&gt;&lt;font color="#800000"&gt;&lt;strong&gt;//Create new object of type&lt;/strong&gt; &lt;br /&gt;IL_0001:&amp;nbsp; newobj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance void TypeConversionDemo.Derived::.ctor() &lt;br /&gt;&lt;strong&gt;//Store the reference in first variable&lt;/strong&gt; &lt;br /&gt;IL_0006:&amp;nbsp; stloc.0 &lt;br /&gt;&lt;strong&gt;//Load the value from first variable &lt;br /&gt;&lt;/strong&gt;IL_0007:&amp;nbsp; ldloc.0 &lt;br /&gt;&lt;strong&gt;//store the value in second variable&lt;/strong&gt; &lt;br /&gt;IL_0008:&amp;nbsp; stloc.1&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Following is the code for downcasting:&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;object d = new Derived(); &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;Base b = (Base)d;&lt;/em&gt;&lt;/font&gt; &lt;/p&gt;&lt;p&gt;The corresponding IL code will be as follows:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;font color="#804000"&gt;IL_0001:&amp;nbsp; newobj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance void TypeConversionDemo.Derived::.ctor() &lt;br /&gt;IL_0006:&amp;nbsp; stloc.0 &lt;br /&gt;IL_0007:&amp;nbsp; ldloc.0 &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;IL_0008:&amp;nbsp; castclass&amp;nbsp; TypeConversionDemo.Base&lt;/font&gt;&lt;/strong&gt; &lt;br /&gt;IL_000d:&amp;nbsp; stloc.1&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The major difference in the two is presence of the &lt;font size="3"&gt;castclass&lt;/font&gt; operator.This operator performs a runtime type checking and the types are not compatible then throws a InvalidCastException.For upcasting runtime checking is not required as &amp;quot;derived&amp;quot; is always a type of &amp;quot;base&amp;quot; so question of incompatibility at runtime does not arise.But for downcasting it is not possible to determine at compile time whether two types are compatible.&lt;/p&gt;&lt;p&gt;Let us consider another class:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;public class Test &lt;br /&gt;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int k; &lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The following code will compile without any error:&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object d = new Derived(); &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test b = (Test)d;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;But will throw runtime InvalidCastException.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;{&amp;quot;Unable to cast object of type &amp;#39;TypeConversionDemo.Derived&amp;#39; to type &amp;#39;TypeConversionDemo.Test&amp;#39;.&amp;quot;}&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;For this runtime check downcasting is always more costly than upcasting in terms of performance.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;;subject=Upcasting+and+Downcasting+in+C%23" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;;title=Upcasting+and+Downcasting+in+C%23" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;title=Upcasting+and+Downcasting+in+C%23" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;;title=Upcasting+and+Downcasting+in+C%23" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx&amp;amp;;title=Upcasting+and+Downcasting+in+C%23&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/from_net_geeks_desk/archive/2008/12/22/Upcasting-and-Downcasting-in-C_2300_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=49591" width="1" height="1"&gt;</description><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://aspadvice.com/blogs/from_net_geeks_desk/archive/tags/.NET/default.aspx">.NET</category></item></channel></rss>