Converter(Of TInput, TOutput) Delegate
Represents a method that converts an object from one type to another type.
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Delegate Function Converter(Of TInput, TOutput) ( _ input As TInput _ ) As TOutput 'Usage Dim instance As New Converter(Of TInput, TOutput)(AddressOf HandlerMethod)
Type Parameters
- TInput
The type of object that is to be converted.
- TOutput
The type the input object is to be converted to.
Parameters
- input
- Type: TInput
The object to convert.
Return Value
Type: TOutputThe TOutput that represents the converted TInput.
This delegate is used by the ConvertAll(Of TInput, TOutput) method of the Array class and the ConvertAll(Of TOutput) method of the List(Of T) class to convert each element of the collection from one type to another.
This section contains two code examples. The first demonstrates the Converter(Of TInput, TOutput) delegate with the ConvertAll(Of TInput, TOutput) method of the Array class, and the second demonstrates the delegate with the ConvertAll(Of TOutput) method of the List(Of T) generic class.
Example 1
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates an array of PointF structures, creates a Converter<PointF, Point> delegate (Converter(Of PointF, Point) in Visual Basic) to represent the PointFToPoint method, and passes the delegate to the ConvertAll(Of TInput, TOutput) method. The ConvertAll(Of TInput, TOutput) method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. Both lists are displayed.
Imports System Imports System.Drawing Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim apf() As PointF = { _ New PointF(27.8, 32.62), _ New PointF(99.3, 147.273), _ New PointF(7.5, 1412.2) } Console.WriteLine() For Each p As PointF In apf Console.WriteLine(p) Next Dim ap() As Point = Array.ConvertAll(apf, _ New Converter(Of PointF, Point)(AddressOf PointFToPoint)) 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 ' 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}
Example 2
The following code example defines a method named PointFToPoint that converts a PointF structure to a Point structure. The example then creates a List(Of T) of PointF structures, creates a Converter<PointF, Point> delegate (Converter(Of PointF, Point) in Visual Basic) to represent the PointFToPoint method, and passes the delegate to the ConvertAll(Of TOutput) method. The ConvertAll(Of TOutput) method passes each element of the input list to the PointFToPoint method and puts the converted elements into a new list of Point structures. Both lists are displayed.
Imports System 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}
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.