Csharp/C Sharp/Language Basics/Reference Equal

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Equals and ReferenceEquals

<source lang="csharp"> using System;


public class Name {

 public string firstName;
 public string lastName;
  
 public Name(string firstName, string lastName) {
   this.firstName = firstName;
   this.lastName = lastName;
 }
  
 public void Display() {
   Console.WriteLine("firstName = " + firstName);
   Console.WriteLine("lastName = " + lastName);
 }
  
 public static Name Copy(Name car) {
   return (Name) car.MemberwiseClone();
 }

}


class Test {

 public static void Main() {
   Name myName = new Name("T", "M");
   Name myOtherName = new Name("P", "B");
   Console.WriteLine("myName details:");
   myName.Display();
   Console.WriteLine("myOtherName details:");
   myOtherName.Display();
  
   // set the myName object reference equal to myOtherName
   Console.WriteLine("Setting myName equal to myOtherName");
   myName = myOtherName;
  
   // check for equality
   Console.WriteLine("Name.Equals(myName, myOtherName) ="+ Name.Equals(myName, myOtherName));
   Console.WriteLine("Name.ReferenceEquals(myName, myOtherName) ="+ Name.ReferenceEquals(myName, myOtherName));
  
 }
  

}

      </source>