Обращение к полям через this - C#
Формулировка задачи:
Есть два поля одного и того же типа, как компилятор понимает какое именно брать.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public int x;
public int z;
public Program (int x, int z)
{
this.x = x;
this.z = z;
}
public bool Compare(int y)
{
return y.Equals(this);
}
static void Main(string[] args)
{
int key = Convert.ToInt32(Console.ReadLine());
Program c = new Program (10,8);
Console.WriteLine(c.Compare(key));
Console.ReadLine();
}
}
}Решение задачи: «Обращение к полям через this»
textual
Листинг программы
public override bool Equals(object obj) {
// Сравнение с null всегда возвращает false
if (obj == null)
return false;
// Если сравниваемые объекты имеют разный тип, равенство не верно
if (obj.GetType() != this.GetType())
return false;
// Вызываем специфический метод сравнения
return Equals((Vertex3d)obj);
}
// Реализация интерфейса IEquatable<T>
public bool Equals(Vertex3d other) {
// Сравниваем поля по-одному
return this._x == other._x
&& this._y == other._y
&& this._z == other._z;
}