<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>projects on Mature Pessimizations - A programming blog by Theodoros Chatzigiannakis</title>
    <link>https://blog.tchatzigiannakis.com/categories/projects/</link>
    <description>Recent content in projects 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/categories/projects/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>
    
    <item>
      <title>Creating a ref alternative in C#</title>
      <link>https://blog.tchatzigiannakis.com/creating-a-ref-alternative-in-c-sharp/</link>
      <pubDate>Mon, 02 Jan 2017 20:00:00 +0300</pubDate>
      
      <guid>https://blog.tchatzigiannakis.com/creating-a-ref-alternative-in-c-sharp/</guid>
      <description>&lt;p&gt;C# has two keywords called &lt;code&gt;ref&lt;/code&gt; and &lt;code&gt;out&lt;/code&gt;. They are not exactly the same, but they both offer the ability to pass a reference to a local variable or a field. At the binary level, what is passed is essentially a pointer.&lt;/p&gt;

&lt;p&gt;This feature is useful, but it has certain technical limitations. We will explore the possibility of constructing an alternative that does not suffer from the same limitations.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>