Converter Generic Delegate
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)
J# supports the use of generic types and methods, but not the declaration of new ones.
JScript does not support generic types and methods.
Not applicable.
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
The object to convert.
Return Value
The TOutput that represents the converted TInput.This delegate is used by the ConvertAll method of the Array class and the ConvertAll method of the List class to convert each element of the collection from one type to another.
This section contains two code examples. The first demonstrates the Converter delegate with the ConvertAll method of the Array class, and the second demonstrates the delegate with the ConvertAll method of the List 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 method. The ConvertAll 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 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 method. The ConvertAll 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 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.