Вариант 1: если X и Y выставлены как открытые члены, вы можете определить их как часть анонимного объединения, например:
class Shape {
public:
union {
struct { double X; double Y; };
double point[2];
};
...
};
Это позволяет вам получить доступ к X как shape.X или shape.point [0] и аналогично shape.Y как shape.point [1].
Вариант 2: Если X и Y представлены как свойства, их получатели / установщики могут получить доступ к массиву элементовдва элемента, а затем выставить массив как свойство только для чтения.Хотя вызывающая сторона не может изменять свойство массива, она все же может изменять свои элементы.
Вариант 3: ну, на самом деле это не вариант.Не используйте .NET отражение для доступа к свойствам по имени.Стоимость выполнения слишком высока.