5

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?

4 Answers 4

8

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

Sign up to request clarification or add additional context in comments.

3 Comments

And we don't even need the size! Just the brackets!!
I've checked it in the snippet compiler and changed my answer.
No, you can't use an implicitly typed variable with an array initializer.
2

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.

Comments

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

Comments

1

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)
};

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.