C#: delegate with generic
<p>Please focus on </p>

<pre><code>List&lt;Point&gt; lp = lpf.ConvertAll( 
                new Converter&lt;PointF, Point&gt;(PointFToPoint));
</code></pre>

<p>inside the codes below.</p>

<p><code>Converter&lt;PointF, Point&gt;</code> holds two type parameters? Why PointFToPoint just hold one parameter?  </p>

<pre><code>public class Example
{
    public static void Main()
    {
        List&lt;PointF&gt; lpf = new List&lt;PointF&gt;();

        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&lt;Point&gt; lp = lpf.ConvertAll( 
            new Converter&lt;PointF, Point&gt;(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));
    }
}
</code></pre>
