728x90
Generic Method 를 이용한 방법
public IEnumerableAsEnumberatorOf () { var converter = TypeDescriptor.GetConverter(typeof(T)); foreach(var item in _queue) { var result = converter.ConvertTo(item, typeof(TOutput)); yield return (TOutput)result; } }
위의 방법을 Extension Method로 변형하는 방식
참고 ) Extension Method 작성하는 방법
method를 선언하되, static 한정자로 수식해야 하며, 첫번째 매개변수는 반드시 this 키워드와 함께 확장하고자 하는 클래스(형식)의 인스턴스여야 한다.
namespace 네임스페이스이름 { public staic class 클래스이름 { public static 반환형식 메소드이름 ( this 대상형식 식별자, 매개_변수_목록) { //... } } } |
public static class BufferExtension { public static IEnumerableAsEnumberatorOf (this IBuffer buffer) { var converter = TypeDescriptor.GetConverter(typeof(T)); foreach (var item in buffer) { TOutput result = (TOutput)converter.ConvertTo(item, typeof(TOutput)); yield return result; } } }
728x90
728x90