Что означает эта строка "Circle c = obj as Circle;" ? - C#

Узнай цену своей работы

Формулировка задачи:

Ребят есть код по задаче все сделал верно вроде но.. не могу понять строку
Circle c = obj as Circle;
написал чисто с памяти ее , может ели я правильно понял то создается объект "С" и он равен чему-то , объясните чайнику 8)
//Создайте класс окружность с полями координаты центра и радиус и переопределите в нем корректно методы 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);

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы