Lambda Expression (람다식)

Lambda Expression


무명함수를 표현할 때 사용되는 식




진행 순서 (소스코드)

1. 기본



2. invoke


3. 무명메소드


4. 명시적 형변환


5. method invoker

TIP)

this.Invoke(delegate {button1.Text = s;} ); //컴파일 에러 발생

MethodInvoker mi = new MethodInvoker(delegate() { button1.Text = s; });

this.Invoke(mi);

//맞는표현

this.Invoke((MethodInvoker) delegate { button1.Text = s; }); //축약된 표현


6. 정리


7. 최종


Lambda : 무명메소드를 더 간결하게 표현, 파라미터가 존재한다면 자료형을 생략 가능


Delegate chain : 연쇄적으로 명시한 method 실행


'SW > C#' 카테고리의 다른 글

Collection method (콜렉션 메소드)  (0) 2017.09.05
LINQ  (0) 2017.09.05
Collection  (0) 2017.09.05

Collection method (콜렉션 메소드)

Collection method


Action<T> : T형태의 파라미터를 받고 리턴 값이 없는 함수에 사용되는 delegate


Func<T, Tresult> : T형태의 파라미터를 받아들이고 리턴타입이 TResult형태로 존재


Predicate<T> : T형태의 파라미터를 받고 리턴타입이 반드시 bool형태



소스코드


1. func


2.변수 선언 생략


3. 람다식 적용


4. 큰 숫자부터 정렬



'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
LINQ  (0) 2017.09.05
Collection  (0) 2017.09.05

LINQ

LINQ : c# 3.0에서 추가 된 통합 쿼리 언어 (주로 collection을 대상으로 쿼리를 수행)


Foreach와 Linq의 차이점Linq는 실제로 데이터를 저장하지 않는다.


Var 예약어로 타입추론 기능을 사용하여 변수의 타입을 지정하지 않아두 된다.


LINQ to DataSet : 개체에 캐시된 데이터를 쉽고 빠르게 쿼리



'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
Collection method (콜렉션 메소드)  (0) 2017.09.05
Collection  (0) 2017.09.05

Collection

콜렉션

하나의 단위로 참조될 수 있는 정렬된 항목 집합


1.     배열 : 고정된 개수의 형식 개체


2.     배열과 달리, APP의 요구에 따라 작업하는 개체 그룹이 동적으로 확장되거나 축소


3.     일부는 개체에 신속하게 접근할 수 있도록 컬렉션에 추가하는 모든 개체에 키를 할당할 수 있다.


4.     정확한 형태가 아닌 object 형으로 항상 boxing(값형식 -> Object, Stack -> Heap), unboxing(반대)이 일어난다.



System.collections : 구체적으로 형식화된 객체가 아니라 Object형식의 객체로 요소를 저장


1.     ArrayList : 필요에 따라 크기가 동적으로 증가하는 개체 배열, 변수형을 지정하지 않고 데이터를 넣어둔다.

(Object)형으로 알아서 저장이 된다. 다형성(IEnumerable을 구현하기 때문에 IEnumerable 변수에 넣을 수 있다.

IEnumerable 형으로 자료를 받았다면 ArrayList의 기능을 모두 사용할 수는 없고, IEnumerable에서 사용할 수 있는기능만 사용한다.

->명시적 형변환으로 ArrayList로 변환을 하면 다시 이용할 수 있다.)


2.     Hashtable : 키의 해시코드에 따라 구성된 키/값 쌍의 컬렉션을 나타낸다.

키와 값을 가진 데이터를 저장하는 자료구조 배열에서는 Arr[0]이런 식으로 접근하는데 해쉬 테이블은 Ht[“Apple”] = 이런식으로 접근한다.

인덱스가 아닌 키를 가지고 값에 접근(빠름)


3.     Queue : FIFO방식으 개체 컬렉션


4.     Stack : LIFO방식의 개체 컬렉션


System.collections.Generic


1.     코드의 재사용성을 높이고 타입에 대한 안정성을 높일 수 있는 장점이 있지만, 코드의 크기가 커지고 가독성이 떨어진다.


2.     Object형이 아닌 정확한 자료형을 넣기 때문에 boxing/unboxing을 하지 않는다.

그렇기 때문에 성능이 좋다.


3.     클래스를 사용할 때 타입을 지정

List<T> = index로 접근할 수 있는 강력한 형식, 검색, 정렬, 조작, 데이터 중복 가능

Dictionary<Tkey, Tvalue> : TKey에 대응되는 TvalueKeyValuePair<Tkey, Tvalue> 형태로 저장

'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
Collection method (콜렉션 메소드)  (0) 2017.09.05
LINQ  (0) 2017.09.05

'SW/C#'에 해당되는 글 4건

1 →