"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C#의 == 운영자는 언제 실패하고 어떻게 처리 할 수 ​​있습니까?

C#의 == 운영자는 언제 실패하고 어떻게 처리 할 수 ​​있습니까?

2025-03-23에 게시되었습니다
검색:714

When Does C#'s == Operator Fail and How Can You Handle It?

C#의 동일한 부호 (==) 연산자 : 언제 실패하고

를 처리하는 방법.]

c#의 == 연산자는 두 객체의 동등성을 비교하기에 매우 편리합니다. == 연산자는 일반적으로 모든 유형과 함께 작동하는 것으로 간주되지만 경우에 따라 사용할 수 없습니다.

예는 제한되지 않은 일반 유형을 비교하는 것입니다. bool compare (t x, t y) {return x == y; } 유형 T의 두 가지 일반 매개 변수를 비교하려고 시도하기 때문에 컴파일 할 수 없습니다. t에 제약 조건이 없으면 유형은 값 유형 일 수 있습니다.이 경우 == 연산자는 직접 적용 할 수 없습니다.

예를 들어, int float ] float 연산자는 사전 정의되지 않았습니다 . 그들은 값 비교를 위해 equals 메소드를 사용합니다. 반면, string 과 같은 참조 유형은 객체 참조를 확인하기 위해 사전 정의 된 == 연산자를 사전 정의했습니다.

따라서 t에 제약 조건을 지정하지 않고 컴파일러는 참조 유형에 대해 사전 정의 된 연산자를 사용할지 여부를 결정할 수 없습니다. 이를 해결하려면 t는 참조 유형으로 제한되어야합니다. 이제 유형을 유형 매개 변수라고 가정합니다. 이 경우 ==

연산자는 오버로드 된 연산자가 아닌 사전 정의 된 참조를 사용하여 비교합니다. 사전 정의 된 인용 비교가보다 기본적이고 신뢰할 수 있기 때문입니다.

유형 매개 변수에 대한 정보가 충분하지 않은 경우 iequalitycomparer

인터페이스 또는

평등 컴퓨터 .Default 정적 메소드를 사용할 수 있습니다. 이 방법은 유형에 관계없이 물체 평등을 비교하는 표준화 된 방법을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3