<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: C#: Extension methods != Open classes</title>
	<atom:link href="http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/</link>
	<description>Thoughts on Software Development</description>
	<lastBuildDate>Sat, 11 Feb 2012 23:17:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: brad</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9932</link>
		<dc:creator>brad</dc:creator>
		<pubDate>Thu, 19 Feb 2009 16:51:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9932</guid>
		<description>There is a very important reason they didnt allow you to muck w/ private/internal stuff in a class (w/o using full trust + reflection that is): the internals of a class should be free to change from release to release without fear of mucking up something in the clients code.  That is why so many things inside the .net framework used to implement the exposed API are marked internal.  Every public class/method they add makes it harder to change in the future and a larger testing burden.</description>
		<content:encoded><![CDATA[<p>There is a very important reason they didnt allow you to muck w/ private/internal stuff in a class (w/o using full trust + reflection that is): the internals of a class should be free to change from release to release without fear of mucking up something in the clients code.  That is why so many things inside the .net framework used to implement the exposed API are marked internal.  Every public class/method they add makes it harder to change in the future and a larger testing burden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9875</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 19 Feb 2009 08:23:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9875</guid>
		<description>That&#039;s what you get for using a static language instead of a dynamic language like ruby ;)</description>
		<content:encoded><![CDATA[<p>That&#8217;s what you get for using a static language instead of a dynamic language like ruby <img src='http://www.markhneedham.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pat</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9874</link>
		<dc:creator>Pat</dc:creator>
		<pubDate>Thu, 19 Feb 2009 08:23:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9874</guid>
		<description>Treat them as synatic sugar (over calling some *Util class with static methods). They were definitely not intended to be the same thing as open classes.</description>
		<content:encoded><![CDATA[<p>Treat them as synatic sugar (over calling some *Util class with static methods). They were definitely not intended to be the same thing as open classes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Needham</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9867</link>
		<dc:creator>Mark Needham</dc:creator>
		<pubDate>Thu, 19 Feb 2009 07:39:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9867</guid>
		<description>Good point, didn&#039;t think of that. In which case I guess we&#039;ll need truly open classes in order to do that</description>
		<content:encoded><![CDATA[<p>Good point, didn&#8217;t think of that. In which case I guess we&#8217;ll need truly open classes in order to do that</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reflective Perspective - Chris Alcock &#187; The Morning Brew #290</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9865</link>
		<dc:creator>Reflective Perspective - Chris Alcock &#187; The Morning Brew #290</dc:creator>
		<pubDate>Thu, 19 Feb 2009 07:26:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9865</guid>
		<description>[...] C#: Extensions methods != Open classes - Mark Needham reminds us that extension methods do not mean our classes all instantly become Open Classes (in the sense of the Open Closed principle). One of the key missing features is the ability to override using extension methods. [...]</description>
		<content:encoded><![CDATA[<p>[...] C#: Extensions methods != Open classes &#8211; Mark Needham reminds us that extension methods do not mean our classes all instantly become Open Classes (in the sense of the Open Closed principle). One of the key missing features is the ability to override using extension methods. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin Clowers</title>
		<link>http://www.markhneedham.com/blog/2009/02/19/c-extensions-methods-open-classes/comment-page-1/#comment-9808</link>
		<dc:creator>Robin Clowers</dc:creator>
		<pubDate>Wed, 18 Feb 2009 22:45:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=957#comment-9808</guid>
		<description>Since extension methods compile down to a static method, they cannot have any instance level state.  Hence, no properties.</description>
		<content:encoded><![CDATA[<p>Since extension methods compile down to a static method, they cannot have any instance level state.  Hence, no properties.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

