Что означает эта строка "Circle c = obj as Circle;" ? - C#
Формулировка задачи:
Ребят есть код по задаче все сделал верно вроде но.. не могу понять строку написал чисто с памяти ее , может ели я правильно понял то создается объект "С" и он равен чему-то , объясните чайнику 8)
Circle c = obj as Circle;
//Создайте класс окружность с полями координаты центра и радиус и переопределите в нем корректно методы Equals
// и GetHashCode.Окружности равны если у них одинаковые координаты центра и радиусы.
namespace ConsoleApp2
{
class Circle
{
public int Centr { get; set; }
public int Radius { get; set; }
public Circle(int Centr, int Radius)
{
this.Centr = Centr;
this.Radius = Radius;
}
public Circle()
{
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
Circle c = obj as Circle;
if (obj as Circle == null)
return false;
return c.Centr == this.Centr && c.Radius == this.Radius;
}
public bool Equals(Circle obj)
{
if (obj == null)
return false;
return obj.Centr == this.Centr && obj.Radius == this.Radius;
}
public override int GetHashCode()
{
int UniCode;
if (Radius == 32)
UniCode = 1;
else
UniCode = 2;
return (int) Centr + UniCode;
}
}
class Program
{
static void Main(string[] args)
{
Circle c1 = new Circle(12,32);
Circle c2 = new Circle(21, 2);
Circle c3 = new Circle(12, 32);
Circle c4 = c1;
Console.WriteLine(c1.Equals(c2)); // False;
Console.WriteLine(c1.Equals(c4)); // True;
Console.WriteLine(c1.Equals(c3)); // True;
Console.WriteLine(c1 == c2); // False;
Console.WriteLine(c4 == c1); // True;
Console.WriteLine(c1.GetHashCode());
Console.WriteLine(c1.GetHashCode());
Console.WriteLine(c2.GetHashCode());
Console.ReadLine();
}
}
}Решение задачи: «Что означает эта строка "Circle c = obj as Circle;" ?»
textual
Листинг программы
public override bool Equals(object obj) => Equals(obj as Circle);