<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>unsafe on Mature Pessimizations - A programming blog by Theodoros Chatzigiannakis</title>
    <link>https://blog.tchatzigiannakis.com/tags/unsafe/</link>
    <description>Recent content in unsafe on Mature Pessimizations - A programming blog by Theodoros Chatzigiannakis</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Mon, 21 Aug 2017 20:00:00 +0300</lastBuildDate>
    
	<atom:link href="https://blog.tchatzigiannakis.com/tags/unsafe/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Changing an object&#39;s type at runtime in C#</title>
      <link>https://blog.tchatzigiannakis.com/changing-an-objects-type-at-runtime-in-c-sharp/</link>
      <pubDate>Mon, 21 Aug 2017 20:00:00 +0300</pubDate>
      
      <guid>https://blog.tchatzigiannakis.com/changing-an-objects-type-at-runtime-in-c-sharp/</guid>
      <description>&lt;p&gt;In most statically typed languages, an object&amp;rsquo;s type is set in stone once the object has been completely constructed. While the object can subsequently be cast to various types, it can never change its runtime type — many aspects of type systems and features (such as virtual dispatch) depend on this.&lt;/p&gt;

&lt;p&gt;In this post, we will see how we can use unsafe code in C# to bypass the type system and change a .NET object&amp;rsquo;s runtime type. Then, we will see an unusual case where it would be neat to have this. Needless to say, don&amp;rsquo;t try this in real code.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>