如何赋予变量多个值?

时间:2013-08-03 19:44:07

标签: c# arrays variables

我正在做一个(非常基本的)游戏。因此,我需要为(很多)实体存储数据。

所以我提出了这个概念:

String[] Entity_Data = new String[EntityCount];
Entity_Data[0] = "1 12 98 45";//Or other numbers... 

第一个数字可能是饥饿状态或步行速度,甚至是X或Y坐标。

有没有办法为数组中的每个变量赋予多个值?

4 个答案:

答案 0 :(得分:8)

关于如何在单个变量中存储多个值的基本问题,请使用类似ListDictionaryTuple的内容:

List<String> items = new List<String>() {
  "one", "two", "three"
};

Dictionary<String, String> items = new Dictionary<String, String>() {
  {"name 1", "value 1"},
  {"name 2", "value 2"}
  {"name 3", "value 3"}
};

var items = new Tuple<string, int, int>("Bad Guy", 100, 50);

那说,你做错了。创建class并使用完全限定的属性/属性。像这样:

public class Enemy {
  private Int32 MaxHitPoints;
  private Int32 CurrentHitPoints;
  private Int32 Strength;
  private Int32 Speed;
  private List<Weapons>;

  public Hit(Int32 power) {
    CurrentHitPoints = CurrentHitPoints - power;
    if (CurrentHitPoints <= 0) {
      Die();
      Explode();
      MakeAMess();
    }
  }

}

等。 ......可能值得在game-dev.SE阅读/提问。

答案 1 :(得分:2)

您可以使用锯齿状数组,如下所示:

string[][] jaggedArray = new string[3][];

jaggedArray[0] = new string[5];
jaggedArray[1] = new string[4];
jaggedArray[2] = new string[2]

答案 2 :(得分:2)

除了我喜欢你的“coördinate”的时髦拼写之外,你是否意识到潜在的解决方案正在眼前徘徊,等待被发现?

什么是Entity_Data,如果不是一个可以容纳多个值的变量?那你在寻找什么?完全一样!意思是,您可以将Entity_Data声明为string的数组数组(“锯齿状数组”):

var entityData = new string[3][];
entityData[0] = new string[] { "1", "2", "3" };
entityData[1] = new string[] { "a", "b" };
entityData[2] = new string[] { "I", "II", "III", "IV", "V" };

我并不是说这是最好的解决方案,但无论如何我认为值得指出。

答案 3 :(得分:2)

你应该改为面向对象的概念会很好。您可以将任何类型的变量存储为类中的属性。如果你想获得attribut的一些数据,你应该创建属性来获取或设置属性。

class Player
{
    private string _name;
    private int _hungerStatus;
    private int _walkingSpeed;
    private int _Xco;
    private int _Yco;

    // property
    public string Name
    {
        get
        {
           return _name;
        }
        set
        {
           _name = value;
        }
    }
    …        
}

当您想要使用它时,您只需例如X = player.Nameplayer.Name = "Hero";

请参阅http://www.dotnetperls.com/property