Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Converter<TInput, TOutput>-Delegat

Stellt eine Methode dar, 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
)

Typparameter

in TInput

Der Typ des umzuwandelnden Objekts.

Dieser Typparameter ist Contravariant. Das heißt, Sie können entweder den angegebenen Typ oder einen weniger abgeleiteten Typ verwenden. Weitere Informationen zu Ko- und Kontravarianz finden Sie unter Kovarianz und Kontravarianz in Generika.

out TOutput

Der Typ, in den das Eingabeobjekt konvertiert werden soll.

Dieser Typparameter ist Covariant. Das heißt, Sie können entweder den angegebenen Typ oder einen weiter abgeleiteten Typ verwenden. Weitere Informationen zu Ko- und Kontravarianz finden Sie unter Kovarianz und Kontravarianz in Generika.

Parameter

input
Typ: TInput
Das zu konvertierende Objekt.

Rückgabewert

Typ: TOutput
Die TOutput, die die konvertierte TInput darstellt.

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

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten wird der Converter<TInput, TOutput>-Delegat mit der ConvertAll<TInput, TOutput>-Methode der Array-Klasse veranschaulicht und im zweiten der Delegat mit der ConvertAll<TOutput>-Methode der generischen List<T>-Klasse.

Beispiel 1

Im folgenden Codebeispiel wird die PointFToPoint-Methode definiert, die eine PointF-Struktur in eine Point-Struktur konvertiert. Dann werden im Beispiel ein Array von PointF-Strukturen erstellt sowie ein Converter<PointF, Point>-Delegat (Converter(Of PointF, Point) in Visual Basic), der die PointFToPoint-Methode darstellen soll, und der Delegat wird an die ConvertAll<TInput, TOutput>-Methode übergeben. Die ConvertAll<TInput, TOutput>-Methode übergibt jedes Element der Eingabeliste an die PointFToPoint-Methode und legt die konvertierten Elemente in einer neuen Liste von Point-Strukturen ab. 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

Im folgenden Codebeispiel wird die PointFToPoint-Methode definiert, die eine PointF-Struktur in eine Point-Struktur konvertiert. Dann werden im Beispiel eine List<T> von PointF-Strukturen erstellt sowie ein Converter<PointF, Point>-Delegat (in Visual Basic Converter(Of PointF, Point)), der die PointFToPoint-Methode darstellen soll, und der Delegat wird an die ConvertAll<TOutput>-Methode übergeben. Die ConvertAll<TOutput>-Methode übergibt jedes Element der Eingabeliste an die PointFToPoint-Methode und legt die konvertierten Elemente in einer neuen Liste von Point-Strukturen ab. 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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft