收录日期:2020/12/02 11:38:27 时间:2009-03-09 10:20:43 标签:c#,arrays,array-initialize

I need to hard code an array of points in my C# program. The C-style initializer did not work.

PointF[] points = new PointF{
    /* what goes here? */
};

How is it done?

Like this:

PointF[] points = new PointF[]{
    new PointF(0,0), new PointF(1,1)
};

In c# 3.0 you can write it even shorter:

PointF[] points = {
    new PointF(0,0), new PointF(1,1)
};

update Guffa pointed out that I was to short with the var points, it's indeed not possible to "implicitly typed variable with an array initializer".

You need to instantiate each PointF with new.

Something like

Pointf[] points = { new PointF(0,0), new PointF(1,1), etc...

Syntax may not be 100% here... I'm reaching back to when I last had to do it years ago.

PointF[] points = new PointF[]
{
    new PointF( 1.0f, 1.0f),
    new PointF( 5.0f, 5.0f)
};

For C# 3:

PointF[] points = {
   new PointF(1f, 1f),
   new PointF(2f, 2f)
};

For C# 2 (and 1):

PointF[] points = new PointF[] {
   new PointF(1f, 1f),
   new PointF(2f, 2f)
};