0318 is, as 연산자, IEquatable<T> 인터페이스

2021. 3. 18. 11:24C#/수업내용

public class Unit:IEquatable<Unit>
    {
        public string ID 
        {   get; private set;
        }
        public string Name
        {
            get; set;
        }
        public Unit(string id,string name) 
        {
            this.ID = id;
            this.Name = name;
            Console.WriteLine("Unit 생성자 호출:{0} {1}", this.ID,this.Name);
        }

        //IEquatable 인터페이스 구현
        public bool Equals(Unit other)
        {
            if (other == null)
            {
                return false;
            }
            if (this.ID == other.ID) 
            {
                return true;
            }
            else { return false; }
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;

            Unit unitObj = obj as Unit;

            if (unitObj == null)
            {
                return false;
            }
            else 
            {
                return Equals(unitObj);
            }
            
        }
    }
public App() 
        {
            Console.WriteLine("App");
            Guid guid=Guid.NewGuid();
            string id = guid.ToString();
            //Console.WriteLine(id);

            for (int i = 0; i < 3; i++) 
            {
                Console.WriteLine(Guid.NewGuid().ToString(), "홍길동");
            }
            //Unit 객체 생성
            Unit unit1 = new Unit("8abdbd04 - c81f - 4a90 - 9d8d - db5486664c75", "홍길동");
            Unit unit2 = new Unit("1d2f626c - 4909 - 467e-95be - 953254404905", "홍길동");
            Unit unit3 = new Unit("d7c2ec90-c2e1-4c2d-a519-ab00d647d421", "홍길동");

            List<Unit> units = new List<Unit>();
            units.Add(unit1);
            units.Add(unit2);
            units.Add(unit3);

            Unit unit = new Unit("1d2f626c - 4909 - 467e-95be - 953254404905", "홍길동");
            if (units.Contains(unit))
            {
                Console.WriteLine("Found {0}, id: {1}", unit.Name, unit.ID);
            }
            else 
            {
                Console.WriteLine("Not Found id:{0}", unit.ID);
            }

        }

'C# > 수업내용' 카테고리의 다른 글

0318 다차원 배열 연습 10개  (0) 2021.03.18
0318 다차원 배열 ★  (0) 2021.03.18
0317 Property 속성/Stack 클래스/Queue 큐  (0) 2021.03.17
0317 Abstract  (0) 2021.03.17
0317 인터페이스/Virtual  (0) 2021.03.17