我有一个抽象父类,它封装了对 MyObjects 数组的访问:
public abstract class MyObjectIterator
{
public MyObjectIterator(MyObject[] MyObjects) { //constructor }
public Vector2 [] Coords { //A Get Function }
public Model[] Params { //A Get Function }
//THIS ISN'T SAFE! CAN STILL CHANGE MEMBERS OF THE SET
public MyObject[] MyObjects{ get; protected set; }
}
它的一个子类已经为另一个目的实现了一个单一的索引索引器,所以我不能用它来返回一个 MyObject。
但是,由于返回数组是不安全/不好的做法,因为这意味着可以修改其中的元素,所以我正在寻找一种方法来提供一个整洁的接口来访问单个元素,例如
MyObject = Child.MyObjects[i];
但不提供set
对 MyObjects 任何元素的访问。
我的一个相关问题是:如果我在父类上有一个索引器,当你有一个子类的对象时可以使用它吗?
编辑:
我决定采用这种方法,
public MyObject MyObject(int index) { return MyObjects[index]; }
因为它最能实现我想要的。