C# 我说得对吗?(数组、枚举结构)

C# 我说得对吗?(数组、枚举结构),c#,arrays,C#,Arrays,所以,我对C#非常陌生(大约两周),在我借来的关于数组之类的教科书中,我已经达到了一个点 其中的例子非常清楚,但用途却不那么清楚 例如,如果我要做一个口袋妖怪风格的游戏。。。我尝试以下方法是否正确 使用范围为150的名为“口袋妖怪”的数组来处理每个口袋妖怪的初始实例 使用带有变量的结构,如“HP”“Move1”“Move2”“Attack”等,当战斗中需要口袋妖怪时,口袋妖怪阵列可以调整这些值 还是应该使用枚举来处理我认为数组应该做的事情 这只是一个例子,可以帮助我将这些概念等同于我更了解的东西

所以,我对C#非常陌生(大约两周),在我借来的关于数组之类的教科书中,我已经达到了一个点

其中的例子非常清楚,但用途却不那么清楚

例如,如果我要做一个口袋妖怪风格的游戏。。。我尝试以下方法是否正确

使用范围为150的名为“口袋妖怪”的数组来处理每个口袋妖怪的初始实例

使用带有变量的结构,如“HP”“Move1”“Move2”“Attack”等,当战斗中需要口袋妖怪时,口袋妖怪阵列可以调整这些值

还是应该使用枚举来处理我认为数组应该做的事情

这只是一个例子,可以帮助我将这些概念等同于我更了解的东西,我根本不想剽窃口袋妖怪。

我不是一个C#人,但一般来说,你可以将你的口袋妖怪结构保存在一个数组中,但是你必须通过数组索引来访问它们,这可能会变得很麻烦。我假设C#数组只能由整数索引

不过,还有其他可能更有用的数据结构。你很快就会发现这些。e、 g.列表、集合和地图


是的,您可以在程序中使用structs对概念性的数据进行分组,比如口袋妖怪,或者您正在建模的任何问题。不过,使用类可能更有用。

您的思路似乎是正确的。虽然你的阵列应该能够容纳所有这些新的口袋妖怪大约500个元素:P

但是是的,创建一个包含关于单个口袋妖怪(名称、HP等)的所有公共信息的结构是完全合理的。您甚至可以考虑将其进一步扩展,并使用结构内的数组来存储每个移动。移动可以是另一个包含移动名称和权限等的结构

这完全取决于您希望应用程序的详细程度,以及您希望在其中投入多少精力。显然,如果这是一个学习练习,你应该投入足够的精力,以便更好地理解这些概念

我不是C专家,但是如果C++中的枚举只是C++中的一组命名的积分常量,那么它们对你们来说就没什么用处了。


我认为最好从一个包含口袋妖怪名称的简单结构开始,然后创建一个包含150个口袋妖怪的数组。从那里,您可以向应用程序添加额外的细节,如前面提到的Pokemon struct中的
Move
structs数组。迭代开发通常比一次性理解和解决整个问题更容易。

对于枚举,将其视为一种用文字而不仅仅是数字列出不同值的方法。例如:

enum Element
{
    Normal,
    Fire,
    Water,
    Electric,
    Grass
    //etc.
}
然后,一个口袋妖怪类,代表一个口袋妖怪:

class Pokemon
{
    //Properties
    public string Name { get; set; }
    public Element ElementalType { get; set; }

    //Constructor
    public Pokemon(string name, Element type)
    {
        this.Name = name;
        this.ElementalType = type;
    }
}
因此,您可以创建口袋妖怪对象:

Pokemon myPokemon = new Pokemon("Pikachu",Element.Electric);
C#(和面向对象编程)的核心元素是对数据建模,使其适合可移植和可更改的对象。这意味着您可以添加各种其他属性(我在这方面做得有点快),例如HP、Moves等

要创建阵列,请执行以下操作:

Pokemon[] allMyPokemons = new Pokemon[150];
然后您需要设置每个:

allMyPokemons[0] = myPokemon;

请回答这个问题的人拿出一个更好的例子:)你应该叫他们“口袋妖怪”或其他什么来避免诉讼:P“…虽然你的阵列应该能够容纳所有这些新的口袋妖怪大约500个元素。”我只是笑:]我拥有的上一个口袋妖怪游戏是《口袋妖怪黄金》,我认为他们应该在那之后停止制作新的口袋妖怪。这些天看起来很可笑,哈哈。我在《口袋妖怪红》第一次发行时就买了它。我的生命中只有150只口袋妖怪。谢谢你的帮助,我知道这个例子有点愚蠢,但它对我帮助很大。@ChrisHinton相反,最有意义的例子才是最好的。尽管我不是口袋妖怪迷,但当我看到这个问题时,我知道我必须回答:)在下一节课中,我们将制作一个名为
LetMeShowYouThem()的函数