Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press

Buy directly from Paradoxal Press at $33.99 (Save 43%)



Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA


Listing 10-4 extracted from chapter The .NET 2 type system from a C#2 point of view


Listing 10-3<     > Listing 10-5


This listing can be compiled with the command line:
csc.exe /target:exe Example_10_4.cs
Errors: 0 Warnings: 0


Example_10_4.cs
using System.Diagnostics;
class  TypeRef { public int state; }
struct TypeVal { public int state; }
public class Program {
   public static void Main() {
      // Identity comparison.
      TypeRef ref1 = new TypeRef(); ref1.state = 3;
      TypeRef ref2 = new TypeRef(); ref2.state = 3;
      Debug.Assert( ref1 != ref2 );
      Debug.Assert( ! ref1.Equals( ref2 ) );
      Debug.Assert( ! object.ReferenceEquals( ref1, ref2 ));
      ref2 = ref1;
      Debug.Assert( ref1 == ref2 );
      Debug.Assert( ref1.Equals(ref2) );
      Debug.Assert( object.ReferenceEquals(ref1, ref2) );

      // Equivalence comparison.
      TypeVal val1 = new TypeVal(); val1.state = 3;
      TypeVal val2 = new TypeVal(); val2.state = 3;
      Debug.Assert( val1.Equals(val2) );
      val1.state = 4;
      Debug.Assert( !val1.Equals(val2) );
   }
}	
Copyright Patrick Smacchia 2006 2007