Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Converter<TInput, TOutput>-Delegat

 

Veröffentlicht: Oktober 2016

Stellt eine Methode, die ein Objekt von einem Typ in einen anderen Typ konvertiert.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

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

Parameter

input
Type: TInput

Das zu konvertierende Objekt.

Rückgabewert

Type: TOutput

Die TOutput , die das konvertierte darstellt TInput.

Typparameter

inTInput

Der Typ des Objekts, das konvertiert werden soll.

outTOutput

Der Typ das Eingabeobjekt ist in konvertiert werden.

Dieser Delegat wird verwendet, durch die ConvertAll<TInput, TOutput> Methode der Array Klasse und die ConvertAll<TOutput> Methode der List<T>Klasse, um jedes Element der Auflistung von einem Typ in einen anderen zu konvertieren.

Dieser Abschnitt enthält zwei Codebeispiele. Zuerst wird veranschaulicht, die Converter<TInput, TOutput> mit Delegieren der ConvertAll<TInput, TOutput> Methode der Array Klasse und die zweite zeigt den Delegaten mit der ConvertAll<TOutput> Methode der List<T> generische Klasse.

Beispiel 1

Das folgende Codebeispiel definiert eine Methode namens PointFToPoint , konvertiert ein PointF -Struktur in eine Point Struktur. Im Beispiel wird ein Array von erstellt PointF um Datenstrukturen handelt, erstellt eine Converter<PointF, Point> delegieren (Converter(Of PointF, Point) in Visual Basic) zur Darstellung der PointFToPoint -Methode, und übergibt den Delegaten an die ConvertAll<TInput, TOutput> Methode. Die ConvertAll<TInput, TOutput> Methode übergibt jedes Element der Eingabeliste an die PointFToPoint Methode und legt die konvertierten Elemente in eine neue Liste mit Point Strukturen. Beide Listen werden angezeigt.

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

Beispiel 2

Das folgende Codebeispiel definiert eine Methode namens PointFToPoint , konvertiert ein PointF -Struktur in eine Point Struktur. Im Beispiel wird erstellt eine List<T> von PointF um Datenstrukturen handelt, erstellt eine Converter<PointF, Point> delegieren (Converter(Of PointF, Point) in Visual Basic) zur Darstellung der PointFToPoint -Methode, und übergibt den Delegaten an die ConvertAll<TOutput> Methode. Die ConvertAll<TOutput> Methode übergibt jedes Element der Eingabeliste an die PointFToPoint Methode und legt die konvertierten Elemente in eine neue Liste mit Point Strukturen. Beide Listen werden angezeigt.

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

.NET Framework
Verfügbar seit 2.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: