, 항등 연산자 오버로드의 System.Linq.Data.Binary 구현은 다음과 같습니다참조하는 평등 연산자는 반사판 또는 DotPeek를 사용
[Serializable, DataContract]
public sealed class Binary : IEquatable<Binary>
{
...
public static bool operator ==(Binary binary1, Binary binary2)
{
return ((binary1 == binary2) || (((binary1 == null) && (binary2 == null)) || (((binary1 != null) && (binary2 != null)) && binary1.EqualsTo(binary2))));
}
뭔가 분명 실종, 또는이되어야합니다 내가 인식하지 못하는 메커니즘 (예 : 본문 내에서 객체 ==를 암묵적으로 호출하는 것). 표준 운영자에게 과부하가 필요한 경우는 거의 없습니다.
왜이 구현은 무한 재귀를 초래하지 않습니다 (간단한 테스트에서 무한 반복되지 않음을 보여줍니다)? 첫 번째 조건식은 binary1 == binary2입니다. 구현 외부에서 binary1 == binary2를 사용하면 호출되는 operator overload 구현 내에서 생각할 수 있습니다.
죄송합니다. Reflector는 Resharper가 아니라 내 게시물에 수정했습니다. 흥미로운 것은 현재의 Resharper가 올바르게 만들었지 만 DotPeek (같은 회사)는 그렇지 않습니다. – hatchet