views:

1939

answers:

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?

+1  A: 

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.

jeffamaphone
+4  A: 

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

Davy Landman
And we don't even need the size! Just the brackets!!
Vulcan Eager
I've checked it in the snippet compiler and changed my answer.
Davy Landman
No, you can't use an implicitly typed variable with an array initializer.
Guffa
+1  A: 
PointF[] points = new PointF[]
{
    new PointF( 1.0f, 1.0f),
    new PointF( 5.0f, 5.0f)
};
Peter McGrattan
+1  A: 

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)
};
Guffa
The 2.0 example is incorrect.
Vulcan Eager
If you mean the brackets, then I edited the post before your comment...
Guffa
A: 

how can I enycrpt my data by c#

I think that you meant to ask a question, not answer one. Also, you should be a bit more specific in your question.
Guffa