我一直在打破我的大脑,想弄清楚如何在C#中做到这一点.我有一个TextGrid类,它本质上是一个MxN文本网格.我想要一个Cursor类来维护TextGrid中的(X,Y)位置,以及移动位置,查询当前位置等的方法.理想情况下,我希望这个类不是在TextGrid之外创建,因为它没有逻辑上附加到TextGrid是没用的.
但是,我解决这个问题的方法还不尽如人意:我已经尝试过1)Cursor是一个嵌套在TextGrid中的公共类,带有私有构造函数,2)Cursor是一个嵌套在TextGrid中的私有类,带有一个公共构造函数,并且3)Cursor是TextGrid之外的公共构造函数.#1不起作用,因为由于私有构造函数,我无法从TextGrid中实例化Cursor.#2不起作用,因为由于访问限制,我无法在TextGrid之外返回创建的Cursor对象(例如GetCursor()方法).并且#3根本没有帮助.
相当多,我想要做的就是在C#中使用Java的Iterator.这可能吗?
使用#2,但通过接口返回:
public interface ICursor
{
}
public class TextGrid
{
private class Cursor : ICursor
{
}
// This could be a property if it doesn't require much calculation.
public ICursor GetCursor()
{
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
972 次 |
最近记录: |