2014-03-05 4 views
0

Я пытаюсь переопределить Equals метод в C# и я получаю ошибку какпереопределение Equals метод в C#

SoftCherry.Customer»является„тип“, но используется как„переменная“

Ошибка линии: вернуть this.FirstName == ((Заказчик) .obj) .FirstName & & this.LastName == ((Customer) .obj) .LastName;в классе Customer

и This Is My Code

using System; 

    namespace SoftCherry 
    { 
     public class MainClass 
     { 
      public static void Main() 
      { 
       Customer C1 = new Customer(); 
       C1.FirstName = "Raja"; 
       C1.LastName = "Thananki"; 

       Customer C2= new Customer(); 
       C2.FirstName = "Raja"; 
       C2.LastName = "Thananki"; 

       Console.WriteLine(C1== C2); 
       Console.WriteLine(C1.Equals(C2)); 
       Console.ReadLine(); 
      } 
     } 

     public class Customer 
     { 
      public string FirstName { get; set; } 
      public string LastName { get; set; } 

      public override bool Equals(object obj) 
      { 
       if (obj == null) 
       { 
        return false; 
       } 
       if (!(obj is Customer)) 
       { 
        return false; 
       } 
       return this.FirstName == ((Customer).obj).FirstName && 
        this.LastName == ((Customer).obj).LastName; 
      } 

      public override int GetHashCode() 
      { 
       return this.FirstName.GetHashCode()^this.LastName.GetHashCode(); 
      } 
     } 
    } 
+2

Потеряйте точки перед 'obj'. – Jon

ответ

3

Удалить точки после типа:

return this.FirstName == ((Customer)obj).FirstName && 
     this.LastName == ((Customer)obj).LastName; 

В противном случае это не является допустимым синтаксисом.

+0

Большое спасибо за ваше рабочее время! – CodeingJoe

+1

Не стесняйтесь принимать любые ответы, которые вам помогли. –

0

Ваш код должен быть использован (Customer)obj, а не (Customer).obj. У вас есть странная точка там, где вы выполняете этот актерский состав.

+0

Большое спасибо за ваше рабочее время! – CodeingJoe

Смежные вопросы