영어로 읽기

다음을 통해 공유


Converter<TInput,TOutput> 대리자

정의

개체를 한 형식에서 다른 형식으로 변환하는 메서드를 나타냅니다.

public delegate TOutput Converter<in TInput,out TOutput>(TInput input);
public delegate TOutput Converter<TInput,TOutput>(TInput input);

형식 매개 변수

TInput

변환될 개체의 형식입니다.

이 형식 매개 변수는 반공변(Contravariant)입니다. 즉, 지정한 형식이나 더 적게 파생된 모든 형식을 사용할 수 있습니다. 공변성(Covariance) 및 반공변성(Contravariance)에 대한 자세한 내용은 제네릭의 공변성(Covariance) 및 반공변성(Contravariance)을 참조하세요.
TOutput

입력 개체가 변환될 형식입니다.

이 형식 매개 변수는 공변(Covariant)입니다. 즉, 지정한 형식이나 더 많게 파생된 모든 형식을 사용할 수 있습니다. 공변성(Covariance) 및 반공변성(Contravariance)에 대한 자세한 내용은 제네릭의 공변성(Covariance) 및 반공변성(Contravariance)을 참조하세요.

매개 변수

input
TInput

변환할 개체입니다.

반환 값

TOutput

변환된 TOutput을 나타내는 TInput입니다.

예제

이 섹션에는 두 코드 예제가 있습니다. 첫 번째 방법을 보여 줍니다는 Converter<TInput,TOutput> 가진 대리자를 ConvertAll 메서드의 Array 클래스 및 두 번째 방법을 사용 하 여 대리자를 보여 줍니다는 ConvertAll 메서드의 List<T> 제네릭 클래스입니다.

예 1

라는 메서드를 정의 하는 다음 코드 예제 PointFToPoint 변환 하는 PointF 구조체를 Point 구조. 배열을 만듭니다 PointF 구조를 만들고는 Converter<PointF, Point> 대리자 (Converter(Of PointF, Point) Visual Basic의)를 나타내는 PointFToPoint 메서드를 대리자를 전달 하 고는 ConvertAll 메서드. ConvertAll 메서드는 입력 목록의 각 요소에 전달 합니다 PointFToPoint 메서드를 새 목록으로 변환 된 요소를 배치 하 고 Point 구조. 두 목록은 모두 표시 됩니다.

using System;
using System.Drawing;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create an array of PointF objects.
        PointF[] apf = {
            new PointF(27.8F, 32.62F),
            new PointF(99.3F, 147.273F),
            new PointF(7.5F, 1412.2F) };

        // Display each element in the PointF array.
        Console.WriteLine();
        foreach( PointF p in apf )
            Console.WriteLine(p);

        // Convert each PointF element to a Point object.
        Point[] ap = Array.ConvertAll(apf,
            new Converter<PointF, Point>(PointFToPoint));

        // Display each element in the Point array.
        Console.WriteLine();
        foreach( Point p in ap )
        {
            Console.WriteLine(p);
        }
    }

    public static Point PointFToPoint(PointF pf)
    {
        return new Point(((int) pf.X), ((int) pf.Y));
    }
}

/* This code example produces the following output:

{X=27.8, Y=32.62}
{X=99.3, Y=147.273}
{X=7.5, Y=1412.2}

{X=27,Y=32}
{X=99,Y=147}
{X=7,Y=1412}
 */

예제 2

라는 메서드를 정의 하는 다음 코드 예제 PointFToPoint 변환 하는 PointF 구조체를 Point 구조. 만듭니다는 List<T>PointF 구조를 만들고를 Converter\<PointF, Point> 대리자 (Converter(Of PointF, Point) Visual Basic의)를 나타내는 PointFToPoint 메서드를 대리자를 전달 하 고는 ConvertAll 메서드. ConvertAll 메서드는 입력 목록의 각 요소에 전달 합니다 PointFToPoint 메서드를 새 목록으로 변환 된 요소를 배치 하 고 Point 구조. 두 목록은 모두 표시 됩니다.

using System;
using System.Drawing;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<PointF> lpf = new List<PointF>();

        lpf.Add(new PointF(27.8F, 32.62F));
        lpf.Add(new PointF(99.3F, 147.273F));
        lpf.Add(new PointF(7.5F, 1412.2F));

        Console.WriteLine();
        foreach( PointF p in lpf )
        {
            Console.WriteLine(p);
        }

        List<Point> lp = lpf.ConvertAll(
            new Converter<PointF, Point>(PointFToPoint));

        Console.WriteLine();
        foreach( Point p in lp )
        {
            Console.WriteLine(p);
        }
    }

    public static Point PointFToPoint(PointF pf)
    {
        return new Point(((int) pf.X), ((int) pf.Y));
    }
}

/* This code example produces the following output:

{X=27.8, Y=32.62}
{X=99.3, Y=147.273}
{X=7.5, Y=1412.2}

{X=27,Y=32}
{X=99,Y=147}
{X=7,Y=1412}
 */

설명

이 대리자에서 사용 되는 ConvertAll 메서드를 Array 클래스 및 ConvertAll 메서드의 List<T> 다른 컬렉션의 각 요소 형식 간에 변환 하는 클래스.

확장 메서드

GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.

적용 대상

제품 버전
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1