Мне нужно жестко закодировать массив точек в моей программе на C#. Инициализатор стиля C не работал.C#: PointF() Array Initializer
PointF[] points = new PointF{
/* what goes here? */
};
Как это делается?
Мне нужно жестко закодировать массив точек в моей программе на C#. Инициализатор стиля C не работал.C#: PointF() Array Initializer
PointF[] points = new PointF{
/* what goes here? */
};
Как это делается?
Как это:
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
, это действительно не возможно на «неявно типизированную переменную с инициализатором массива».
Вам необходимо создать экземпляр каждого PointF с новым.
Что-то вроде
PointF [] = {точек нового PointF (0,0), новый PointF (1,1), и т.д ...
Синтаксис не может быть 100% здесь ... Я возвращаюсь к тому, когда мне приходилось это делать много лет назад.
PointF[] points = new PointF[]
{
new PointF(1.0f, 1.0f),
new PointF(5.0f, 5.0f)
};
Для 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)
};
Пример 2.0 неверен. –
Если вы имеете в виду скобки, то я отредактировал сообщение перед вашим комментарием ... – Guffa
И мы даже не нужен размер! Просто скобки! –
Я проверил его в компиляторе фрагмента и изменил свой ответ. –
Нет, вы не можете использовать неявно типизированную переменную с инициализатором массива. – Guffa