Имам клас полигон, който съхранява списък на 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);
or
Polygon1.Vertices[0].X = 0;
Как мога да огранича други класове, за да могат само да четат свойствата на тези върхове и да не мога да задам нов в моя списък? Единственото нещо, което мога да измисля, е да предам копие на класове, които го поискат.
Имайте предвид, че Vector2 е структура, която е част от XNA рамката и не мога да я променя.
Благодаря.