2009-03-09 3 views
2

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

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

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

ответ

6

Как это:

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

обновление Guffa указал, что я должен был коротким с var points, это действительно не возможно на «неявно типизированную переменную с инициализатором массива».

+0

И мы даже не нужен размер! Просто скобки! –

+0

Я проверил его в компиляторе фрагмента и изменил свой ответ. –

+0

Нет, вы не можете использовать неявно типизированную переменную с инициализатором массива. – Guffa

2

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

Что-то вроде

PointF [] = {точек нового PointF (0,0), новый PointF (1,1), и т.д ...

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

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

Для 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) 
}; 
+0

Пример 2.0 неверен. –

+0

Если вы имеете в виду скобки, то я отредактировал сообщение перед вашим комментарием ... – Guffa

Смежные вопросы