<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6797169534745713143</id><updated>2011-12-14T13:58:26.706+01:00</updated><category term='Protected Modifier'/><category term='Unmanaged types'/><category term='Base'/><category term='CLR'/><category term='Framework 3.5'/><category term='Pinvoke'/><category term='Microsoft'/><category term='Mapping'/><category term='SQL'/><category term='Nested'/><category term='CodeContract'/><category term='Implementation'/><category term='Framework 4.0'/><category term='CancelEventArgs'/><category term='Managed types'/><category term='Internal Modifier'/><category term='Collaps'/><category term='Extension'/><category term='Access Modifiers'/><category term='Inherit'/><category term='Datatype'/><category term='C++'/><category term='C#'/><category term='CancelEventHandler'/><category term='DateTime'/><category term='ListViewGroup'/><category term='CodeProject.com'/><category term='Generic'/><category term='Visual Basic'/><category term='Public Modifier'/><category term='Codename'/><category term='VB.Net'/><category term='Link'/><category term='Private Modifier'/><category term='Events'/><category term='JScript'/><category term='Dallas'/><category term='Protected Internal Modifier'/><category term='.Net Framework'/><title type='text'>C# and I</title><subtitle type='html'>With great code, comes great complexity, so keep it simple stupid...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-5434908850536474161</id><published>2011-01-19T14:24:00.000+01:00</published><updated>2011-01-19T14:24:37.232+01:00</updated><title type='text'>8 ICustomAttributeProvider Extensions</title><content type='html'>Following Extensions Methods are in the code below. hope you like em ;)&lt;br /&gt;&lt;br /&gt;The source code is also available on MSDN here: &lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.icustomattributeprovider.getcustomattributes(v=vs.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/system.reflection.icustomattributeprovider.getcustomattributes(v=vs.90).aspx&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;T GetCustomAttribute(bool)&lt;/li&gt;&lt;li&gt;T GetCustomAttribute()&lt;/li&gt;&lt;li&gt;T[] GetCustomAttributes(bool)&lt;/li&gt;&lt;li&gt;T[] GetCustomAttributes()&lt;/li&gt;&lt;li&gt;bool TryGetCustomAttribute(bool, out T)&lt;/li&gt;&lt;li&gt;bool TryGetCustomAttribute(out T)&lt;/li&gt;&lt;li&gt;bool TryGetCustomAttributes(bool, out T[])&lt;/li&gt;&lt;li&gt;bool TryGetCustomAttributes(out T[])&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Reflection;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Extensions&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Reflection&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Returns the first custom attributes defined on this member, identified by type T, or null if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="inherit"&amp;gt;When true, look up the hierarchy chain for the inherited custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;An single custom attributes located on index zero in the custom attribute array, or null.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; T GetCustomAttribute&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;bool&lt;/span&gt; inherit) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            T outval = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (TryGetCustomAttribute&amp;lt;T&amp;gt;(customAttributeProvider, inherit, &lt;span class="kwrd"&gt;out&lt;/span&gt; outval))&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; outval;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Returns the first custom attributes defined on this member, identified by type T, or null if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;An single custom attributes located on index zero in the custom attribute array, or null.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; T GetCustomAttribute&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            T outval = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (TryGetCustomAttribute&amp;lt;T&amp;gt;(customAttributeProvider, &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; outval))&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; outval;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Returns an array of custom attributes defined on this member, identified by type T, or an empty array if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="inherit"&amp;gt;When true, look up the hierarchy chain for the inherited custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;An array of custom attributes, or an empty custom attribute array.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; T[] GetCustomAttributes&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;bool&lt;/span&gt; inherit) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            T[] outval = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (TryGetCustomAttributes&amp;lt;T&amp;gt;(customAttributeProvider, inherit, &lt;span class="kwrd"&gt;out&lt;/span&gt; outval))&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; outval;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; T[0];&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Returns an array of custom attributes defined on this member, identified by type T, or an empty array if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;An array of custom attributes, or an empty custom attribute array.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; T[] GetCustomAttributes&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            T[] outval = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (TryGetCustomAttributes&amp;lt;T&amp;gt;(customAttributeProvider, &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; outval))&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; outval;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; T[0];&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Extracts the first custom attributes defined on this member, identified by type T, or null if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// A return value indicates whether the extraction was successfull or failed.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="inherit"&amp;gt;When true, look up the hierarchy chain for the inherited custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="value"&amp;gt;When this method returns, contains the custom attribute value contained in customAttributeProvider, if the extraction succeeded, or null if the extraction failed. &lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// The extraction fails if the customAttributeProvider parameter is null, or customAttributeProvider does not contain the custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;true if the extraction was successfully; otherwise, false.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; TryGetCustomAttribute&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;bool&lt;/span&gt; inherit, &lt;span class="kwrd"&gt;out&lt;/span&gt; T &lt;span class="kwrd"&gt;value&lt;/span&gt;) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;value&lt;/span&gt; = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (customAttributeProvider == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;object&lt;/span&gt;[] attributes = customAttributeProvider.GetCustomAttributes(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(T), inherit);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attributes == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attributes.Length == 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;value&lt;/span&gt; = (T)attributes[0];&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Extracts the first custom attributes defined on this member, identified by type T, or null if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// A return value indicates whether the extraction was successfull or failed.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="value"&amp;gt;When this method returns, contains the custom attribute value contained in customAttributeProvider, if the extraction succeeded, or null if the extraction failed. &lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// The extraction fails if the customAttributeProvider parameter is null, or customAttributeProvider does not contain the custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;true if the extraction was successfully; otherwise, false.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; TryGetCustomAttribute&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;out&lt;/span&gt; T &lt;span class="kwrd"&gt;value&lt;/span&gt;) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; TryGetCustomAttribute&amp;lt;T&amp;gt;(customAttributeProvider, &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Extracts an array of custom attributes defined on this member, identified by type T, or an empty array if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// A return value indicates whether the extraction was successfull or failed.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="inherit"&amp;gt;When true, look up the hierarchy chain for the inherited custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="value"&amp;gt;When this method returns, contains the custom attribute array contained in customAttributeProvider, if the extraction succeeded, or null if the extraction failed. &lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// The extraction fails if the customAttributeProvider parameter is null, or customAttributeProvider does not contain the custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;true if the extraction was successfully; otherwise, false.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; TryGetCustomAttributes&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;bool&lt;/span&gt; inherit, &lt;span class="kwrd"&gt;out&lt;/span&gt; T[] &lt;span class="kwrd"&gt;value&lt;/span&gt;) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;value&lt;/span&gt; = &lt;span class="kwrd"&gt;new&lt;/span&gt; T[0];&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (customAttributeProvider == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;object&lt;/span&gt;[] attributes = customAttributeProvider.GetCustomAttributes(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(T), inherit);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attributes == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (attributes.Length == 0)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;value&lt;/span&gt; = &lt;span class="kwrd"&gt;new&lt;/span&gt; T[attributes.Length];&lt;br /&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; attributes.Length; i++)&lt;br /&gt;                &lt;span class="kwrd"&gt;value&lt;/span&gt;[i] = attributes[0] &lt;span class="kwrd"&gt;as&lt;/span&gt; T;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Extracts an array of custom attributes defined on this member, identified by type T, or an empty array if there are no custom attributes of that type.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// A return value indicates whether the extraction was successfull or failed.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;Type of the custom attributes to extract.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="customAttributeProvider"&amp;gt;Provider to extract the custom attribute from.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="value"&amp;gt;When this method returns, contains the custom attribute array contained in customAttributeProvider, if the extraction succeeded, or null if the extraction failed. &lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// The extraction fails if the customAttributeProvider parameter is null, or customAttributeProvider does not contain the custom attribute.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;true if the extraction was successfully; otherwise, false.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developered by Paw Jershauge for rapid Custom Attribute extraction.&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; TryGetCustomAttributes&amp;lt;T&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="type"&gt;ICustomAttributeProvider&lt;/span&gt; customAttributeProvider, &lt;span class="kwrd"&gt;out&lt;/span&gt; T[] &lt;span class="kwrd"&gt;value&lt;/span&gt;) &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="type"&gt;Attribute&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; TryGetCustomAttributes&amp;lt;T&amp;gt;(customAttributeProvider, &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-5434908850536474161?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/5434908850536474161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2011/01/8-icustomattributeprovider-extensions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/5434908850536474161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/5434908850536474161'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2011/01/8-icustomattributeprovider-extensions.html' title='8 ICustomAttributeProvider Extensions'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-1109571188585013859</id><published>2010-09-20T14:05:00.000+02:00</published><updated>2010-09-20T14:05:23.743+02:00</updated><title type='text'>Image/Drawing Extensions</title><content type='html'>Some Image/Drawing Extensions I picked up or created&amp;nbsp;along the way.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; ColorChannelRGBA&lt;br /&gt;    { &lt;br /&gt;        R,&lt;br /&gt;        G,&lt;br /&gt;        B,&lt;br /&gt;        A&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; CompressionLevel : &lt;span class="kwrd"&gt;long&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Specifies the LZW compression scheme.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        CompressionLZW = 2,&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Specifies the CCITT3 compression scheme.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        CompressionCCITT3 = 3,&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Specifies the CCITT4 compression scheme.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        CompressionCCITT4 = 4,&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Specifies the RLE compression scheme.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        CompressionRle = 5,&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Specifies no compression.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        CompressionNone = 6,&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; ImagePosition&lt;br /&gt;    { &lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DrawingExtensions&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix DefaultColorMatrix&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//return new ColorMatrix(new float[][] &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//{ &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    new float[] { 1f, 0, 0, 0, 0 }, &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    new float[] { 0, 1f, 0, 0, 0 }, &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    new float[] { 0, 0, 1f, 0, 0 }, &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    new float[] { 0, 0, 0, 1f, 0 }, &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    new float[] { 0, 0, 0, 0, 1f } &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//});&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;get&lt;/span&gt; { &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] { &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 1, 0, 0, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 1, 0, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 1, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1 } }); }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; ColorMatrix&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix Reset(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] { &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 1, 0, 0, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 1, 0, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 1, 0, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1, 0 }, &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1 } });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] ToArray(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] colorMatrixElements = &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {obj[0,0], obj[0,1], obj[0,2], obj[0,3], obj[0,4]},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {obj[1,0], obj[1,1], obj[1,2], obj[1,3], obj[1,4]},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {obj[2,0], obj[2,1], obj[2,2], obj[2,3], obj[2,4]},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {obj[3,0], obj[3,1], obj[3,2], obj[3,3], obj[3,4]},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {obj[4,0], obj[4,1], obj[4,2], obj[4,3], obj[4,4]}&lt;br /&gt;            };&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; colorMatrixElements;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] GetMatrixRow(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowindex)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!rowindex.Between(0, 4))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"rowindex"&lt;/span&gt;, &lt;span class="str"&gt;"rowindex must be between 0 and 4"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[] rtnflarr = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[5];&lt;br /&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 5; i++)&lt;br /&gt;                rtnflarr[i] = obj[rowindex, i];&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; rtnflarr;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix SetMatrixRow(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowindex, &lt;span class="kwrd"&gt;params&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] columns)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!rowindex.Between(0, 4))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"rowindex"&lt;/span&gt;, &lt;span class="str"&gt;"rowindex must be between 0 and 4"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!columns.Length.Between(1, 5))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"row"&lt;/span&gt;, &lt;span class="str"&gt;"row array must an length between 1 and 5"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] tmparr = obj.ToArray();&lt;br /&gt;            tmparr[rowindex] = columns;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(tmparr);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix SetMatrixValue(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; rowindex, &lt;span class="kwrd"&gt;int&lt;/span&gt; columnindex, &lt;span class="kwrd"&gt;float&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!rowindex.Between(0, 4))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"rowindex"&lt;/span&gt;, &lt;span class="str"&gt;"rowindex must be between 0 and 4"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!columnindex.Between(0, 4))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"columnindex"&lt;/span&gt;, &lt;span class="str"&gt;"columnindex must an between 0 and 4"&lt;/span&gt;);&lt;br /&gt;            obj[rowindex, columnindex] = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix MakeBrightnessMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// return obj.ScaleColor(value, value, value);&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 1f, 0, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 1f, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 1f, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1f, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { &lt;span class="kwrd"&gt;value&lt;/span&gt;, &lt;span class="kwrd"&gt;value&lt;/span&gt;, &lt;span class="kwrd"&gt;value&lt;/span&gt;, 0, 1f } &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix MakeContrastMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//return obj.Reset().SetMatrixValue(0, 0, value).SetMatrixValue(1, 1, value).SetMatrixValue(2, 2, value);&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { &lt;span class="kwrd"&gt;value&lt;/span&gt;, 0, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, &lt;span class="kwrd"&gt;value&lt;/span&gt;, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, &lt;span class="kwrd"&gt;value&lt;/span&gt;, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1f, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1f } &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix MakeTintMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//return obj.SetMatrixRow(3, ((float)value / 100f), ((float)value / 100f), ((float)value / 100f), 1f, 0f);&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 1f, 0, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 1f, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 1f, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)&lt;span class="kwrd"&gt;value&lt;/span&gt; / 100f), ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)&lt;span class="kwrd"&gt;value&lt;/span&gt; / 100f), ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)&lt;span class="kwrd"&gt;value&lt;/span&gt; / 100f), 1f, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1f } &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix MakeInvertColorMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//return obj.Reset().SetMatrixValue(0, 0, -1).SetMatrixValue(1, 1, -1).SetMatrixValue(2, 2, -1);&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { -1f, 0, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, -1f, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, -1f, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1f, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1f } &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix MakeColorMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;//{ 1f, 0f, 0f }, { 0.5f, 1.0f, 0.5f }, { 0.2f, 0.4f, 0.6f }&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 1f, 0, 0, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0.5f, 1f, 0.5f, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0.2f, 0.4f, 0.6f, 0, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 1, 0 }, &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] { 0, 0, 0, 0, 1 } &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix ScaleColor(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Red, &lt;span class="kwrd"&gt;int&lt;/span&gt; Green, &lt;span class="kwrd"&gt;int&lt;/span&gt; Blue)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Red.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Red"&lt;/span&gt;, &lt;span class="str"&gt;"Red must be between -100 and 100 percent"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Green.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Green"&lt;/span&gt;, &lt;span class="str"&gt;"Green must be between -100 and 100 percent"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Blue.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Blue"&lt;/span&gt;, &lt;span class="str"&gt;"Blue must be between -100 and 100 percent"&lt;/span&gt;);&lt;br /&gt;            obj.Matrix40 = ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Red / 20f);&lt;br /&gt;            obj.Matrix41 = ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Green / 20f);&lt;br /&gt;            obj.Matrix42 = ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Blue / 20f);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix ScaleColor(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Red, &lt;span class="kwrd"&gt;float&lt;/span&gt; Green, &lt;span class="kwrd"&gt;float&lt;/span&gt; Blue)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Red.Between(-5, 5))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Red"&lt;/span&gt;, &lt;span class="str"&gt;"Red must be between -5 and 5 percent"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Green.Between(-5, 5))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Green"&lt;/span&gt;, &lt;span class="str"&gt;"Green must be between -5 and 5 percent"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Blue.Between(-5, 5))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Blue"&lt;/span&gt;, &lt;span class="str"&gt;"Blue must be between -5 and 5 percent"&lt;/span&gt;);&lt;br /&gt;            obj.Matrix40 = Red;&lt;br /&gt;            obj.Matrix41 = Green;&lt;br /&gt;            obj.Matrix42 = Blue;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix ScaleColor(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Percent"&lt;/span&gt;, &lt;span class="str"&gt;"Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.ScaleColor(Percent, Percent, Percent);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix Multiply(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, ColorMatrix multiplier)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Multiply(multiplier.ToArray());&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix Multiply(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] multiplier)&lt;br /&gt;        {&lt;br /&gt;            ColorMatrix rtnmatrix = &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix();&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[] matrixcolumn = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[5];&lt;br /&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j = 0; j &amp;lt; 5; j++)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0; x &amp;lt; 5; x++)&lt;br /&gt;                    matrixcolumn[x] = obj[x, j];&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; y = 0; y &amp;lt; 5; y++)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;float&lt;/span&gt; s = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0; x &amp;lt; 5; x++)&lt;br /&gt;                        s += multiplier[y][x] * matrixcolumn[x];&lt;br /&gt;                    rtnmatrix[y, j] = s;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; rtnmatrix;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix Rotate(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; degrees)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; r = degrees * System.&lt;span class="type"&gt;Math&lt;/span&gt;.PI / 180; &lt;span class="rem"&gt;// degrees to radians&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//ColorMatrix rtnmatrix = obj.SetMatrixRow(0, new float[] { (float)System.Math.Cos(r), (float)System.Math.Sin(r), 0, 0, 0 });&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//rtnmatrix = rtnmatrix.SetMatrixRow(1, new float[] { (float)-System.Math.Sin(r), (float)-System.Math.Cos(r), 0, 0, 0 });&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//ColorMatrix rtnmatrix = obj.SetMatrixRow(0, new float[] { (float)Math.Cos(r), (float)Math.Sin(r), 0, 0, 0 });&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//rtnmatrix = rtnmatrix.SetMatrixRow(1, new float[] { (float)-Math.Sin(r), (float)-Math.Cos(r), 0, 0, 0 });&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//rtnmatrix = rtnmatrix.SetMatrixRow(2, new float[] { 0, 0, 2, 0, 0 });&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] colorMatrixElements = &lt;br /&gt;            { &lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {(&lt;span class="kwrd"&gt;float&lt;/span&gt;)System.&lt;span class="type"&gt;Math&lt;/span&gt;.Cos(r), (&lt;span class="kwrd"&gt;float&lt;/span&gt;)System.&lt;span class="type"&gt;Math&lt;/span&gt;.Sin(r), 0, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {(&lt;span class="kwrd"&gt;float&lt;/span&gt;)-System.&lt;span class="type"&gt;Math&lt;/span&gt;.Sin(r), (&lt;span class="kwrd"&gt;float&lt;/span&gt;)System.&lt;span class="type"&gt;Math&lt;/span&gt;.Cos(r), 0, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {0, 0, 2, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {0, 0, 0, 1, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {0, 0, 0, 0, 1}&lt;br /&gt;                &lt;span class="rem"&gt;//obj.GetMatrixRow(2),&lt;/span&gt;&lt;br /&gt;                &lt;span class="rem"&gt;//obj.GetMatrixRow(3),&lt;/span&gt;&lt;br /&gt;                &lt;span class="rem"&gt;//obj.GetMatrixRow(4)&lt;/span&gt;&lt;br /&gt;            };&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(colorMatrixElements);&lt;br /&gt;            &lt;span class="rem"&gt;//return rtnmatrix;&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ColorMatrix Rotate(&lt;span class="kwrd"&gt;this&lt;/span&gt; ColorMatrix obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; degrees, ColorChannelRGBA channel)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; rad = degrees * (&lt;span class="type"&gt;Math&lt;/span&gt;.PI / 180d);&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0;&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; y = 0;&lt;br /&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (channel)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; ColorChannelRGBA.R:&lt;br /&gt;                    y = 2;&lt;br /&gt;                    x = 1;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; ColorChannelRGBA.G:&lt;br /&gt;                    y = 0;&lt;br /&gt;                    x = 2;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; ColorChannelRGBA.B:&lt;br /&gt;                    y = 1;&lt;br /&gt;                    x = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; ColorChannelRGBA.A:&lt;br /&gt;                    y = 0;&lt;br /&gt;                    x = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;br /&gt;                    y = 0;&lt;br /&gt;                    x = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] farray = DrawingExtensions.DefaultColorMatrix.ToArray();&lt;br /&gt;            farray[x][x] = farray[y][y] = (&lt;span class="kwrd"&gt;float&lt;/span&gt;)&lt;span class="type"&gt;Math&lt;/span&gt;.Cos(rad);&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;float&lt;/span&gt; s = (&lt;span class="kwrd"&gt;float&lt;/span&gt;)&lt;span class="type"&gt;Math&lt;/span&gt;.Sin(rad);&lt;br /&gt;            &lt;span class="rem"&gt;//if (channel == ColorChannelRGBA.G)&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//{&lt;/span&gt;&lt;br /&gt;            farray[y][x] = s;&lt;br /&gt;            farray[x][y] = -s;&lt;br /&gt;            &lt;span class="rem"&gt;//}&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//else&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//{ &lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    farray[y][x] = -s;&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//    farray[x][y] = s;&lt;/span&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;//Multiply(m, order);&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Multiply(farray);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Image&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="type"&gt;Help&lt;/span&gt; Methods NOT EXTENSIONS and not &lt;span class="kwrd"&gt;public&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image CombineFrames(Image firstpage, Bitmap[] pages, EncoderParameters ep)&lt;br /&gt;        {&lt;br /&gt;            Bitmap Tiff = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="type"&gt;MemoryStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Bitmap page &lt;span class="kwrd"&gt;in&lt;/span&gt; pages)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (Tiff == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (firstpage != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        Tiff = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(firstpage);&lt;br /&gt;                        Tiff.Save(ms, ImageFormat.Tiff.GetImageCodecInfo(), ep);&lt;br /&gt;                        ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.FrameDimensionPage);&lt;br /&gt;                        Tiff.SaveAdd(page, ep);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    {&lt;br /&gt;                        Tiff = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(page);&lt;br /&gt;                        Tiff.Save(ms, ImageFormat.Tiff.GetImageCodecInfo(), ep);&lt;br /&gt;                        ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.FrameDimensionPage);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    Tiff.SaveAdd(page, ep);&lt;br /&gt;            }&lt;br /&gt;            ms.Flush();&lt;br /&gt;            Image rtnimg = Image.FromStream(ms);&lt;br /&gt;            ms.&lt;span class="type"&gt;Close&lt;/span&gt;();&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; rtnimg;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CombineFrames(Image firstpage, Bitmap[] pages, EncoderParameters ep, &lt;span class="kwrd"&gt;string&lt;/span&gt; filename)&lt;br /&gt;        {&lt;br /&gt;            Bitmap Tiff = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="type"&gt;FileStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;FileStream&lt;/span&gt;(filename, &lt;span class="type"&gt;FileMode&lt;/span&gt;.Create);&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Bitmap page &lt;span class="kwrd"&gt;in&lt;/span&gt; pages)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (Tiff == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (firstpage != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        Tiff = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(firstpage);&lt;br /&gt;                        Tiff.Save(ms, ImageFormat.Tiff.GetImageCodecInfo(), ep);&lt;br /&gt;                        ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.FrameDimensionPage);&lt;br /&gt;                        Tiff.SaveAdd(page, ep);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    {&lt;br /&gt;                        Tiff = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(page);&lt;br /&gt;                        Tiff.Save(ms, ImageFormat.Tiff.GetImageCodecInfo(), ep);&lt;br /&gt;                        ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.FrameDimensionPage);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    Tiff.SaveAdd(page, ep);&lt;br /&gt;            }&lt;br /&gt;            ms.Flush();&lt;br /&gt;            ms.&lt;span class="type"&gt;Close&lt;/span&gt;();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="type"&gt;Help&lt;/span&gt; Methods NOT EXTENSIONS and &lt;span class="kwrd"&gt;public&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FixGenericGDIplusError(&lt;span class="kwrd"&gt;ref&lt;/span&gt; Image img)&lt;br /&gt;        {&lt;br /&gt;            Bitmap bmp = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(img.Width, img.Height);&lt;br /&gt;            bmp.MakeTransparent();&lt;br /&gt;            Graphics g = Graphics.FromImage(bmp);&lt;br /&gt;            g.DrawImage(img, bmp.GetRectangle(), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);&lt;br /&gt;            img.Dispose();&lt;br /&gt;            img = bmp;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image AddFrames(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, Bitmap[] pages)&lt;br /&gt;        {&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(1);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.MultiFrame);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; CombineFrames(obj, pages, ep);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image AddFrames(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, Bitmap[] pages, CompressionLevel compress)&lt;br /&gt;        {&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(2);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.MultiFrame);&lt;br /&gt;            ep.Param[1] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.Compression, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.CompressionLZW);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; CombineFrames(obj, pages, ep);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image AddFrames(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, Bitmap[] pages, CompressionLevel compress, &lt;span class="type"&gt;ColorDepth&lt;/span&gt; &lt;span class="type"&gt;ColorDepth&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(3);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.MultiFrame);&lt;br /&gt;            ep.Param[1] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.Compression, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)compress);&lt;br /&gt;            ep.Param[2] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.&lt;span class="type"&gt;ColorDepth&lt;/span&gt;, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)&lt;span class="type"&gt;ColorDepth&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; CombineFrames(obj, pages, ep);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Brightness(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Percent"&lt;/span&gt;, &lt;span class="str"&gt;"Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(DefaultColorMatrix.MakeBrightnessMatrix((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Percent / 100f));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Compress(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, ImageFormat format, &lt;span class="kwrd"&gt;int&lt;/span&gt; quality)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (quality &amp;lt; 0 || quality &amp;gt; 100)&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"quality must be between 0 and 100."&lt;/span&gt;);&lt;br /&gt;            &lt;span class="type"&gt;MemoryStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(1);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.Quality, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)quality);&lt;br /&gt;            obj.Save(ms, format.GetImageCodecInfo(), ep);&lt;br /&gt;            ms.Flush();&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; Image.FromStream(ms);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Contrast(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Percent"&lt;/span&gt;, &lt;span class="str"&gt;"Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(DefaultColorMatrix.MakeContrastMatrix((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Percent / 100f));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Crop(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, Rectangle cropArea)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Bitmap bmpImage = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj);&lt;br /&gt;                Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (Image)(bmpCrop);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image DrawString(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;string&lt;/span&gt; text, Font font, Brush brush, &lt;span class="type"&gt;ContentAlignment&lt;/span&gt; textAlign, TextRenderingHint textRender)&lt;br /&gt;        {&lt;br /&gt;            Bitmap myBitmap = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj);&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (Graphics grObj = Graphics.FromImage(myBitmap))&lt;br /&gt;            {&lt;br /&gt;                grObj.TextRenderingHint = textRender;&lt;br /&gt;                StringFormat strFormat = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringFormat();&lt;br /&gt;                &lt;span class="preproc"&gt;#region&lt;/span&gt; Alignment Switch&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;switch&lt;/span&gt; (textAlign)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomCenter:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Center;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Far;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomLeft:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Near;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Far;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomRight:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Far;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Far;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleCenter:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Center;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Center;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleLeft:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Near;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Center;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleRight:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Far;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Center;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopCenter:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Center;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Near;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopLeft:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Near;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Near;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopRight:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Far;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Near;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                    &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;br /&gt;                        {&lt;br /&gt;                            strFormat.Alignment = StringAlignment.Near;&lt;br /&gt;                            strFormat.LineAlignment = StringAlignment.Near;&lt;br /&gt;                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;                grObj.DrawString(text, font, brush, &lt;span class="kwrd"&gt;new&lt;/span&gt; RectangleF(0, 0, obj.Width, obj.Height), strFormat);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; (Image)myBitmap;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image DrawString(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;string&lt;/span&gt; text, Font font, Brush brush, &lt;span class="type"&gt;ContentAlignment&lt;/span&gt; textAlign)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.DrawString(text, font, brush, textAlign, TextRenderingHint.SystemDefault);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image DrawString(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;string&lt;/span&gt; text, &lt;span class="type"&gt;ContentAlignment&lt;/span&gt; textAlign)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.DrawString(text, SystemFonts.DefaultFont, Brushes.Black, textAlign);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image[] GetFrames(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, ImageFormat format)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.RawFormat.Equals(ImageFormat.Tiff) || obj.RawFormat.Equals(ImageFormat.Gif))&lt;br /&gt;                {&lt;br /&gt;                    List&amp;lt;Image&amp;gt; rtnarr = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Image&amp;gt;();&lt;br /&gt;                    FrameDimension fd = &lt;span class="kwrd"&gt;new&lt;/span&gt; FrameDimension(obj.FrameDimensionsList[0]);&lt;br /&gt;                    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; obj.GetFrameCount(fd); i++)&lt;br /&gt;                    {&lt;br /&gt;                        obj.SelectActiveFrame(fd, i);&lt;br /&gt;                        &lt;span class="kwrd"&gt;using&lt;/span&gt; (&lt;span class="type"&gt;MemoryStream&lt;/span&gt; byteStream = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;())&lt;br /&gt;                        {&lt;br /&gt;                            obj.Save(byteStream, format);&lt;br /&gt;                            rtnarr.Add(Image.FromStream(byteStream));&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; rtnarr.ToArray();&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Image[] { obj };&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Image[] { obj };&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Rectangle GetRectangle(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, obj.Width, obj.Height);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Rectangle GetRectangleTilt(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, obj.Height, obj.Width);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image GrayScale(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            ColorMatrix colorMatrix = &lt;span class="kwrd"&gt;new&lt;/span&gt; ColorMatrix(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[][] &lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {.3f, .3f, .3f, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {.59f, .59f, .59f, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {.11f, .11f, .11f, 0, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {0, 0, 0, 1, 0},&lt;br /&gt;                &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;[] {0, 0, 0, 0, 1}&lt;br /&gt;            });&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(colorMatrix);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Invert(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(DefaultColorMatrix.MakeInvertColorMatrix());&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Merge(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, Image mergeWith, &lt;span class="type"&gt;ContentAlignment&lt;/span&gt; alignment)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; xpos, ypos;&lt;br /&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (alignment)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomCenter:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width) / 2;&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomLeft:&lt;br /&gt;                    xpos = 0;&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.BottomRight:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width);&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height);&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleCenter:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width) / 2;&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height) / 2;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleLeft:&lt;br /&gt;                    xpos = 0;&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height) / 2;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.MiddleRight:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width);&lt;br /&gt;                    ypos = (obj.Height - mergeWith.Height) / 2;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopCenter:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width) / 2;&lt;br /&gt;                    ypos = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopLeft:&lt;br /&gt;                    xpos = 0;&lt;br /&gt;                    ypos = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="type"&gt;ContentAlignment&lt;/span&gt;.TopRight:&lt;br /&gt;                    xpos = (obj.Width - mergeWith.Width);&lt;br /&gt;                    ypos = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:&lt;br /&gt;                    xpos = 0;&lt;br /&gt;                    ypos = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            Bitmap img = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj);&lt;br /&gt;            Graphics g = Graphics.FromImage(img);&lt;br /&gt;            g.DrawImageUnscaled(mergeWith, xpos, ypos);&lt;br /&gt;            g.Save();&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; img;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image MergeToTiff(&lt;span class="kwrd"&gt;this&lt;/span&gt; Bitmap[] obj)&lt;br /&gt;        {&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(1);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.MultiFrame);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; CombineFrames(&lt;span class="kwrd"&gt;null&lt;/span&gt;, obj, ep);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MergeToTiff(&lt;span class="kwrd"&gt;this&lt;/span&gt; Bitmap[] obj, &lt;span class="kwrd"&gt;string&lt;/span&gt; filename)&lt;br /&gt;        {&lt;br /&gt;            EncoderParameters ep = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameters(1);&lt;br /&gt;            ep.Param[0] = &lt;span class="kwrd"&gt;new&lt;/span&gt; EncoderParameter(System.Drawing.Imaging.&lt;span class="type"&gt;Encoder&lt;/span&gt;.SaveFlag, (&lt;span class="kwrd"&gt;long&lt;/span&gt;)EncoderValue.MultiFrame);&lt;br /&gt;            CombineFrames(&lt;span class="kwrd"&gt;null&lt;/span&gt;, obj, ep, filename);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Percent, obj.PixelFormat);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Percent, obj.PixelFormat, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent, PixelFormat pixelFormat)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Percent, pixelFormat, obj.HorizontalResolution, obj.VerticalResolution);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent, PixelFormat pixelFormat, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Percent, pixelFormat, obj.HorizontalResolution, obj.VerticalResolution, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent, PixelFormat pixelFormat, &lt;span class="kwrd"&gt;float&lt;/span&gt; horizontalResolution, &lt;span class="kwrd"&gt;float&lt;/span&gt; verticalResolution)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Percent, pixelFormat, horizontalResolution, verticalResolution, InterpolationMode.HighQualityBicubic);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;float&lt;/span&gt; Percent, PixelFormat pixelFormat, &lt;span class="kwrd"&gt;float&lt;/span&gt; horizontalResolution, &lt;span class="kwrd"&gt;float&lt;/span&gt; verticalResolution, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;float&lt;/span&gt; nPercent = Percent; &lt;span class="rem"&gt;// ((float)Percent / 100);&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destWidth = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="type"&gt;Math&lt;/span&gt;.Round(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width * nPercent));&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destHeight = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="type"&gt;Math&lt;/span&gt;.Round(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height * nPercent));&lt;br /&gt;                Bitmap bmObj = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(destWidth, destHeight, pixelFormat);&lt;br /&gt;                bmObj.SetResolution(horizontalResolution, verticalResolution);&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (Graphics grObj = Graphics.FromImage(bmObj))&lt;br /&gt;                {&lt;br /&gt;                    grObj.Clear(&lt;span class="type"&gt;Color&lt;/span&gt;.Transparent);&lt;br /&gt;                    grObj.InterpolationMode = interpolationMode;&lt;br /&gt;                    grObj.DrawImage(obj, &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, destWidth, destHeight), &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, obj.Width, obj.Height), GraphicsUnit.Pixel);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (Image)bmObj;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; { &lt;span class="kwrd"&gt;throw&lt;/span&gt;; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Width, Height, obj.PixelFormat);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Width, Height, obj.PixelFormat, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height, PixelFormat pixelFormat)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Width, Height, pixelFormat, obj.HorizontalResolution, obj.VerticalResolution);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height, PixelFormat pixelFormat, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Width, Height, pixelFormat, obj.HorizontalResolution, obj.VerticalResolution, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height, PixelFormat pixelFormat, &lt;span class="kwrd"&gt;float&lt;/span&gt; horizontalResolution, &lt;span class="kwrd"&gt;float&lt;/span&gt; verticalResolution)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Width, Height, pixelFormat, horizontalResolution, verticalResolution, InterpolationMode.HighQualityBicubic);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Width, &lt;span class="kwrd"&gt;int&lt;/span&gt; Height, PixelFormat pixelFormat, &lt;span class="kwrd"&gt;float&lt;/span&gt; horizontalResolution, &lt;span class="kwrd"&gt;float&lt;/span&gt; verticalResolution, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; sourceWidth = obj.Width;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; sourceHeight = obj.Height;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destX = 0;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destY = 0;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;float&lt;/span&gt; nPercent = 0;&lt;br /&gt;                &lt;span class="kwrd"&gt;float&lt;/span&gt; nPercentW = 0;&lt;br /&gt;                &lt;span class="kwrd"&gt;float&lt;/span&gt; nPercentH = 0;&lt;br /&gt;&lt;br /&gt;                nPercentW = ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Width / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)sourceWidth);&lt;br /&gt;                nPercentH = ((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Height / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)sourceHeight);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (nPercentH &amp;lt; nPercentW)&lt;br /&gt;                {&lt;br /&gt;                    nPercent = nPercentH;&lt;br /&gt;                    destX = System.&lt;span class="type"&gt;Convert&lt;/span&gt;.ToInt16((Width - (sourceWidth * nPercent)) / 2);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    nPercent = nPercentW;&lt;br /&gt;                    destY = System.&lt;span class="type"&gt;Convert&lt;/span&gt;.ToInt16((Height - (sourceHeight * nPercent)) / 2);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destWidth = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)(sourceWidth * nPercent);&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; destHeight = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)(sourceHeight * nPercent);&lt;br /&gt;&lt;br /&gt;                Bitmap bmObj = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(Width, Height, pixelFormat);&lt;br /&gt;                bmObj.SetResolution(horizontalResolution, verticalResolution);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (Graphics grObj = Graphics.FromImage(bmObj))&lt;br /&gt;                {&lt;br /&gt;                    grObj.Clear(&lt;span class="type"&gt;Color&lt;/span&gt;.Transparent);&lt;br /&gt;                    grObj.InterpolationMode = interpolationMode;&lt;br /&gt;                    grObj.DrawImage(obj, &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(destX, destY, destWidth, destHeight), &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, sourceWidth, sourceHeight), GraphicsUnit.Pixel);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (Image)bmObj;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; { &lt;span class="kwrd"&gt;throw&lt;/span&gt;; }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Size, &lt;span class="kwrd"&gt;bool&lt;/span&gt; KeepAspectRatio)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (KeepAspectRatio)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.Width &amp;gt;= obj.Height)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width));&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height));&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Size, Size);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Size, &lt;span class="kwrd"&gt;bool&lt;/span&gt; KeepAspectRatio, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (KeepAspectRatio)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.Width &amp;gt;= obj.Height)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width), interpolationMode);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height), interpolationMode);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Size, Size, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Resize(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Size, &lt;span class="kwrd"&gt;bool&lt;/span&gt; KeepAspectRatio, PixelFormat pixelFormat, InterpolationMode interpolationMode)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (KeepAspectRatio)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.Width &amp;gt;= obj.Height)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width), pixelFormat, interpolationMode);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Size / (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height), pixelFormat, interpolationMode);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Size, Size, pixelFormat, interpolationMode);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Rotate(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; angle)&lt;br /&gt;        {&lt;br /&gt;            Bitmap bmObj = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj.Width, obj.Height);&lt;br /&gt;            Graphics grObj = Graphics.FromImage(bmObj);&lt;br /&gt;            grObj.TranslateTransform((&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width / 2, (&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height / 2);&lt;br /&gt;            grObj.RotateTransform(angle);&lt;br /&gt;            grObj.TranslateTransform(-(&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Width / 2, -(&lt;span class="kwrd"&gt;float&lt;/span&gt;)obj.Height / 2);&lt;br /&gt;            grObj.DrawImage(obj, &lt;span class="kwrd"&gt;new&lt;/span&gt; Point(0, 0));&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; bmObj;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image ScaleColor(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; R_Percent, &lt;span class="kwrd"&gt;int&lt;/span&gt; G_Percent, &lt;span class="kwrd"&gt;int&lt;/span&gt; B_Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!R_Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"R_Percent"&lt;/span&gt;, &lt;span class="str"&gt;"R_Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!G_Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"G_Percent"&lt;/span&gt;, &lt;span class="str"&gt;"G_Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!B_Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"B_Percent"&lt;/span&gt;, &lt;span class="str"&gt;"B_Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(DefaultColorMatrix.ScaleColor(R_Percent, G_Percent, B_Percent));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image SetColorMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, ColorMatrix colormatrix)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(colormatrix, GraphicsUnit.Pixel);&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image SetColorMatrix(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, ColorMatrix colormatrix, GraphicsUnit graphicunit)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Bitmap bmObj = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj.Width, obj.Height);&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (Graphics g = Graphics.FromImage(bmObj))&lt;br /&gt;                {&lt;br /&gt;                    ImageAttributes attributes = &lt;span class="kwrd"&gt;new&lt;/span&gt; ImageAttributes();&lt;br /&gt;                    attributes.SetColorMatrix(colormatrix);&lt;br /&gt;                    g.DrawImage(obj, &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, obj.Width, obj.Height), 0, 0, obj.Width, obj.Height, graphicunit, attributes);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (Image)bmObj;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; { &lt;span class="kwrd"&gt;throw&lt;/span&gt;; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image ToImage(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="type"&gt;MemoryStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;(obj);&lt;br /&gt;            Image returnImage = Image.FromStream(ms);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; returnImage;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] ToByteArray(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] rtnval = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (&lt;span class="type"&gt;MemoryStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;())&lt;br /&gt;            {&lt;br /&gt;                Image img = obj.FixGenericGDIplusError();&lt;br /&gt;                img.Save(ms, img.RawFormat);&lt;br /&gt;                rtnval = ms.GetBuffer();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; rtnval;&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="type"&gt;Stream&lt;/span&gt; ToStream(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="type"&gt;MemoryStream&lt;/span&gt; ms = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;            Image img = obj.FixGenericGDIplusError();&lt;br /&gt;            img.Save(ms, img.RawFormat);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; ms;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Icon ToIcon(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Bitmap bmObj = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(obj);&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; Icon.FromHandle(bmObj.GetHicon());&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="type"&gt;MemoryStream&lt;/span&gt; buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;MemoryStream&lt;/span&gt;();&lt;br /&gt;                    obj.Save(buffer, ImageFormat.Icon);&lt;br /&gt;                    buffer.Position = 0;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Icon(buffer);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;throw&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Icon ToIcon(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Size, &lt;span class="kwrd"&gt;bool&lt;/span&gt; KeepAspectRatio)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.Resize(Size, KeepAspectRatio).ToIcon();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image Tint(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; Percent)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Percent.Between(-100, 100))&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="type"&gt;ArgumentOutOfRangeException&lt;/span&gt;(&lt;span class="str"&gt;"Percent"&lt;/span&gt;, &lt;span class="str"&gt;"Percent must be between -100 and 100"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetColorMatrix(DefaultColorMatrix.MakeTintMatrix((&lt;span class="kwrd"&gt;float&lt;/span&gt;)Percent));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image FixGenericGDIplusError(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image img)&lt;br /&gt;        {&lt;br /&gt;            Bitmap bmp = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap(img.Width, img.Height);&lt;br /&gt;            bmp.MakeTransparent();&lt;br /&gt;            Graphics g = Graphics.FromImage(bmp);&lt;br /&gt;            g.DrawImage(img, &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; bmp;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ToBase64(&lt;span class="kwrd"&gt;this&lt;/span&gt; Image obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="type"&gt;Convert&lt;/span&gt;.ToBase64String(obj.ToByteArray());&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Image FromBase64(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; obj)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="type"&gt;Convert&lt;/span&gt;.FromBase64String(obj).ToImage();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Font&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// Sets the style of the font.&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;The font type to change&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="style"&amp;gt;style to apply&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;new font that has the new style applied.&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;remarks&amp;gt;Developed by Paw Jershauge. Find more Extensions and C# code on: http://pawjershauge.blogspot.com&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Font SetStyle(&lt;span class="kwrd"&gt;this&lt;/span&gt; Font obj, FontStyle style)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Font(obj, style);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; ImageCodecInfo GetImageCodecInfo(&lt;span class="kwrd"&gt;this&lt;/span&gt; ImageFormat obj)&lt;br /&gt;        {&lt;br /&gt;            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();&lt;br /&gt;            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (ImageCodecInfo codec &lt;span class="kwrd"&gt;in&lt;/span&gt; codecs)&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (codec.FormatID == obj.&lt;span class="type"&gt;Guid&lt;/span&gt;)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; codec;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-1109571188585013859?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/1109571188585013859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/09/imagedrawing-extensions.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/1109571188585013859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/1109571188585013859'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/09/imagedrawing-extensions.html' title='Image/Drawing Extensions'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-1754604381313347865</id><published>2010-04-07T11:39:00.002+02:00</published><updated>2010-04-13T09:34:03.014+02:00</updated><title type='text'>PropertyGrid fails to group a property marked as being in Category Behavior.</title><content type='html'>I found a small bug in the PropertyGrid when running 64bit operating systems.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;I have some classes where I want to categorize some properties, so for that I ofcause use the CategoryAttribute class. thats common knowledge.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;But all my properties maked as being under the category &lt;b&gt;"Behavior"&lt;/b&gt; is listed under a group/category called &lt;b&gt;"Type"&lt;/b&gt;&lt;br /&gt;see screendump.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_w-O3WDPvt30/S7t4yW1_f9I/AAAAAAAAAB0/7Th8-MfEoKk/s1600/PropertyGridFault.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" nt="true" src="http://2.bp.blogspot.com/_w-O3WDPvt30/S7t4yW1_f9I/AAAAAAAAAB0/7Th8-MfEoKk/s400/PropertyGridFault.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;So far i tested this on:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;Windows 7 (64 bit): &lt;b&gt;Bug confirmed&lt;/b&gt;&lt;br /&gt;Windows 7 (32 bit): &lt;strike&gt;No bug&lt;/strike&gt;&lt;br /&gt;Vista (64 bit): &lt;b&gt;Bug confirmed&lt;/b&gt;&lt;br /&gt;Vista (32 bit): &lt;strike&gt;No bug&lt;/strike&gt;&lt;br /&gt;Xp (32 bit): &lt;strike&gt;No bug&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;b&gt;&lt;span style="color: blue; font-size: large;"&gt;Bug found&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;The following list of category names will be converted when running the danish version of the CLR&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Category("Appearance") = Udseende&lt;/li&gt;&lt;li&gt;Category("Behavior") = Type (the correct word for this would be "adfærd" or "opførsel" and NOT Type)&lt;/li&gt;&lt;li&gt;Category("Data") = Data&lt;/li&gt;&lt;li&gt;Category("Font") = Skrifttype&lt;/li&gt;&lt;li&gt;Category("List") = Oversigt (the correct word for this would be "List" or "Liste" and NOT Oversigt)&lt;/li&gt;&lt;li&gt;Category("Misc") = Diverse&lt;/li&gt;&lt;li&gt;Category("Position") = Placering&lt;/li&gt;&lt;li&gt;Category("Scale") = Skalering&lt;/li&gt;&lt;li&gt;Category("Text") = Tekst&lt;/li&gt;&lt;/ul&gt;The reason I couldnt figure this one out, was because Behavior translated to danish is NOT Type, so therefore it didnt make any sense to me, to look in any resouce file. :(&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;The forllowing data was found under: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\da\System.Windows.Forms.Resources.dll&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;PropertyCategoryAppearance=Udseende&lt;/li&gt;&lt;li&gt;PropertyCategoryBehavior=Type&lt;/li&gt;&lt;li&gt;PropertyCategoryData=Data&lt;/li&gt;&lt;li&gt;PropertyCategoryFont=Skrifttype&lt;/li&gt;&lt;li&gt;PropertyCategoryList=Oversigt&lt;/li&gt;&lt;li&gt;PropertyCategoryMisc=Diverse&lt;/li&gt;&lt;li&gt;PropertyCategoryPosition=Placering&lt;/li&gt;&lt;li&gt;PropertyCategoryScale=Skalering&lt;/li&gt;&lt;li&gt;PropertyCategoryText=Tekst&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-1754604381313347865?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/1754604381313347865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/04/propertygrid-fails-to-group-property.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/1754604381313347865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/1754604381313347865'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/04/propertygrid-fails-to-group-property.html' title='PropertyGrid fails to group a property marked as being in Category Behavior.'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_w-O3WDPvt30/S7t4yW1_f9I/AAAAAAAAAB0/7Th8-MfEoKk/s72-c/PropertyGridFault.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-2789956206645672100</id><published>2010-03-12T15:48:00.008+01:00</published><updated>2010-09-16T13:42:35.400+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Managed types'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='DateTime'/><category scheme='http://www.blogger.com/atom/ns#' term='Extension'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>DateTime Extensions</title><content type='html'>Some Extensions i grabbed along the way or made up. I often have use for som simple extension, so heres my DateTime Extensions&lt;br /&gt;&lt;br /&gt;DateTime Examples:&lt;br /&gt;&lt;br /&gt;Having the following demo Variable called &lt;span class="csharpcode"&gt;DemoDate&lt;/span&gt; set to 2010/6/29 13:15:59.321 ( Tuesday 29 of June ) we will test the Extensions I've made.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="types"&gt;DateTime&lt;/span&gt; DemoDate = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(2010, 6, 29, 13, 15, 59, 321);         &lt;span class="rem"&gt;// representing an datetime equal to 2010/6/29 13:15:59.321 ( Tuesday 29 of June )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DemoDate.AddFinancialDays(4)                                            &lt;span class="rem"&gt;// returns 2010-&lt;span class="hli"&gt;07-05&lt;/span&gt; 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.BeginningOfDay()                                               &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;00:00:00.000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DemoDate.BeginningOfMonth()                                             &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;01 00:00:00.000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DemoDate.Between(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(2010, 3, 1), &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(2010, 7, 1))    &lt;span class="rem"&gt;// returns True&lt;/span&gt;&lt;br /&gt;DemoDate.CountFinancialDays(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(2010, 7, 9, &lt;span class="chli"&gt;12&lt;/span&gt;, 0, 0, 0))      &lt;span class="rem"&gt;// returns 7&lt;/span&gt;&lt;br /&gt;DemoDate.CountFinancialDays(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(2010, 7, 9, &lt;span class="chli"&gt;14&lt;/span&gt;, 0, 0, 0))      &lt;span class="rem"&gt;// returns 8&lt;/span&gt;&lt;br /&gt;DemoDate.EndOfDay()                                                     &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;23:59:59.999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DemoDate.EndOfMonth()                                                   &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;30 23:59:59.999&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DemoDate.FindClosestWeekDay()                                           &lt;span class="rem"&gt;// returns 2010-06-29 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.FirstDayOfWeekInMonth(&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Thursday)                      &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;03&lt;/span&gt; 00:00:00.000&lt;/span&gt;&lt;br /&gt;DemoDate.FirstWeekDayOfMonth()                                          &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;01&lt;/span&gt; 00:00:00.000&lt;/span&gt;&lt;br /&gt;DemoDate.GetDateByWeek(45, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Wednesday)                         &lt;span class="rem"&gt;// returns 2010-&lt;span class="hli"&gt;11-10&lt;/span&gt; 00:00:00.000&lt;/span&gt;&lt;br /&gt;DemoDate.IsWeekend()                                                    &lt;span class="rem"&gt;// returns False&lt;/span&gt;&lt;br /&gt;DemoDate.LastDayOfWeekInMonth(&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Saturday)                       &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;26&lt;/span&gt; 00:00:00.000&lt;/span&gt;&lt;br /&gt;DemoDate.LastWeekDayOfMonth()                                           &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;30&lt;/span&gt; 00:00:00.000&lt;/span&gt;&lt;br /&gt;DemoDate.Next(&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Monday)                                         &lt;span class="rem"&gt;// returns 2010-&lt;span class="hli"&gt;07-05&lt;/span&gt; 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.Previous(&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Friday)                                     &lt;span class="rem"&gt;// returns 2010-06-&lt;span class="hli"&gt;25&lt;/span&gt; 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.Quarter()                                                      &lt;span class="rem"&gt;// returns 2&lt;/span&gt;&lt;br /&gt;DemoDate.SetDate(2020)                                                  &lt;span class="rem"&gt;// returns &lt;span class="hli"&gt;2020&lt;/span&gt;-06-29 13:15:59.321&lt;/span&gt;&lt;br /&gt;&lt;span class="chli"&gt;NOTE: although we only wanted to set the month, the day will shift also, since the 29 of february 2019 does not exist.&lt;/span&gt;&lt;br /&gt;DemoDate.SetDate(2019, 2)                                               &lt;span class="rem"&gt;// returns &lt;span class="hli"&gt;2019-03-01&lt;/span&gt; 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.SetDate(2021, 3, 12)                                           &lt;span class="rem"&gt;// returns &lt;span class="hli"&gt;2021-03-12&lt;/span&gt; 13:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.SetTime(20)                                                    &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;20&lt;/span&gt;:15:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.SetTime(21, 35)                                                &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;21:35&lt;/span&gt;:59.321&lt;/span&gt;&lt;br /&gt;DemoDate.SetTime(17, 45, 3)                                             &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;17:45:03&lt;/span&gt;.321&lt;/span&gt;&lt;br /&gt;DemoDate.SetTime(9, 12, 59, 600)                                        &lt;span class="rem"&gt;// returns 2010-06-29 &lt;span class="hli"&gt;09:12:59.600&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DemoDate.ToMicrosoftNumber()                                            &lt;span class="rem"&gt;// returns 1214745359,321&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Just to illustrate heres the calendar for June &amp;amp; July in 2010.&lt;br /&gt;&lt;br /&gt;&lt;table border="1" style="border-collapse: collapse; font-size: xx-small; text-align: center;"&gt;&lt;tbody&gt;&lt;tr style="background-color: #cc0000; color: white; font-weight: bold;"&gt;&lt;td colspan="8"&gt;June 2010&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cc0000; color: white; font-weight: bold;"&gt;&lt;th width="40"&gt;Week&lt;/th&gt;&lt;th width="30"&gt;Mon&lt;/th&gt;&lt;th width="30"&gt;Tue&lt;/th&gt;&lt;th width="30"&gt;Wen&lt;/th&gt;&lt;th width="30"&gt;Thu&lt;/th&gt;&lt;th width="30"&gt;Fri&lt;/th&gt;&lt;th width="30"&gt;Sat&lt;/th&gt;&lt;th width="30"&gt;Sun&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;22&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;31&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;1&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;2&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;3&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;4&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;5&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;23&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;7&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;8&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;9&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;10&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;11&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;12&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;13&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;24&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;14&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;15&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;16&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;17&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;18&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;19&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;20&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;25&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;21&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;22&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;23&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;24&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;25&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;26&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;26&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;28&lt;/td&gt;&lt;td style="background-color: yellow; font-weight: bold;"&gt;29&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;30&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;1&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;2&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;3&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" style="border-collapse: collapse; font-size: xx-small; text-align: center;"&gt;&lt;tbody&gt;&lt;tr style="background-color: #cc0000; color: white; font-weight: bold;"&gt;&lt;td colspan="8"&gt;July 2010&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #cc0000; color: white; font-weight: bold;"&gt;&lt;th width="40"&gt;Week&lt;/th&gt;&lt;th width="30"&gt;Mon&lt;/th&gt;&lt;th width="30"&gt;Tue&lt;/th&gt;&lt;th width="30"&gt;Wen&lt;/th&gt;&lt;th width="30"&gt;Thu&lt;/th&gt;&lt;th width="30"&gt;Fri&lt;/th&gt;&lt;th width="30"&gt;Sat&lt;/th&gt;&lt;th width="30"&gt;Sun&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;26&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;28&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;29&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;30&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;1&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;2&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;3&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;27&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;5&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;6&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;7&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;8&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;9&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;10&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;28&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;12&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;13&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;14&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;15&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;16&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;17&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;18&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;29&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;19&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;20&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;21&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;22&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;23&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;24&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;25&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="background-color: #c1c1c1;"&gt;30&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;26&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;27&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;28&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;29&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;30&lt;/td&gt;&lt;td style="background-color: #ffe8e8; font-weight: bold;"&gt;31&lt;/td&gt;&lt;td style="background-color: #585858;"&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Globalization;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; PawJershauge.Extensions.ValueTypes;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; PawJershauge.Extensions&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;namespace&lt;/span&gt; DateAndTime&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DateTimeExtensions&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the first day of week with in the month.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="dow"&amp;gt;&lt;span class="rem"&gt;What day of week to find the first one of in the month.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns DateTime object that represents the first day of week with in the month.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; FirstDayOfWeekInMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; dow)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;DateTime&lt;/span&gt; firstDay = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; diff = firstDay.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; - dow;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (diff &amp;gt; 0) diff -= 7;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; firstDay.AddDays(diff * -1);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the first weekday (Financial day) of the month&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns DateTime object that represents the first weekday (Financial day) of the month&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; FirstWeekDayOfMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;DateTime&lt;/span&gt; firstDay = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 7; i++)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (firstDay.AddDays(i).&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; != &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Saturday &amp;amp;&amp;amp; firstDay.AddDays(i).&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; != &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Sunday)&lt;br /&gt;                        &lt;span class="kwrd"&gt;return&lt;/span&gt; firstDay.AddDays(i);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; firstDay;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the last day of week with in the month.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="dow"&amp;gt;&lt;span class="rem"&gt;What day of week to find the last one of in the month.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns DateTime object that represents the last day of week with in the month.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; LastDayOfWeekInMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; dow)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;DateTime&lt;/span&gt; lastDay = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, &lt;span class="types"&gt;DateTime&lt;/span&gt;.DaysInMonth(obj.Year, obj.Month));&lt;br /&gt;                &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; lastDow = lastDay.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; diff = dow - lastDow;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (diff &amp;gt; 0) diff -= 7;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; lastDay.AddDays(diff);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the last weekday (Financial day) of the month&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns DateTime object that represents the last weekday (Financial day) of the month&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; LastWeekDayOfMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;DateTime&lt;/span&gt; lastDay = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, &lt;span class="types"&gt;DateTime&lt;/span&gt;.DaysInMonth(obj.Year, obj.Month));&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 7; i++)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (lastDay.AddDays(i * -1).&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; != &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Saturday &amp;amp;&amp;amp; lastDay.AddDays(i * -1).&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; != &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Sunday)&lt;br /&gt;                        &lt;span class="kwrd"&gt;return&lt;/span&gt; lastDay.AddDays(i * -1);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; lastDay;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the closest Weekday (Financial day) Date&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns the closest Weekday (Financial day) Date&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; FindClosestWeekDay(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; == &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Saturday)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.AddDays(-1);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; == &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Sunday)&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.AddDays(1);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the very end of the given month (the last millisecond of the last hour for the given date)&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns the very end of the given month (the last millisecond of the last hour for the given date)&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; EndOfMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, &lt;span class="types"&gt;DateTime&lt;/span&gt;.DaysInMonth(obj.Year, obj.Month), 23, 59, 59, 999);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the Start of the given month (the fist millisecond of the given date)&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns the Start of the given month (the fist millisecond of the given date)&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; BeginningOfMonth(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, obj.Month, 1, 0, 0, 0, 0);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the very end of the given day (the last millisecond of the last hour for the given date)&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns the very end of the given day (the last millisecond of the last hour for the given date)&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; EndOfDay(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetTime(23, 59, 59, 999);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the Start of the given day (the fist millisecond of the given date)&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns the Start of the given day (the fist millisecond of the given date)&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; BeginningOfDay(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.SetTime(0, 0, 0, 0);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns a given datetime according to the week of year and the specified day within the week.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="week"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional weeks. The value parameter can only be positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="dayofweek"&amp;gt;&lt;span class="rem"&gt;A DayOfWeek to find in the week&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum according to the week of year and the specified day within the week.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; GetDateByWeek(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; week, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; dayofweek)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (week &amp;gt; 0 &amp;amp;&amp;amp; week &amp;lt; 54)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="types"&gt;DateTime&lt;/span&gt; FirstDayOfyear = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, 1, 1);&lt;br /&gt;                    &lt;span class="kwrd"&gt;int&lt;/span&gt; daysToFirstCorrectDay = (((&lt;span class="kwrd"&gt;int&lt;/span&gt;)dayofweek - (&lt;span class="kwrd"&gt;int&lt;/span&gt;)FirstDayOfyear.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;) + 7) % 7;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; FirstDayOfyear.AddDays(7 * (week - 1) + daysToFirstCorrectDay);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Sub(&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; s, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; e)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; ((s - e) &amp;gt; 0) &lt;span class="kwrd"&gt;return&lt;/span&gt; (s - e) - 7;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; ((s - e) == 0) &lt;span class="kwrd"&gt;return&lt;/span&gt; -7;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (s - e);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns first next occurence of specified DayOfTheWeek&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="day"&amp;gt;&lt;span class="rem"&gt;A DayOfWeek to find the next occurence of&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the enum value represented by the day.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; Next(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; day)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.AddDays(Sub(obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;, day) * -1);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns next "first" occurence of specified DayOfTheWeek&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="day"&amp;gt;&lt;span class="rem"&gt;A DayOfWeek to find the previous occurence of&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the enum value represented by the day.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; Previous(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DayOfWeek&lt;/span&gt; day)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.AddDays(Sub(day, obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt;));&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetDateWithChecks(&lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; year, &lt;span class="kwrd"&gt;int&lt;/span&gt; month, &lt;span class="kwrd"&gt;int&lt;/span&gt; day, &lt;span class="kwrd"&gt;int&lt;/span&gt;? hour, &lt;span class="kwrd"&gt;int&lt;/span&gt;? minute, &lt;span class="kwrd"&gt;int&lt;/span&gt;? second, &lt;span class="kwrd"&gt;int&lt;/span&gt;? millisecond)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;DateTime&lt;/span&gt; StartDate;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (year == 0)&lt;br /&gt;                    StartDate = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(obj.Year, 1, 1, 0, 0, 0, 0);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="types"&gt;DateTime&lt;/span&gt;.MaxValue.Year &amp;lt; year)&lt;br /&gt;                        StartDate = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(&lt;span class="types"&gt;DateTime&lt;/span&gt;.MinValue.Year, 1, 1, 0, 0, 0, 0);&lt;br /&gt;                    &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="types"&gt;DateTime&lt;/span&gt;.MinValue.Year &amp;gt; year)&lt;br /&gt;                        StartDate = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(&lt;span class="types"&gt;DateTime&lt;/span&gt;.MaxValue.Year, 1, 1, 0, 0, 0, 0);&lt;br /&gt;                    &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                        StartDate = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(year, 1, 1, 0, 0, 0, 0);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (month == 0)&lt;br /&gt;                    StartDate = StartDate.AddMonths(obj.Month - 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddMonths(month - 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (day == 0)&lt;br /&gt;                    StartDate = StartDate.AddDays(obj.&lt;span class="types"&gt;Day&lt;/span&gt; - 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddDays(day - 1);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!hour.HasValue)&lt;br /&gt;                    StartDate = StartDate.AddHours(obj.Hour);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddHours(hour.Value);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!minute.HasValue)&lt;br /&gt;                    StartDate = StartDate.AddMinutes(obj.Minute);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddMinutes(minute.Value);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!second.HasValue)&lt;br /&gt;                    StartDate = StartDate.AddSeconds(obj.Second);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddSeconds(second.Value);&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!millisecond.HasValue)&lt;br /&gt;                    StartDate = StartDate.AddMilliseconds(obj.Millisecond);&lt;br /&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;                    StartDate = StartDate.AddMilliseconds(millisecond.Value);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; StartDate;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the original DateTime with Hour part changed to supplied hour parameter&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="hour"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional hours. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetTime(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; hour)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, 0, 0, 0, hour, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the original DateTime with Hour and Minute parts changed to supplied hour and minute parameters&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="hour"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional hours. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="minute"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional minutes. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetTime(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; hour, &lt;span class="kwrd"&gt;int&lt;/span&gt; minute)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, 0, 0, 0, hour, minute, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the original DateTime with Hour, Minute and Second parts changed to supplied hour, minute and second parameters&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="hour"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional hours. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="minute"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional minutes. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="second"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional seconds. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetTime(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; hour, &lt;span class="kwrd"&gt;int&lt;/span&gt; minute, &lt;span class="kwrd"&gt;int&lt;/span&gt; second)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, 0, 0, 0, hour, minute, second, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns the original DateTime with Hour, Minute, Second and Millisecond parts changed to supplied hour, minute, second and millisecond parameters&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="hour"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional hours. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="minute"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional minutes. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="second"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional seconds. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="millisecond"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional milliseconds. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetTime(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; hour, &lt;span class="kwrd"&gt;int&lt;/span&gt; minute, &lt;span class="kwrd"&gt;int&lt;/span&gt; second, &lt;span class="kwrd"&gt;int&lt;/span&gt; millisecond)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, 0, 0, 0, hour, minute, second, millisecond);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns DateTime with changed Year part&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="year"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional years. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetDate(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; year)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, year, 0, 0, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns DateTime with changed Year and Month part&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="year"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional years. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="month"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional month. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetDate(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; year, &lt;span class="kwrd"&gt;int&lt;/span&gt; month)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, year, month, 0, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns DateTime with changed Year, Month and Day part&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="year"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional years. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="month"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional month. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="day"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional day. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the numbers represented by the parameters.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; SetDate(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; year, &lt;span class="kwrd"&gt;int&lt;/span&gt; month, &lt;span class="kwrd"&gt;int&lt;/span&gt; day)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; SetDateWithChecks(obj, year, month, day, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Adds the specified number of financials days to the value of this instance.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="days"&amp;gt;&lt;span class="rem"&gt;A number of whole and fractional financial days. The value parameter can be negative or positive.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;A DateTime whose value is the sum of the date and time represented by this instance and the number of financial days represented by days.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; AddFinancialDays(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="kwrd"&gt;int&lt;/span&gt; days)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; addint = &lt;span class="types"&gt;Math&lt;/span&gt;.Sign(days);&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; (&lt;span class="types"&gt;Math&lt;/span&gt;.Sign(days) * days); i++)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;do&lt;/span&gt; { obj = obj.AddDays(addint); }&lt;br /&gt;                    &lt;span class="kwrd"&gt;while&lt;/span&gt; (obj.IsWeekend());&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Calculate Financial days between two dates.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="otherdate"&amp;gt;&lt;span class="rem"&gt;End or start date to calculate to or from.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Amount of financial days between the two dates&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CountFinancialDays(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DateTime&lt;/span&gt; otherdate)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="types"&gt;TimeSpan&lt;/span&gt; ts = (otherdate - obj);&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; addint = &lt;span class="types"&gt;Math&lt;/span&gt;.Sign(ts.Days);&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; unsigneddays = (&lt;span class="types"&gt;Math&lt;/span&gt;.Sign(ts.Days) * ts.Days);&lt;br /&gt;                &lt;span class="kwrd"&gt;int&lt;/span&gt; businessdays = 0;&lt;br /&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; unsigneddays; i++)&lt;br /&gt;                {&lt;br /&gt;                    obj = obj.AddDays(addint);&lt;br /&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (!obj.IsWeekend())&lt;br /&gt;                        businessdays++;&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; businessdays;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Converts any datetime to the amount of seconds from 1972.01.01 00:00:00&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Microsoft sometimes uses the amount of seconds from 1972.01.01 00:00:00 to indicate an datetime.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Total seconds past since 1972.01.01 00:00:00&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt; ToMicrosoftNumber(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (obj - &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt;(1972, 1, 1, 0, 0, 0, 0)).TotalSeconds;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns true if the day is Saturday or Sunday&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;boolean value indicating if the date is a weekend&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsWeekend(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; == &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Saturday || obj.&lt;span class="types"&gt;DayOfWeek&lt;/span&gt; == &lt;span class="types"&gt;DayOfWeek&lt;/span&gt;.Sunday);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Returns true if the date is between or equal to one of the two values.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="startvalue"&amp;gt;&lt;span class="rem"&gt;Start date to check for&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="endvalue"&amp;gt;&lt;span class="rem"&gt;End date to check for&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;boolean value indicating if the date is between or equal to one of the two values&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; Between(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj, &lt;span class="types"&gt;DateTime&lt;/span&gt; startDate, &lt;span class="types"&gt;DateTime&lt;/span&gt; endDate)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; obj.&lt;span class="types"&gt;Ticks&lt;/span&gt;.Between(startDate.&lt;span class="types"&gt;Ticks&lt;/span&gt;, endDate.&lt;span class="types"&gt;Ticks&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &lt;/span&gt;&lt;span class="rem"&gt;Get the quarter that the datetime is in.&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;param name="obj"&amp;gt;&lt;span class="rem"&gt;DateTime Base, from where the calculation will be preformed.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;Returns 1 to 4 that represenst the quarter that the datetime is in.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Quarter(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="types"&gt;DateTime&lt;/span&gt; obj)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; ((obj.Month - 1) / 3) + 1;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-2789956206645672100?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/2789956206645672100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/datetime-extensions.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/2789956206645672100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/2789956206645672100'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/datetime-extensions.html' title='DateTime Extensions'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-7785744538192610577</id><published>2010-03-10T11:23:00.001+01:00</published><updated>2010-03-11T10:25:47.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='CodeContract'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Regarding CodeContract in Framework 4.0 RC</title><content type='html'>In the new version of Framework 4.0, we will get something new called CodeContract.&lt;br /&gt;Heres my view of it:&lt;br /&gt;&lt;br /&gt;As Microsoft pointet out a long time ago, its not benificial to make Exception part of your code rutine, the "exception" should only be used in very few examples, where there are no other way out. My best pratice to code regarding Exception is: if you can program your way out of the error "lets say a zero divider." then do it, dont throw an exception on that, and have your code engine spind down. &lt;br /&gt;So why the CodeContract, it will throw and exception when the requirement is not meet.&lt;br /&gt;&lt;br /&gt;I say CodeContract is not best pratice. but i could be wrong here. ;)&lt;br /&gt;&lt;br /&gt;So please, if you know of why I should use it, enlighten me ;o) thanks guys.&lt;br /&gt;&lt;br /&gt;If you dont know anything about CodeContracts, you can read more here: &lt;br /&gt;&lt;a href="http://research.microsoft.com/en-us/downloads/4ed7dd5f-490b-489e-8ca8-109324279968/default.aspx"&gt;http://research.microsoft.com/en-us/downloads/4ed7dd5f-490b-489e-8ca8-109324279968/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/dd491992.aspx"&gt;http://msdn.microsoft.com/en-us/dd491992.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-7785744538192610577?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/7785744538192610577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/regarding-codecontract-in-framework-40.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/7785744538192610577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/7785744538192610577'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/regarding-codecontract-in-framework-40.html' title='Regarding CodeContract in Framework 4.0 RC'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-6159850330683683418</id><published>2010-03-05T21:44:00.013+01:00</published><updated>2010-03-11T10:28:34.510+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='Generic'/><category scheme='http://www.blogger.com/atom/ns#' term='Implementation'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='CancelEventHandler'/><category scheme='http://www.blogger.com/atom/ns#' term='CancelEventArgs'/><title type='text'>The missing Generic CancelEventHandler&lt;T&gt; Delegate in the BCL</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;How to make an Generic implementation of an cancel event handler&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Represents the method that handles a cancelable event.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="TCancelEventArgs"&amp;gt;&lt;span class="rem"&gt;The type specifier for the event.&lt;/span&gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;param name="sender"&amp;gt;&lt;span class="rem"&gt;The source of the event.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;param name="e"&amp;gt;&lt;span class="rem"&gt;A CancelChangingEventArg&amp;amp;lt;T&amp;amp;gt; that contains the event data.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;    [&lt;span class="types"&gt;Serializable&lt;/span&gt;]&lt;br /&gt;    [System.Security.Permissions.&lt;span class="types"&gt;HostProtection&lt;/span&gt;(System.Security.Permissions.&lt;span class="types"&gt;SecurityAction&lt;/span&gt;.LinkDemand, SharedState = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; &lt;span class="types"&gt;CancelEventHandler&lt;/span&gt;&amp;lt;TCancelEventArgs&amp;gt;(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, TCancelEventArgs e) &lt;span class="kwrd"&gt;where&lt;/span&gt; TCancelEventArgs : System.ComponentModel.&lt;span class="types"&gt;CancelEventArgs&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Provides data for a cancelable changing event.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="xmldoc"&gt;/// &amp;lt;typeparam name="T"&amp;gt;&lt;span class="rem"&gt;The type of the property that is changing.&lt;/span&gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; &lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;T&amp;gt; : System.ComponentModel.&lt;span class="types"&gt;CancelEventArgs&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; T cv = &lt;span class="kwrd"&gt;default&lt;/span&gt;(T);&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Gets the current value of a property as reported by a changing event.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;The generic value. In a practical implementation of the CancelChangingEventArg&amp;lt;T&amp;gt;, the generic type of this property is replaced with the constrained type of the implementation.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        [&lt;span class="types"&gt;Description&lt;/span&gt;(&lt;span class="str"&gt;"Current value of a property"&lt;/span&gt;)]&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; T CurrentValue&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;get&lt;/span&gt; { &lt;span class="kwrd"&gt;return&lt;/span&gt; cv; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; T nv = &lt;span class="kwrd"&gt;default&lt;/span&gt;(T);&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Gets the new value of a property as reported by a changing event.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;returns&amp;gt;&lt;span class="rem"&gt;The generic value. In a practical implementation of the CancelChangingEventArg&amp;lt;T&amp;gt;, the generic type of this property is replaced with the constrained type of the implementation.&lt;/span&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        [&lt;span class="types"&gt;Description&lt;/span&gt;(&lt;span class="str"&gt;"New value of a property"&lt;/span&gt;)]&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; T NewValue&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;get&lt;/span&gt; { &lt;span class="kwrd"&gt;return&lt;/span&gt; nv; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Initializes a new instance of the CancelChangingEventArg&amp;lt;T&amp;gt; class, with provided old and new values and the CancelChangingEventArg.Cancel property set to false.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="oldValue"&amp;gt;&lt;span class="rem"&gt;Current value of the property at the time of the event.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="newValue"&amp;gt;&lt;span class="rem"&gt;New value of the property.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; CancelChangingEventArg(T currentValue, T newValue)&lt;br /&gt;            : &lt;span class="kwrd"&gt;base&lt;/span&gt;()&lt;br /&gt;        {&lt;br /&gt;            cv = currentValue;&lt;br /&gt;            nv = newValue;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &lt;span class="rem"&gt;Initializes a new instance of the CancelChangingEventArg&amp;lt;T&amp;gt; class, with provided old and new values and the CancelChangingEventArg.Cancel property set to the given value.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="oldValue"&amp;gt;&lt;span class="rem"&gt;Current value of the property at the time of the event.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="newValue"&amp;gt;&lt;span class="rem"&gt;New value of the property.&amp;lt;/param&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="xmldoc"&gt;/// &amp;lt;param name="cancel"&amp;gt;&lt;span class="rem"&gt;true to cancel the event; otherwise, false.&lt;/span&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; CancelChangingEventArg(T currentValue, T newValue, &lt;span class="kwrd"&gt;bool&lt;/span&gt; cancel)&lt;br /&gt;            : &lt;span class="kwrd"&gt;base&lt;/span&gt;(cancel)&lt;br /&gt;        {&lt;br /&gt;            cv = currentValue;&lt;br /&gt;            nv = newValue;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;span class="rem"&gt;//Using the code:&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; &lt;span class="types"&gt;MyClass&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; &lt;span class="types"&gt;CancelEventHandler&lt;/span&gt;&amp;lt;&lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt;&amp;gt; SomePropertyChanging;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _SomeProperty;    &lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; SomeProperty    &lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;get&lt;/span&gt; { &lt;span class="kwrd"&gt;return&lt;/span&gt; _SomeProperty; }&lt;br /&gt;        &lt;span class="kwrd"&gt;set&lt;/span&gt; { SetProperty(&lt;span class="kwrd"&gt;ref&lt;/span&gt; _SomeProperty, &lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;); }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetProperty(&lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; property, &lt;span class="kwrd"&gt;ref&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;)    &lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (SomePropertyChanging != &lt;span class="kwrd"&gt;null&lt;/span&gt;)        &lt;br /&gt;        {&lt;br /&gt;            &lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt; ResponseArg = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt;(property,&lt;span class="kwrd"&gt;value&lt;/span&gt;);&lt;br /&gt;            SomePropertyChanging(&lt;span class="kwrd"&gt;this&lt;/span&gt;, ResponseArg);&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!ResponseArg.Cancel)&lt;br /&gt;                property = &lt;span class="kwrd"&gt;value&lt;/span&gt;;        &lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            property = &lt;span class="kwrd"&gt;value&lt;/span&gt;;    &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; MyClass()    &lt;br /&gt;    {&lt;br /&gt;        _SomeProperty = 10;    &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; &lt;span class="types"&gt;MyProgram&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span class="types"&gt;MyClass&lt;/span&gt; myc = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;MyClass&lt;/span&gt;();&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; MyProgram()    &lt;br /&gt;    {&lt;br /&gt;        myc.SomePropertyChanging += &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="types"&gt;CancelEventHandler&lt;/span&gt;&amp;lt;&lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt;&amp;gt;(myc_SomePropertyChanging);&lt;br /&gt;        myc.SomeProperty = 9; &lt;span class="rem"&gt;//this will be canceled.&lt;/span&gt;&lt;br /&gt;        myc.SomeProperty = 11; &lt;span class="rem"&gt;//this will be accepted, and the value of the SomeProperty is now 11.    &lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; myc_SomePropertyChanging(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, &lt;span class="types"&gt;CancelChangingEventArg&lt;/span&gt;&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt; e)    &lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;//here we say if the new value is smaller than the one already in, then cancel the operation.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;//else set the value.&lt;/span&gt;&lt;br /&gt;        e.Cancel = (e.CurrentValue &amp;gt; e.NewValue);    &lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-6159850330683683418?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/6159850330683683418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/missing-generic-canceleventhandler.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/6159850330683683418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/6159850330683683418'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/missing-generic-canceleventhandler.html' title='The missing Generic CancelEventHandler&amp;lt;T&amp;gt; Delegate in the BCL'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-4656645533071839757</id><published>2010-03-01T21:58:00.001+01:00</published><updated>2010-03-11T10:29:51.195+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Codename'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Dallas'/><title type='text'>Microsoft Codename "Dallas"</title><content type='html'>&lt;img border="0" kt="true" src="http://4.bp.blogspot.com/_w-O3WDPvt30/S5QTmHURJhI/AAAAAAAAAA4/mSchlckL0GA/s320/dallas.png" /&gt;&lt;br /&gt;So i just joined "Dallas" lets see what they come up with. If i find something cool ill let you know. ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-4656645533071839757?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/4656645533071839757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/microsoft-codename-dallas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/4656645533071839757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/4656645533071839757'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/microsoft-codename-dallas.html' title='Microsoft Codename &quot;Dallas&quot;'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w-O3WDPvt30/S5QTmHURJhI/AAAAAAAAAA4/mSchlckL0GA/s72-c/dallas.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-3642334100191928185</id><published>2010-01-08T21:30:00.001+01:00</published><updated>2010-03-11T10:41:41.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodeProject.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Link'/><title type='text'>My collection of post on CodeProject.com</title><content type='html'>&lt;img border="0" kt="true" src="http://4.bp.blogspot.com/_w-O3WDPvt30/S5VeNIFYdOI/AAAAAAAAABA/og56w9qrkcI/s320/codeproject.gif" /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/dialog/MDIChildDialog.aspx" target="_blank"&gt;MDI child as dialog form (MDI modal workaround)&lt;/a&gt;&lt;br /&gt;Ever had the need to block all other forms and controls when a specific form is shown as a dialog? This is a very simple workaround, for an MDI modal form.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/edit/LinkedTextBox.aspx" target="_blank"&gt;Linked TextBox&lt;/a&gt;&lt;br /&gt;How to make the textbox act as a hyperlink when the Control key is pressed.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/list/ListViewGroupCollapsible.aspx" target="_blank"&gt;Collapsible ListViewGroup&lt;/a&gt;&lt;br /&gt;Make ListView Groups Collapsible&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/list/ListViewGroupSorter.aspx" target="_blank"&gt;ListView Group Sorter&lt;/a&gt;&lt;br /&gt;An easy to use ListView group sorter (very simple).&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/cs/DNSBL_Lookup.aspx" target="_blank"&gt;DNSBL Lookup Class&lt;/a&gt;&lt;br /&gt;A class for looking up IP addresses against DNS black list server (Anti Spam List Servers)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/recipes/ExpandableHexConverter.aspx" target="_blank"&gt;Base N converter (N = 10-62)&lt;/a&gt;&lt;br /&gt;Can convert from Base 10 to Base 62.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/datetime/Seagate_Date_Code.aspx" target="_blank"&gt;Seagate Date Code Calculator&lt;/a&gt;&lt;br /&gt;How to get the date 20 November 2005 from the number 06212.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/threads/SynchronizingObject.aspx" target="_blank"&gt;Create a Synchronizing Object&lt;/a&gt;&lt;br /&gt;How to create a synchronizing object using the ISynchronizeInvoke interface like in the FileSystemWatcher.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/codegen/SQL2Classes.aspx" target="_blank"&gt;SQL Class Shell Generator&lt;/a&gt;&lt;br /&gt;Generate class shells from SQL Server database tables, (SQL 2005 &amp;amp; 2008 only). Output languages supported: C# and VB.NET.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-3642334100191928185?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/3642334100191928185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/my-collection-of-post-on-codeprojectcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/3642334100191928185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/3642334100191928185'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/my-collection-of-post-on-codeprojectcom.html' title='My collection of post on CodeProject.com'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w-O3WDPvt30/S5VeNIFYdOI/AAAAAAAAABA/og56w9qrkcI/s72-c/codeproject.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-4571496243664599939</id><published>2009-12-21T00:29:00.001+01:00</published><updated>2010-03-11T10:41:03.470+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodeProject.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Link'/><category scheme='http://www.blogger.com/atom/ns#' term='ListViewGroup'/><category scheme='http://www.blogger.com/atom/ns#' term='Collaps'/><title type='text'>Collapsible ListViewGroup</title><content type='html'>Making the ListViewGroup Collaps is not that hard. I've made an simple article on CodeProject.com. check it out &lt;a href="http://www.codeproject.com/KB/list/ListViewGroupCollapsible.aspx" target="_blank"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-4571496243664599939?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeproject.com/KB/list/ListViewGroupCollapsible.aspx' title='Collapsible ListViewGroup'/><link rel='enclosure' type='' href='http://www.codeproject.com/KB/list/ListViewGroupCollapsible.aspx' length='0'/><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/4571496243664599939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/collapsible-listviewgroup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/4571496243664599939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/4571496243664599939'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/collapsible-listviewgroup.html' title='Collapsible ListViewGroup'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-3095766235746431346</id><published>2009-12-09T22:24:00.009+01:00</published><updated>2010-03-11T10:32:22.526+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unmanaged types'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework 4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='JScript'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='CLR'/><category scheme='http://www.blogger.com/atom/ns#' term='Managed types'/><category scheme='http://www.blogger.com/atom/ns#' term='Pinvoke'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Datatype'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>CLR Datatype Mapping tables</title><content type='html'>&lt;span style="font-size: large;"&gt;SQL CLR Data type mapping&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th class="theader"&gt;SQL Server data type&lt;/th&gt;&lt;th class="theader"&gt;CLR data type (SQL Server)&lt;/th&gt;&lt;th class="theader"&gt;CLR data type (.NET Framework)&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;bigint&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlInt64&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Int64, Nullable&amp;lt;Int64&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;binary&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlBytes, SqlBinary&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte[]&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;bit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlBoolean&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Boolean, Nullable&amp;lt;Boolean&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;cursor&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDateTime&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;DateTime, Nullable&amp;lt;DateTime&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;datetime&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDateTime&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;DateTime, Nullable&amp;lt;DateTime&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;datetime2&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDateTime&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;DateTime, Nullable&amp;lt;DateTime&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;DATETIMEOFFSET&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;DateTimeOffset, Nullable&amp;lt;DateTimeOffset&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDecimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal, Nullable&amp;lt;Decimal&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDouble&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Double, Nullable&amp;lt;Double&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;geography&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlGeography&lt;/b&gt;&lt;br /&gt;&lt;sub&gt;defined in Microsoft.SqlServer.Types.dll Download here:&lt;a href="http://go.microsoft.com/fwlink/?LinkId=131220"&gt;feature pack&lt;/a&gt;.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;geometry&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlGeometry&lt;/b&gt;&lt;br /&gt;&lt;sub&gt;defined in Microsoft.SqlServer.Types.dll Download here: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=131220"&gt;feature pack&lt;/a&gt;.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;hierarchyid&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlHierarchyId&lt;/b&gt;&lt;br /&gt;&lt;sub&gt;defined in Microsoft.SqlServer.Types.dll Download here: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=131220"&gt;feature pack&lt;/a&gt;.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;image&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlInt32&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Int32, Nullable&amp;lt;Int32&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;money&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlMoney&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal, Nullable&amp;lt;Decimal&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;nchar&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlChars, SqlString&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;String, Char[]&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;ntext&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;numeric&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlDecimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal, Nullable&amp;lt;Decimal&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;nvarchar&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlChars, SqlString&lt;/b&gt;&lt;br /&gt;&lt;sub&gt;&lt;b&gt;SQLChars&lt;/b&gt; is a better match for&lt;br /&gt;data transfer and access, and&lt;br /&gt;&lt;b&gt;SQLString&lt;/b&gt; is a better match for&lt;br /&gt;performing String operations.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;String, Char[]&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;nvarchar(1), nchar(1)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlChars, SqlString&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Char, String, Char[], Nullable&amp;lt;char&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;real&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlSingle&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Single, Nullable&amp;lt;Single&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;rowversion&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte[]&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;smallint&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlInt16&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Int16, Nullable&amp;lt;Int16&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;smallmoney&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlMoney&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal, Nullable&amp;lt;Decimal&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;sql_variant&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Object&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;table&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;text&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;TimeSpan&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;TimeSpan, Nullable&amp;lt;TimeSpan&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;timestamp&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;tinyint&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlByte&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte, Nullable&amp;lt;Byte&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;uniqueidentifier&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlGuid&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Guid, Nullable&amp;lt;Guid&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;User-defined type(UDT)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;The same class that is bound&lt;br /&gt;to the user-defined type in&lt;br /&gt;the same assembly or a&lt;br /&gt;dependent assembly.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;varbinary &lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlBytes, SqlBinary&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte[]&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;varbinary(1), binary(1)&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlBytes, SqlBinary&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;byte, Byte[], Nullable&amp;lt;byte&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;xml&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SqlXml&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/ms131092.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms131092.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_w-O3WDPvt30/S5VsSf-P7nI/AAAAAAAAABI/l7TvdBB6Jis/s320/SqlClrMapping1.gif" target="_blank"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/_w-O3WDPvt30/S5VsSf-P7nI/AAAAAAAAABI/l7TvdBB6Jis/s640/SqlClrMapping1.gif" width="532" /&gt;&lt;/a&gt;&lt;br /&gt;Image Source: &lt;a href="http://msdn.microsoft.com/en-us/library/bb386947.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/bb386947.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Platform Invoke Data Types&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th&gt;Unmanaged type in Wtypes.h &lt;/th&gt;&lt;th&gt;Unmanaged C language type&lt;/th&gt;&lt;th&gt;Managed class name&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;HANDLE&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;void*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.intptr(VS.71).aspx" target="_blank"&gt;System.IntPtr&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;BYTE&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.byte(VS.71).aspx" target="_blank"&gt;System.Byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;8 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SHORT&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int16(VS.71).aspx" target="_blank"&gt;System.Int16&lt;/a&gt;&lt;/td&gt;&lt;td&gt;16 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;WORD&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint16(VS.71).aspx" target="_blank"&gt;System.UInt16&lt;/a&gt;&lt;/td&gt;&lt;td&gt;16 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;INT&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int32(VS.71).aspx" target="_blank"&gt;System.Int32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;UINT&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned int&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint32(VS.71).aspx" target="_blank"&gt;System.UInt32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LONG&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int32(VS.71).aspx" target="_blank"&gt;System.Int32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;BOOL&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.sbyte(VS.71).aspx" target="_blank"&gt;System.Int32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;DWORD&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint32(VS.71).aspx" target="_blank"&gt;System.UInt32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;ULONG&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint32(VS.71).aspx" target="_blank"&gt;System.UInt32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;CHAR&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.char(VS.71).aspx" target="_blank"&gt;System.Char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Decorate with ANSI.&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;LPSTR&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;char*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string(VS.71).aspx" target="_blank"&gt;System.String&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(VS.71).aspx" target="_blank"&gt;System.StringBuilder&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Decorate with ANSI.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LPCSTR&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Const char*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string(VS.71).aspx" target="_blank"&gt;System.String&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(VS.71).aspx" target="_blank"&gt;System.StringBuilder&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Decorate with ANSI.&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;LPWSTR&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;wchar_t*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string(VS.71).aspx" target="_blank"&gt;System.String&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(VS.71).aspx" target="_blank"&gt;System.StringBuilder&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Decorate with Unicode.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LPCWSTR&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Const wchar_t*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string(VS.71).aspx" target="_blank"&gt;System.String&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder(VS.71).aspx" target="_blank"&gt;System.StringBuilder&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Decorate with Unicode.&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;b&gt;FLOAT&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Float&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.single(VS.71).aspx" target="_blank"&gt;System.Single&lt;/a&gt;&lt;/td&gt;&lt;td&gt;32 bits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;DOUBLE&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Double&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.double(VS.71).aspx" target="_blank"&gt;System.Double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;64 bits&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/aa720411(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa720411(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Multiple Data Types Mapping Table&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Class name&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Visual Basic data type&lt;/th&gt;&lt;th&gt;C# data type&lt;/th&gt;&lt;th&gt;Managed Extensions for C++ data type&lt;/th&gt;&lt;th&gt;JScript data type&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Integer&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.byte(VS.71).aspx"&gt;Byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;An 8-bit unsigned integer.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Byte&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.sbyte(VS.71).aspx"&gt;SByte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;An 8-bit signed integer.&lt;sub class="txtgrayed"&gt;Not CLS-compliant.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SByte&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;signed char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;SByte&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int16(VS.71).aspx"&gt;Int16&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 16-bit signed integer.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int32(VS.71).aspx"&gt;Int32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 32-bit signed integer.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Integer&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt; -or- &lt;b&gt;long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.int64(VS.71).aspx"&gt;Int64&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 64-bit signed integer.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;__int64&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint16(VS.71).aspx"&gt;UInt16&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 16-bit unsigned integer.&lt;sub class="txtgrayed"&gt;Not CLS-compliant.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt16&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;ushort&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned short&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt16&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint32(VS.71).aspx"&gt;UInt32&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 32-bit unsigned integer.&lt;sub class="txtgrayed"&gt;Not CLS-compliant.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt32&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned int&lt;/b&gt; -or- &lt;b&gt;unsigned long&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt32&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uint64(VS.71).aspx"&gt;UInt64&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 64-bit unsigned integer.&lt;sub class="txtgrayed"&gt;Not CLS-compliant.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt64&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;unsigned __int64&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UInt64&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Floating point&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.single(VS.71).aspx"&gt;Single&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A single-precision (32-bit) floating-point number.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Single&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.double(VS.71).aspx"&gt;Double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A double-precision (64-bit) floating-point number.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Double&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;double&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;double&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;double&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logical&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.boolean(VS.71).aspx"&gt;Boolean&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A Boolean value (true or false).&lt;/td&gt;&lt;td&gt;&lt;b&gt;Boolean&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;bool&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;bool&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;bool&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.char(VS.71).aspx"&gt;Char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A Unicode (16-bit) character.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;wchar_t&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.decimal(VS.71).aspx"&gt;Decimal&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A 96-bit decimal value.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.intptr(VS.71).aspx"&gt;IntPtr&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A signed integer whose size&lt;br /&gt;depends on the underlying platform&lt;br /&gt;(a 32-bit value on a 32-bit platform&lt;br /&gt;and a 64-bit value on a 64-bit platform).&lt;/td&gt;&lt;td&gt;&lt;b&gt;IntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;IntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;IntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;IntPtr&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.uintptr(VS.71).aspx"&gt;UIntPtr&lt;/a&gt;&lt;/td&gt;&lt;td&gt;An unsigned integer whose size&lt;br /&gt;depends on the underlying platform&lt;br /&gt;(a 32- bit value on a 32-bit platform&lt;br /&gt;and a 64-bit value on a 64-bit platform).&lt;sub class="txtgrayed"&gt;Not CLS-compliant.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UIntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UIntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UIntPtr&lt;/b&gt; &lt;sub class="txtgrayed"&gt;No built-in type.&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;UIntPtr&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;Class objects&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.object(VS.71).aspx"&gt;Object&lt;/a&gt;&lt;/td&gt;&lt;td&gt;The root of the object hierarchy.&lt;/td&gt;&lt;td&gt;&lt;b&gt;Object&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;object&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Object*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Object&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.string(VS.71).aspx"&gt;String&lt;/a&gt;&lt;/td&gt;&lt;td&gt;An immutable, fixed-length string of Unicode characters.&lt;/td&gt;&lt;td&gt;&lt;b&gt;String&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;string&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;String*&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;String&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/aa720713(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa720713(VS.71).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-3095766235746431346?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/3095766235746431346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/clr-datatype-mapping-tables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/3095766235746431346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/3095766235746431346'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/clr-datatype-mapping-tables.html' title='CLR Datatype Mapping tables'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w-O3WDPvt30/S5VsSf-P7nI/AAAAAAAAABI/l7TvdBB6Jis/s72-c/SqlClrMapping1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-5062862248842958578</id><published>2009-12-08T00:55:00.004+01:00</published><updated>2010-03-11T10:36:53.395+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Managed types'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>CLR Data Types and more</title><content type='html'>&lt;span style="font-size: large;"&gt;Built-in Types Table&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;C# Type&lt;/th&gt;&lt;th width="700"&gt;.NET Framework type&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx" target="_blank"&gt;bool&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Boolean&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx" target="_blank"&gt;byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Byte&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d86he86x(VS.71).aspx" target="_blank"&gt;sbyte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.SByte&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x9h8tsay(VS.71).aspx" target="_blank"&gt;char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/364x0z75(VS.71).aspx" target="_blank"&gt;decimal&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/678hzkk9(VS.71).aspx" target="_blank"&gt;double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Double&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx" target="_blank"&gt;float&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Single&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5kzh1b5w(VS.71).aspx" target="_blank"&gt;int&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Int32&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x0sksh43(VS.71).aspx" target="_blank"&gt;uint&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.UInt32&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ctetwysk(VS.71).aspx" target="_blank"&gt;long&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Int64&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t98873t4(VS.71).aspx" target="_blank"&gt;ulong&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.UInt64&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/9kkx3h3c(VS.71).aspx" target="_blank"&gt;object&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Object&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ybs77ex4(VS.71).aspx" target="_blank"&gt;short&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.Int16&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cbf1574z(VS.71).aspx" target="_blank"&gt;ushort&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.UInt16&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx" target="_blank"&gt;string&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;System.String&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/aa287910(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa287910(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Range and Size&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;Type&lt;/th&gt;&lt;th width="500"&gt;Range&lt;/th&gt;&lt;th width="200"&gt;Size&lt;/th&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx" target="_blank"&gt;bool&lt;/a&gt;&lt;/td&gt;&lt;td&gt;true or false (1 or 0)&lt;/td&gt;&lt;td&gt;1 bit&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d86he86x(VS.71).aspx" target="_blank"&gt;sbyte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;-128 to 127&lt;/td&gt;&lt;td&gt;Signed 8-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx" target="_blank"&gt;byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0 to 255&lt;/td&gt;&lt;td&gt;Unsigned 8-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x9h8tsay(VS.71).aspx" target="_blank"&gt;char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;U+0000 to U+ffff&lt;/td&gt;&lt;td&gt;Unicode 16-bit character&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ybs77ex4(VS.71).aspx" target="_blank"&gt;short&lt;/a&gt;&lt;/td&gt;&lt;td&gt;-32,768 to 32,767&lt;/td&gt;&lt;td&gt;Signed 16-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cbf1574z(VS.71).aspx" target="_blank"&gt;ushort&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0 to 65,535&lt;/td&gt;&lt;td&gt;Unsigned 16-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5kzh1b5w(VS.71).aspx" target="_blank"&gt;int&lt;/a&gt;&lt;/td&gt;&lt;td&gt;-2,147,483,648 to 2,147,483,647&lt;/td&gt;&lt;td&gt;Signed 32-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x0sksh43(VS.71).aspx" target="_blank"&gt;uint&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0 to 4,294,967,295&lt;/td&gt;&lt;td&gt;Unsigned 32-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ctetwysk(VS.71).aspx" target="_blank"&gt;long&lt;/a&gt;&lt;/td&gt;&lt;td&gt;-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807&lt;/td&gt;&lt;td&gt;Signed 64-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t98873t4(VS.71).aspx" target="_blank"&gt;ulong&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0 to 18,446,744,073,709,551,615&lt;/td&gt;&lt;td&gt;Unsigned 64-bit integer&lt;/td&gt;&lt;/tr&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;Type&lt;/th&gt;&lt;th width="500"&gt;Approximate range&lt;/th&gt;&lt;th width="200"&gt;Precision&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx" target="_blank"&gt;float&lt;/a&gt;&lt;/td&gt;&lt;td&gt;±1.5 × 10−&lt;sup&gt;45&lt;/sup&gt; to ±3.4 × 10&lt;sup&gt;38&lt;/sup&gt;&lt;/td&gt;&lt;td&gt;7 digits&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/678hzkk9(VS.71).aspx" target="_blank"&gt;double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;±5.0 × 10−&lt;sup&gt;324&lt;/sup&gt; to ±1.7 × 10&lt;sup&gt;308&lt;/sup&gt;&lt;/td&gt;&lt;td&gt;15-16 digits&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/exx3b86w(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/exx3b86w(VS.71).aspx&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/9ahet949(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/9ahet949(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Default values&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;Value type&lt;/th&gt;&lt;th width="700"&gt;Default value&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx" target="_blank"&gt;bool&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;false&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx" target="_blank"&gt;byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x9h8tsay(VS.71).aspx" target="_blank"&gt;char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;'\0'&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/364x0z75(VS.71).aspx" target="_blank"&gt;decimal&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0.0M&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/678hzkk9(VS.71).aspx" target="_blank"&gt;double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0.0D&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/sbbt4032(VS.71).aspx" target="_blank"&gt;enum&lt;/a&gt;&lt;/td&gt;&lt;td&gt;The value produced by the expression (E)0, where E is the enum identifier.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx" target="_blank"&gt;float&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0.0F&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5kzh1b5w(VS.71).aspx" target="_blank"&gt;int&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ctetwysk(VS.71).aspx" target="_blank"&gt;long&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0L&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d86he86x(VS.71).aspx" target="_blank"&gt;sbyte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ybs77ex4(VS.71).aspx" target="_blank"&gt;short&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ah19swz4(VS.71).aspx" target="_blank"&gt;struct&lt;/a&gt;&lt;/td&gt;&lt;td&gt;The value produced by setting all value-type fields&lt;br /&gt;to their default values and all reference-type fields to &lt;b&gt;null&lt;/b&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x0sksh43(VS.71).aspx" target="_blank"&gt;uint&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t98873t4(VS.71).aspx" target="_blank"&gt;ulong&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cbf1574z(VS.71).aspx" target="_blank"&gt;ushort&lt;/a&gt;&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/83fhsxwc(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/83fhsxwc(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Implicit Numeric Conversions Table&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;From&lt;/th&gt;&lt;th width="700"&gt;To&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d86he86x(VS.71).aspx" target="_blank"&gt;sbyte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx" target="_blank"&gt;byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ybs77ex4(VS.71).aspx" target="_blank"&gt;short&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cbf1574z(VS.71).aspx" target="_blank"&gt;ushort&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5kzh1b5w(VS.71).aspx" target="_blank"&gt;int&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x0sksh43(VS.71).aspx" target="_blank"&gt;uint&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ctetwysk(VS.71).aspx" target="_blank"&gt;long&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x9h8tsay(VS.71).aspx" target="_blank"&gt;char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx" target="_blank"&gt;float&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;double&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t98873t4(VS.71).aspx" target="_blank"&gt;ulong&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;float&lt;/b&gt;, &lt;b&gt;double&lt;/b&gt;, or&lt;b&gt; decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/y5b434w4(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/y5b434w4(VS.71).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Explicit Numeric Conversions Table&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr class="theader"&gt;&lt;th width="100"&gt;From&lt;/th&gt;&lt;th width="700"&gt;To&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d86he86x(VS.71).aspx" target="_blank"&gt;sbyte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5bdb6693(VS.71).aspx" target="_blank"&gt;byte&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt; or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ybs77ex4(VS.71).aspx" target="_blank"&gt;short&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cbf1574z(VS.71).aspx" target="_blank"&gt;ushort&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/5kzh1b5w(VS.71).aspx" target="_blank"&gt;int&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x0sksh43(VS.71).aspx" target="_blank"&gt;uint&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ctetwysk(VS.71).aspx" target="_blank"&gt;long&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t98873t4(VS.71).aspx" target="_blank"&gt;ulong&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, or &lt;b&gt;char&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/x9h8tsay(VS.71).aspx" target="_blank"&gt;char&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, or &lt;b&gt;short&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx" target="_blank"&gt;float&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;char&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/678hzkk9(VS.71).aspx" target="_blank"&gt;double&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;char&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, or &lt;b&gt;decimal&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="rodd"&gt;&lt;td&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/364x0z75(VS.71).aspx" target="_blank"&gt;decimal&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;sbyte&lt;/b&gt;, &lt;b&gt;byte&lt;/b&gt;, &lt;b&gt;short&lt;/b&gt;, &lt;b&gt;ushort&lt;/b&gt;, &lt;b&gt;int&lt;/b&gt;, &lt;b&gt;uint&lt;/b&gt;, &lt;b&gt;long&lt;/b&gt;, &lt;b&gt;ulong&lt;/b&gt;, &lt;b&gt;char&lt;/b&gt;, &lt;b&gt;float&lt;/b&gt;, or &lt;b&gt;double&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Source: &lt;a href="http://msdn.microsoft.com/en-us/library/aa288039(VS.71).aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa288039(VS.71).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-5062862248842958578?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/5062862248842958578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/clr-data-types-and-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/5062862248842958578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/5062862248842958578'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2010/03/clr-data-types-and-more.html' title='CLR Data Types and more'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6797169534745713143.post-7988185297167399753</id><published>2009-03-09T01:45:00.004+01:00</published><updated>2010-03-11T10:39:12.876+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Private Modifier'/><category scheme='http://www.blogger.com/atom/ns#' term='Base'/><category scheme='http://www.blogger.com/atom/ns#' term='Protected Modifier'/><category scheme='http://www.blogger.com/atom/ns#' term='Access Modifiers'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Public Modifier'/><category scheme='http://www.blogger.com/atom/ns#' term='Internal Modifier'/><category scheme='http://www.blogger.com/atom/ns#' term='Protected Internal Modifier'/><category scheme='http://www.blogger.com/atom/ns#' term='Nested'/><category scheme='http://www.blogger.com/atom/ns#' term='Inherit'/><title type='text'>.Net Access Modifiers</title><content type='html'>To illustrate the access modifiers in dot Net, I've composed an small image.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_w-O3WDPvt30/S5Wbbkf_pUI/AAAAAAAAABY/tYrsjH_DqQ0/s1600-h/DotNetAccessModifiers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" kt="true" src="http://1.bp.blogspot.com/_w-O3WDPvt30/S5Wbbkf_pUI/AAAAAAAAABY/tYrsjH_DqQ0/s640/DotNetAccessModifiers.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope you can use it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6797169534745713143-7988185297167399753?l=pawjershauge.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawjershauge.blogspot.com/feeds/7988185297167399753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pawjershauge.blogspot.com/2009/03/net-access-modifiers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/7988185297167399753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6797169534745713143/posts/default/7988185297167399753'/><link rel='alternate' type='text/html' href='http://pawjershauge.blogspot.com/2009/03/net-access-modifiers.html' title='.Net Access Modifiers'/><author><name>Paw Jershauge</name><uri>http://www.blogger.com/profile/14597674415316934639</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_w-O3WDPvt30/TKSTZsZM_fI/AAAAAAAAACE/7HbYfIfwdxU/S220/48654_772058317_5283_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w-O3WDPvt30/S5Wbbkf_pUI/AAAAAAAAABY/tYrsjH_DqQ0/s72-c/DotNetAccessModifiers.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
