<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to operators-equals</title><link>https://sourceforge.net/p/asil/wiki/operators-equals/</link><description>Recent changes to operators-equals</description><atom:link href="https://sourceforge.net/p/asil/wiki/operators-equals/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 23 Feb 2014 12:57:58 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/asil/wiki/operators-equals/feed" rel="self" type="application/rss+xml"/><item><title>operators-equals modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/operators-equals/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,3 +1,9 @@
+As an assignment operator
+-------------------------
+In order for the **=** operator to work as the assignment operator, the only thing that can be to the left of it is the variable you're assigning a value to.  This can be its declaration or an existing instance.  The left operand must be an [l-value](Appendices-Terms-l-value).
+
+As a comparison operator
+------------------------
 This compares the two operands based on the rules below:

 1. If the operands are reference types, it returns &lt;code&gt;true&lt;/code&gt;&lt;code&gt; if the references are for the same object and &lt;/code&gt;&lt;code&gt;false&lt;/code&gt; otherwise.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Sun, 23 Feb 2014 12:57:58 -0000</pubDate><guid>https://sourceforge.net5dfec7ba866c52e19cc41a70bfb352758e1f4ab8</guid></item><item><title>operators-equals modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/operators-equals/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This compares the two operands based on the rules below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the operands are reference types, it returns &lt;code&gt;true&lt;/code&gt;&lt;code&gt; if the references are for the same object and &lt;/code&gt;&lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;li&gt;If the operands both implement IEquatable, it returns the return value from "&lt;code&gt;leftOperand.equals rightOperand&lt;/code&gt;".&lt;/li&gt;
&lt;li&gt;Otherwise, for primitive types only, it returns &lt;code&gt;true&lt;/code&gt; if the bits stored in both instances match and &lt;code&gt;false&lt;/code&gt; if they don't.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the type is a structure that doesn't implement IEquatable, it should fail to compile.  If you need to compare instances of a reference type, consider using IEquatable or IComparable.  If one operand is a reference type and the other is a by value type, the compiler will attempt to use IEquatable on the value type.  If that fails, it should fail to compile.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Sun, 23 Feb 2014 12:53:20 -0000</pubDate><guid>https://sourceforge.netfa368997bb5d58a0fe71d88d9fe12131918b74af</guid></item></channel></rss>