C #: PointF () Массив инициализатор - PullRequest
2 голосов
/ 09 марта 2009

Мне нужно жестко закодировать массив точек в моей программе на C #. Инициализатор в стиле C не работает.

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

Как это сделать?

Ответы [ 4 ]

6 голосов
/ 09 марта 2009

Как это:

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

В c # 3.0 вы можете написать его еще короче:

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

update Гуффа указал, что я должен был коротать с var points, действительно невозможно "неявно типизированной переменной с инициализатором массива".

2 голосов
/ 09 марта 2009

Вам нужно создать экземпляр каждого PointF с новым.

Что-то вроде

Pointf [] points = {new PointF (0,0), новый PointF (1,1) и т. Д. *

Синтаксис здесь может быть не на 100% ... Я возвращаюсь к тому времени, когда мне в последний раз приходилось делать это много лет назад.

1 голос
/ 09 марта 2009

Для C # 3:

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

Для C # 2 (и 1):

PointF[] points = new PointF[] {
   new PointF(1f, 1f),
   new PointF(2f, 2f)
};
1 голос
/ 09 марта 2009
PointF[] points = new PointF[]
{
    new PointF( 1.0f, 1.0f),
    new PointF( 5.0f, 5.0f)
};
...