İngilizce dilinde oku

Aracılığıyla paylaş


Converter<TInput,TOutput> Temsilci

Tanım

Bir nesneyi bir türden başka bir türe dönüştüren bir yöntemi temsil eder.

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

Tür Parametreleri

TInput

Dönüştürülecek nesnenin türü.

Bu genel tür parametresi kontravaryanttır. Bu, kendi belirttiğiniz türü veya daha az türetilmiş başka bir türü kullanabileceğiniz anlamına gelir. Kovaryans ve kontravaryans hakkında daha fazla bilgi için bkz. Genel Türlerde Kovaryans ve Kontravaryans.
TOutput

Giriş nesnesinin dönüştürülecek türü.

Bu genel tür parametresi kovaryanttır. Bu, kendi belirttiğiniz türü veya daha fazla türetilmiş başka bir türü kullanabileceğiniz anlamına gelir. Kovaryans ve kontravaryans hakkında daha fazla bilgi için bkz. Genel Türlerde Kovaryans ve Kontravaryans.

Parametreler

input
TInput

Dönüştürülecek nesne.

Dönüş Değeri

TOutput

Dönüştürülen TOutputTInputöğesini temsil eden .

Örnekler

Bu bölüm iki kod örneği içerir. BirincisiConverter<TInput,TOutput>, sınıfının yöntemiyle Array temsilciyi ConvertAll gösterirken, ikincisi genel sınıfın ConvertAll yöntemiyle temsilciyi List<T> gösterir.

Örnek 1

Aşağıdaki kod örneği, bir yapıyı bir yapıya dönüştüren adlı PointFToPoint bir PointFPoint yöntemi tanımlar. Örnek daha sonra bir yapı dizisi PointF oluşturur, yöntemi temsil PointFToPoint eden bir Converter<PointF, Point> temsilci (Converter(Of PointF, Point)Visual Basic'te) oluşturur ve temsilciyi yöntemine ConvertAll geçirir. yöntemi, ConvertAll giriş listesinin her öğesini yöntemine PointFToPoint geçirir ve dönüştürülen öğeleri yeni bir yapı listesine Point yerleştirir. Her iki liste de görüntülenir.

C#
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}
 */

Örnek 2

Aşağıdaki kod örneği, bir yapıyı bir yapıya dönüştüren adlı PointFToPoint bir PointFPoint yöntemi tanımlar. Örnek daha sonra bir List<T>PointF yapı oluşturur, yöntemini temsil PointFToPoint etmek için bir Converter\<PointF, Point> temsilci (Converter(Of PointF, Point)Visual Basic'te) oluşturur ve temsilciyi yöntemine ConvertAll geçirir. yöntemi, ConvertAll giriş listesinin her öğesini yöntemine PointFToPoint geçirir ve dönüştürülen öğeleri yeni bir yapı listesine Point yerleştirir. Her iki liste de görüntülenir.

C#
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}
 */

Açıklamalar

Bu temsilci, sınıfının yöntemi Array ve ConvertAll sınıfının yöntemi List<T> tarafından ConvertAll koleksiyonun her öğesini bir türden diğerine dönüştürmek için kullanılır.

Uzantı Metotları

GetMethodInfo(Delegate)

Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır.

Şunlara uygulanır

Ürün Sürümler
.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