Converter<TInput,TOutput> Gedelegeerde
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een methode waarmee een object van het ene type naar een ander type wordt geconverteerd.
generic <typename TInput, typename TOutput>
public delegate TOutput Converter(TInput input);
public delegate TOutput Converter<in TInput,out TOutput>(TInput input) where TInput : allows ref struct where TOutput : allows ref struct;
public delegate TOutput Converter<in TInput,out TOutput>(TInput input);
public delegate TOutput Converter<TInput,TOutput>(TInput input);
type Converter<'Input, 'Output> = delegate of 'Input -> 'Output
Public Delegate Function Converter(Of In TInput, Out TOutput)(input As TInput) As TOutput
Public Delegate Function Converter(Of TInput, TOutput)(input As TInput) As TOutput
Type parameters
- TInput
Het type object dat moet worden geconverteerd.
Dit type parameter is contravariant. U kunt het type dat u hebt opgegeven gebruiken of een type dat minder is afgeleid. Zie Covariantie en Contravariantie in Algemene typen voor meer informatie over covariantie en contravariantie.- TOutput
Het type waarnaar het invoerobject moet worden geconverteerd.
Dit type parameter is covariant. U kunt het type dat u hebt opgegeven gebruiken of een type dat meer is afgeleid. Zie Covariantie en Contravariantie in Algemene typen voor meer informatie over covariantie en contravariantie.Parameters
- input
- TInput
Het object dat moet worden geconverteerd.
Retourwaarde
De TOutput naam die de geconverteerde TInputvertegenwoordigt.
Voorbeelden
Deze sectie bevat twee codevoorbeelden. De eerste demonstreert de Converter<TInput,TOutput> gemachtigde met de ConvertAll methode van de Array klasse en de tweede demonstreert de gemachtigde met de ConvertAll methode van de List<T> algemene klasse.
Voorbeeld 1
In het volgende codevoorbeeld wordt een methode gedefinieerd die PointFToPoint een PointF structuur converteert naar een Point structuur. Het voorbeeld maakt vervolgens een matrix van PointF structuren, maakt een Converter<PointF, Point> gedelegeerde (Converter(Of PointF, Point) in Visual Basic) om de methode PointFToPoint weer te geven en geeft de gemachtigde door aan de methode ConvertAll. De ConvertAll methode geeft elk element van de invoerlijst door aan de PointFToPoint methode en plaatst de geconverteerde elementen in een nieuwe lijst Point met structuren. Beide lijsten worden weergegeven.
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}
*/
Imports System.Drawing
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
' Create an array of PointF objects.
Dim apf() As PointF = { _
New PointF(27.8, 32.62), _
New PointF(99.3, 147.273), _
New PointF(7.5, 1412.2) }
' Display each element in the PointF array.
Console.WriteLine()
For Each p As PointF In apf
Console.WriteLine(p)
Next
' Convert each PointF element to a Point object.
Dim ap() As Point = Array.ConvertAll(apf, _
New Converter(Of PointF, Point)(AddressOf PointFToPoint))
' Display each element in the Point array.
Console.WriteLine()
For Each p As Point In ap
Console.WriteLine(p)
Next
End Sub
Public Shared Function PointFToPoint(ByVal pf As PointF) _
As Point
Return New Point(CInt(pf.X), CInt(pf.Y))
End Function
End Class
' The example produces the following output:
' {X=27.8, Y=32.62}
' {X=99.3, Y=147.273}
' {X=7.5, Y=1412.2}
'
' {X=28,Y=33}
' {X=99,Y=147}
' {X=8,Y=1412}
Voorbeeld 2
In het volgende codevoorbeeld wordt een methode gedefinieerd die PointFToPoint een PointF structuur converteert naar een Point structuur. Het voorbeeld maakt vervolgens een List<T> van PointF structuren, maakt een Converter<PointF, Point> gedelegeerde (Converter(Of PointF, Point) in Visual Basic) om de methode PointFToPoint weer te geven en geeft de gemachtigde door aan de methode ConvertAll. De ConvertAll methode geeft elk element van de invoerlijst door aan de PointFToPoint methode en plaatst de geconverteerde elementen in een nieuwe lijst Point met structuren. Beide lijsten worden weergegeven.
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}
*/
Imports System.Drawing
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
Dim lpf As New List(Of PointF)
lpf.Add(New PointF(27.8, 32.62))
lpf.Add(New PointF(99.3, 147.273))
lpf.Add(New PointF(7.5, 1412.2))
Console.WriteLine()
For Each p As PointF In lpf
Console.WriteLine(p)
Next
Dim lp As List(Of Point) = lpf.ConvertAll( _
New Converter(Of PointF, Point)(AddressOf PointFToPoint))
Console.WriteLine()
For Each p As Point In lp
Console.WriteLine(p)
Next
End Sub
Public Shared Function PointFToPoint(ByVal pf As PointF) _
As Point
Return New Point(CInt(pf.X), CInt(pf.Y))
End Function
End Class
' 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=28,Y=33}
'{X=99,Y=147}
'{X=8,Y=1412}
Opmerkingen
Deze gemachtigde wordt gebruikt door de ConvertAll methode van de Array klasse en de ConvertAll methode van de List<T> klasse om elk element van de verzameling van het ene type naar het andere te converteren.
Extensiemethoden
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Hiermee haalt u een object op dat de methode vertegenwoordigt die wordt vertegenwoordigd door de opgegeven gemachtigde. |