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 IEnumerable AsEnumberatorOf(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