-
as 연산자 / yield@ 16. 1 ~ 17. 1/C# 2016. 12. 8. 17:35
as 연산자는 as 뒤에 나오는 타입이 아니면 null을 반환한다.
typeof는 특정 데이터 형식을 나타낸다.?
클래스 자체의 타입을 가져온다...
systen,tyoe t1 - typeof(Employee) // Employee자체가 타입으로 리턴됨..
t1은 employee클래스 자체가 되는것..
C#의 yield 키워드는 호출자 (Caller)에게 데이타를 하나씩 리턴할때 사용한다.
흔히 반복자 Iterrator 라고 불리우는 이러한 기능은 집합적인 데이타섹으로부터 하나씩 데이타를 호출자에게 보내주는 역할을 한다.yield는 yield return 또는 yield break의 2가지 방식으로 사용되는데, yield return은 데이터를 하나씩 리턴하는데 사용되고,yield break는 리턴을 중지하고 Iteration 루트를 빠져 나올 때 사용된다.아래의 예제는 GetEnumerator() 로부터 IEnumerable 인터페이스를 얻어 MoveNext() 메서드와 Current 속성을 사용하여개발자가 루프를 만들수도 있지만, 보톤 foreach문을 사용하여 C#에서 자동으로 이러한 루프를 처리를 하게 한다.- public class MyLinkedList<T>
- {
- private Node<T> head;
- public IEnumerator<T> GetEnumerator()
- {
- Node<T> t = head;
- while (t != null)
- {
- yield return t.Data;
- t = t.Next;
- }
- }
- //...
- }
- // 호출자
- foreach (var item in list)
- {
- Console.WriteLine(item);
- }
C# yield 실행순서호출자 (A)가 IEnumerable을 리턴하는 매서드 (B)를 호출하면, yield return 문에서 하나의 값을 리턴하고,해당 메서드 (B) 위치를 기억해 둔다. 외부 호출자 (A)가 루프를 돌아 다음 값을 메서드 (B)에 요청하면, 메서드의 기억된 위치다음 문장부터 실행을 계속하게 된다.'@ 16. 1 ~ 17. 1 > C#' 카테고리의 다른 글
nullable (0) 2016.11.19 가비지 컬렉터 가비지 컬렉션 (0) 2016.11.19 C#AVL 트리 (0) 2016.11.18 델리게이트, 이벤트 - 1 (0) 2016.11.18 object 란? boxing unboxing! (0) 2016.11.18