使用方法创建实例化类数组

本文关键字:数组 实例化 创建 使用方法 | 更新日期: 2023-09-27 18:35:11

我有一个类"Bullet",我使用方法CreateBullet()实例化,因为会有多个项目符号,我决定我应该将子弹变成一个数组,尽管这没有成功,我花了一个小时试图修复它。

我在初始化方法中调用的内容:

Bullet bullet[] = Bullet.CreateBullet[1]();

子弹类:

class Bullet
{
    public float2 position;
    public float angle { get; set; }
    public float speed { get; set; }
    public static Bullet CreateBullet()
    {
        Bullet bullet = new Bullet()
        {
            position = new float2()
        };
        return bullet;
    }
    public void Move()
    { 
    }
}

你能告诉我代码有什么问题吗?提前谢谢你。

使用方法创建实例化类数组

有了这个,你创建一个包含 5 个项目符号的数组:

        Bullet[] bullets = new Bullet[5];

然后,您需要通过为每个数组条目创建一个项目符号来填充数组:

        for (int i = 0; i < bullets.Length; i++)
        {
            bullets[i] = Bullet.CreateBullet(); 
        }

您可以将此逻辑包装在函数中:

    public Bullet[] CreateBullets(int amount)
    {
        Bullet[] bullets = new Bullet[amount];
        for (int i = 0; i < bullets.Length; i++)
        {
            bullets[i] = Bullet.CreateBullet(); 
        }
        return bullets;
    }

然后你可以使用一个函数来初始化数组:

    public void Test()
    {
        Bullet[] bullets = CreateBullets(5);
    }

你可以做这样的事情,不完全是你想要实现的目标,但它可能会激励你更多

用法

// Create your bullets
var bullets = new List<Bullet>();
// Create a raw/empty bullet with default properties 
var newBullet1 = new Bullet();
// Create bullet with some initialized properties
var newBullet2 = new Bullet()
   {
      Angle = 35, 
      Position = 0, 
      Speed = 200
   };
bullets.Add(newBullet1);
bullets.Add(newBullet2);

额外的乐趣

// Move all your bullets at once
foreach (var bullet in bullets)
{
   bullet.Move();
}