У меня есть класс многоугольника, который хранит список Microsoft.Xna.Framework.Vector2 в качестве вершин многоугольника. После создания многоугольника я бы хотел, чтобы другие классы могли читать положение вершин, но не изменять их.
В настоящее время я выставляю вершины через это поле:
/// <summary>
/// Gets the vertices stored for this polygon.
/// </summary>
public List<Vector2> Vertices
{
get { return _vertices; }
}
List<Vector2> _vertices;
Однако вы можете изменить любую вершину, используя такой код:
Polygon1.Vertices[0] = new Vector2(0, 0);
или
Polygon1.Vertices[0].X = 0;
Как я могу ограничить другие классы, чтобы они могли только читать свойства этих вершин и не могли устанавливать новый для моего Списка? Единственное, о чем я могу думать, это передать копию классам, которые ее запрашивают.
Обратите внимание, что Vector2 - это структура, которая является частью структуры XNA, и я не могу ее изменить.
Спасибо.