Jos*_*egl 2 c# oop abstraction
我有一个大约100个对象的列表,恰好是瓷砖.它看起来像这样:
List<Tile> Tiles;
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他地方,我有从tile基类派生的类,我将使用house作为这个例子:
public class house : Tile
Run Code Online (Sandbox Code Playgroud)
在列表顶部我已经在数据结构中添加了不同类型的切片:
Tiles.add(new house());
Tiles.add(new church()); //ect. ect.
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我通过像for-loop这样的控制结构引用该列表,我怎么知道哪些瓷砖是教堂或房屋.基本上我需要将两种不同类型的瓷砖进行比较.是否有可能知道我引用了哪个子类?我确信对此有一个简单的解释,但是当谈到面向对象的编程时我并不是很精通,所以我甚至不能完全确定在提供帮助时我应该寻找什么.
这里有各种选择
is/ as检查特定对象以查看它是否属于特定类型.TileType(compare:Expression.NodeType)virtual方法,这样您就不需要知道类型是什么了:您只需说"做你的类型在这里做什么"(即调用虚方法)