この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Converter<TInput, TOutput> デリゲート

 

公開日: 2016年11月

1 つの型のオブジェクトを別の型に変換するメソッドを表します。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public delegate TOutput Converter<in TInput, out TOutput>(
	TInput input
)

パラメーター

input
Type: TInput

変換対象のオブジェクト。

戻り値

Type: TOutput

TOutputを表す、変換されたTInputです。

型パラメーター

inTInput

変換するオブジェクトの型。

outTOutput

入力オブジェクトに変換する型。

このデリゲートを使用して、ConvertAll<TInput, TOutput>のメソッド、ArrayクラスおよびConvertAll<TOutput>のメソッド、List<T>クラス、コレクションの各要素を別の 1 つの型に変換します。

このセクションには、2 つのコード例が含まれています。 最初に、説明、Converter<TInput, TOutput>を持つデリゲート、ConvertAll<TInput, TOutput>のメソッド、Arrayクラス、および 2 番目のデリゲートを示します、ConvertAll<TOutput>のメソッド、List<T>ジェネリック クラスです。

例 1

次のコード例は、という名前のメソッドを定義PointFToPoint変換する、PointFに構造体、Point構造体。 配列を作成しPointF構造と、作成、Converter<PointF, Point>委任 (Converter(Of PointF, Point) Visual Basic で) を表す、PointFToPointメソッドにデリゲートを渡します、ConvertAll<TInput, TOutput>メソッドです。 ConvertAll<TInput, TOutput>メソッドは成功する入力の一覧の各要素、PointFToPointメソッドの新しいリストに変換された要素を格納およびPoint構造体。 両方の一覧が表示されます。

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}
 */

例 2

次のコード例は、という名前のメソッドを定義PointFToPoint変換する、PointFに構造体、Point構造体。 作成し、List<T>PointF構造と、作成、Converter<PointF, Point>委任 (Converter(Of PointF, Point) Visual Basic で) を表す、PointFToPointメソッドにデリゲートを渡します、ConvertAll<TOutput>メソッドです。 ConvertAll<TOutput>メソッドは成功する入力の一覧の各要素、PointFToPointメソッドの新しいリストに変換された要素を格納およびPoint構造体。 両方の一覧が表示されます。

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
2.0 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: