对于我正在努力创建的XNA引擎,我想要一个服务器作为我的游戏对象的实例的数组/ arraylist。如果我的所有游戏对象都是GameObject类的父级,我可以用这种方式做什么?
答案 0 :(得分:4)
怎么样
GameObject[] gameObjects = new GameObjects[100];
GameObject[0] = new GameObject();
GameObject[1] = new GameObject();
GameObject firstGameObject = gameObjects[0];
或
List<GameObject> gameObjects = new List<GameObjects>();
gameObjects.Add(new GameObject());
gameObjects.Add(new GameObject());
GameObject firstGameObject = gameObjects[0];
第一个将分配一个包含100个元素的数组,并分配前两个元素的值。第二个将创建一个列表,其中添加了两个元素。
<>
表示List<>
是一种通用类型,您可以在其中指定列表中存储的元素的类型。这会创建一个强类型集合。
将其与使用ArrayList
:
ArrayList gameObjects = new ArrayList();
gameObjects.Add(new GameObject());
gameObjects.Add(new GameObject());
GameObject firstGameObject = (GameObject) gameObjects[0];
ArrayList
类存储Object
引用并访问列表中您必须执行强制转换的项目。这既乏味又容易出错,除非您正在开发.NET 1代码,否则应始终使用List<>
而不是ArrayList
。
要了解有关泛型的更多信息,您可以在MSDN上学习C# programming guide on generics。
答案 1 :(得分:0)
我假设你听说过泛型。大多数时候,如果我需要创建一个未知对象类型的数组列表,我使用泛型T.如果我知道数据类型,我将只使用一个List