How to add different types of objects in a single array in C#?

前端 未结 10 1990
情话喂你
情话喂你 2020-12-28 14:17

I am planning to rewrite my Python Tile Engine in C#. It uses a list of all the game objects and renders them on the screen. My problem is that unlike in Python where you ca

10条回答
  •  滥情空心
    2020-12-28 14:39

    you can use an object array. strings, int, bool, and classes are all considered objects, but do realize that each object doesn't preserve what it once was, so you need to know that an object is actually a string, or a certain class. Then you can just cast the object into that class/data type.

    Example:

    List stuff = new List();
    
    stuff.add("test");
    stuff.add(35);
    
    Console.WriteLine((string)stuff[0]);
    Console.WriteLine((int)stuff[1]);
    
    
    

    Though, C# is a strongly typed language, so I would recommend you embrace the language's differences. Maybe you should look at how you can refactor your engine to use strong typing, or look into other means to share the different classes, etc. I personally love the way C# does this, saves me a lot of time from having to worry about data types, etc. because C# will throw any casting (changing one data type to another) errors I have in my code before runtime.

    Also, encase you didn't know, xna is C#'s game framework (didn't have it as a tag, so I assume you aren't using it).

    提交回复
    热议问题