2009-10-10 3 views

답변

11

"짧은 짧은"연산자가 없기 때문에. 두 피연산자 모두 int로 승격됩니다. 는 C# 3 사양의 섹션 7.7.5에서

:

미리 정의 된 빼기 연산자 는 다음과 같습니다. 연산자 모두 은 x에서 y를 뺍니다.

  • 정수 감산 : 체크 문맥에서

    int operator –(int x, int y); 
    uint operator –(uint x, uint y); 
    long operator –(long x, long y); 
    ulong operator –(ulong x, ulong y); 
    

    차이가 결과 유형의 범위를 벗어나는 경우 는 System.OverflowException이가 발생된다. 다른 사람이 대답했다

    public static class NumericExtensions 
    { 
        public static short Subtract(this short target, short value) 
        { 
         return (short)(target - value); 
        } 
    } 
    

    :

(. 그리고이 떠 점 빼기)

+0

경우에만 그들이 확장 연산자를 허용 ...;) – RCIX

+1

에릭 Lippert이 (Enums에 관해서) http://blogs.msdn.com/ericlippert/archive/2005/10/19/fyi-c-2-0-has-a-breaking-change-in-enum-subtraction.aspx – jasonh

+0

자주 자주했습니다. 몇 가지 언어로 된이 ...하지만 얼마나 많은 사람들이 그 중 일부를 남용 할 것인지 기억합니다. –

1

조금 더 쉽게 일을하게하려면, 당신은 단순히이 같은 확장 방법을 쓸 수 귀하의 질문 ... :)

관련 문제