Converter(TInput, TOutput) Delegate
TOC
Collapse the table of content
Expand the table of content

Converter(Of TInput, TOutput) Delegate

 

Represents a method that converts an object from one type to another type.

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

Public Delegate Function Converter(Of In TInput, Out TOutput) (
	input As TInput
) As TOutput

Parameters

input
Type: TInput

The object to convert.

Return Value

Type: TOutput

The TOutput that represents the converted TInput.

Type Parameters

InTInput

The type of object that is to be converted.

OutTOutput

The type the input object is to be converted to.

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.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}

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}

.NET Framework
Available since 2.0
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show:
© 2016 Microsoft