2017년 2월 6일 월요일

[C#] Closure 쓰는 이점

1. 원하는때 계산이 가능 : Lazy 개념

2.  파라미터를 킵해놓을 수 있기 때문에 병렬처리하는데 관리가 쉬워진다.

3. 파라미터의 보존이 가능해, 파라미터로 사용된 데이터가 바뀌고, 함수는 바뀌기전 파라미터를 사용해야 한다면,  Closure 로 쉽게 처리가 가능

Ex)

Func method1( int input   ){

    return new Func((a,b)=>{
        return input + a + b;

    });

}

라고 하자.

어떤 시퀀스가

int x = 13;
int y = 0.1;
List> templist = new List>();
for( i => range(0 ,10)){
    templist.add( method1(i*x) );
}
z = 0
for( i => range(0 ,10)){
    z += templist[i]( y, y*i  );
}

별 의미 없는 것이지만, 이런식으로 응용을 할 수 있다.

어떤 일정한 패턴의 계산 값들을 바로 계산하지 않고,  특정 시점에서 계산한다던지..

댓글 없음:

댓글 쓰기