2014-10-01 2 views
-5

++ 및 - 템플릿을 증가 및 감소 시키려면 어떻게합니까? 런타임에 실행되는 min 및 max는 최대 및 최소에 대한 검사 오버로드 ++ 및 - 오버로드 된 템플릿 내에서만 액세스 할 수있는 속성. 이 C#을 "의사 코드 예제"[원문] [원문] "오버로드 된 템플릿을 사용하지 않는"에서 + + 및 - 비공개로 액세스 할 수있는 최소 또는 최대 값 확인

:

int x = 500; 
int index = 503; 

while(index > 0) { 
    x--; // where operator overload min=0 and max = 1000; 
    index -= 1; 
} 
Console.Write("x={0}",x); // should see x=0 

index = 0 
while(index < 1050) { 
    x++; // where operator overload min=0 and max = 1000; 
    index += 1; 
} 

Console.Write("x={0}",x); // should see x=1000 
+2

거기에 템플릿이 표시되지 않습니다 ... C#에도 템플릿이 없습니다. 제네릭을 말하는 겁니까? – BradleyDotNET

+1

'x'는'int'이고'min' 속성을 가지고 있지 않습니다 (최소한 구성 가능한 것은 아닙니다). –

+0

while주기의 조건에 min을 추가 할 수 있습니다. – ericpap

답변

3

당신의 질문은 매우 아픈 공식화 ...,하지만 난 당신이 찾고있는 생각 질문

업데이트를 요청할 때

향후
int max = 1000; 
int min = 0; 
int x = 500; 

//Increment to max 
while(x < max) x++; 

Console.WriteLine(x); //Here you will see 1000 

//Decrement to min 
while(x > min) x--; 

Console.WriteLine(x) //Here you will see 0 

는, 더 구체적으로하시기 바랍니다! 귀하의 코멘트에서 난 당신이 연산자를 오버로드 할 것인지 이제 이해 :

public static int operator ++ (int x) 
{ 
    if(x > xmax) return x; 
    return x++; 
} 

public static int operator -- (int x) 
{ 
    if(x < xmin) return x; 
    return x--; 
} 

이 연산자 오버로딩을 할 수 있지만, 부울, 정수 (int)로 등 기본 유형에 과부하 수 위의 예제가 작동하지 않습니다 어떻게 .. 하지만 이것은 객체에 대해 작동합니다

+0

가능하지만 실제로 지구본에서 OP가 "템플릿"을 통해 무엇을 의미하는지 알 수 있습니다. 어떤 대답 ... – BradleyDotNET

+0

나는 ++를 얻으려고 노력하고있다. – RetroCoder

+0

@BradleyDotNET OP가 운영자 과부하에 대해 말하는 것으로 가정하는 것이 안전하다고 생각합니다. – Michael

관련 문제