Подтвердить что ты не робот

Существует ли UI-независимая структура Point в .NET?

Я знаю несколько структур Point в .NET: System.Drawing.Point, System.Windows.Point, Sys.UI.Point, но все они находятся в библиотеках пользовательского интерфейса высокого уровня (GDI +, WPF, AJAX). Мне нужна структура Point для вычислений в моей библиотеке классов, которую я не хочу привязывать к какой-либо конкретной технологии пользовательского интерфейса. Есть ли какая-либо UI-независимая структура Point в .NET? Или мне нужно будет создать его самостоятельно? Это просто, я знаю, но звучит как изобретать колесо.

4b9b3361

Ответ 1

Восстановите колесо. Он будет работать гладко! Действительно, если это просто крошечная структура, которая зависеть от больших сборок, тянет много других вещей? Особенно на устройствах с ограничениями, таких как телефоны... Но обратите внимание на то, как правильно использовать классы и структуру, если вы хотите получить лучшую производительность.

Это довольно хорошее чтение, и я чувствую, что вы хотите его прочитать: Фрэнк Сэвидж на производительность CLR.

Ответ 2

Насколько мне известно, это не так, но, как вы заявили, это не так сложно реализовать, поэтому я предлагаю вам сделать это.

У вас может возникнуть соблазн использовать класс Tuple, как и другие. Хотя он может выполнять эту работу, это не то, что вы захотите повторно использовать снова и снова. Кроме того, вы можете столкнуться с проблемами сравнения, в зависимости от особенностей вашего приложения.

Ответ 3

Вы также можете использовать Tuple класс для этой цели.

Ответ 4

В любом случае вы можете использовать System.Drawing.Point или System.Drawing.PointF. Правда, он может быть преобразован в и из соответствующей структуры GDI +, но сам по себе это просто структура .NET. Это чистая управляемая структура, которая просто выглядит COM видимой и конвертируемой:)

Ответ 5

Если вы не хотите создавать свой собственный класс Point, вы можете использовать ссылку Tuple class MSDN. Вы можете передать пару координат любого типа, который вы хотите использовать в своей библиотеке классов, вместо того, чтобы принуждать пользователя создавать новый класс.

Если вы хотите предоставить несколько вспомогательных методов для пользователя вашей библиотеки, я бы создал свой собственный класс. Кортежи отлично подходят для быстрого обмена данными.