(a=1&a=2&a=3) 연산자가 과부하될 때 항상 진짜로 변하는 C#편
6573 단어 StackOverflowC#
Getter에서++로 사용하면 빨라요!
만약... 라고 생각한다면 이전 사람 있기 때문에 다른 해석을 목표로 한다.
연산자 과부하
C# 연산자의 과부하를 사용할 수도 있습니다.
어쨌든 다음 반부터 만들어.
MagicNumber
public class MagicNumber
{
public MagicNumber(int n)
{
Value = n;
}
public int Value { get; set; }
}
이 매직넘버에서 자주 진짜가 되는 ==
연산자를 실시하면 방법이 있을 거야.연산자는
public static int operator +(MagicNumber a, int b)
의 형식으로 실현할 수 있다.그러나
==
연산자는 단독으로 실현할 수 없다.!=
연산자도 함께 실시해야 한다.MagicNumber
public class MagicNumber
{
public MagicNumber(int n)
{
Value = n;
}
public int Value { get; set; }
public static bool operator ==(MagicNumber a, int b) { return true; }
public static bool operator !=(MagicNumber x, int y) { return true; }
}
이렇게 하면 ==
든 !=
든 항상 진짜 연산자를 되돌려주는 연산자를 만들 수 있다.말하고 싶지만... 이러다 경고 나올거야.
==
연산자와 !=
연산자Equals()
와 GetHashCode()
를 실현하는 것을 권장합니다.그래서 결국 이렇게 됐어요.
MagicNumber
public class MagicNumber
{
public MagicNumber(int n)
{
Value = n;
}
public int Value { get; set; }
public static bool operator ==(MagicNumber a, int b) { return true; }
public static bool operator !=(MagicNumber x, int y) { return true; }
public override bool Equals(System.Object obj) { return true; }
public override int GetHashCode() { return Value ^ Value; }
}
잘 됐다.
참고 자료
연산자 과부하(++C+;/비행 C 미확인)
Equals() 및 연산자== 과부하 가이드(C# 프로그래밍 가이드)
Reference
이 문제에 관하여((a=1&a=2&a=3) 연산자가 과부하될 때 항상 진짜로 변하는 C#편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomopy03/items/37aedb3600663e2999e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)