C#에서 두 열거형(Enum) 값이 서로 같은지 확인하려면 Equals() 메서드를 사용하면 됩니다. 이 메서드는 두 열거형 값의 기본(underlying) 값을 비교하여 동일하면 true, 다르면 false를 반환합니다.
열거형 선언
먼저 다음과 같은 열거형이 있다고 가정해 보겠습니다.
enum Products { HardDrive, PenDrive, Keyboard};동일한 값을 가진 변수 생성
Products 타입의 변수 두 개를 만들고 동일한 값을 할당합니다.
Products prod1 = Products.HardDrive; Products prod2 = Products.HardDrive;
이제 Equals() 메서드를 사용해 두 값의 동일 여부를 확인할 수 있습니다. 두 변수가 같은 기본 값을 가지고 있으므로 결과는 True가 됩니다.
예제
using System;
class Program {
enum Products {HardDrive, PenDrive, Keyboard};
enum ProductsNew { Mouse, HeadPhone, Speakers};
static void Main() {
Products prod1 = Products.HardDrive;
Products prod2 = Products.HardDrive;
ProductsNew newProd1 = ProductsNew.HeadPhone;
ProductsNew newProd2 = ProductsNew.Speakers;
Console.WriteLine("두 제품이 같은가? = {0}", prod1.Equals(prod2) ? "Yes" : "No");
Console.WriteLine("두 제품이 같은가? = {0}", newProd1.Equals(newProd2) ? "Yes" : "No");
}
}출력 결과
두 제품이 같은가? = Yes 두 제품이 같은가? = No
참고 사항
- Equals() 메서드는 서로 다른 열거형 타입 간의 비교에서 기본 값이 같더라도 false를 반환합니다. 위 예제에서 newProd1과 newProd2가 다른 값을 가지므로 No가 출력된 것입니다.
- Equals()는 object 타입을 매개변수로 받기 때문에 값 형식인 열거형에 대해 박싱(boxing)이 발생할 수 있습니다. 성능이 중요한 코드에서는 == 연산자를 사용하는 것이 더 효율적입니다.