c#中的另一个变量中的一个变量

one variable in another variable in c#

我需要做这样的东西...

class Warrior{
   public String weapon;
   public String armor;
}

String[] SublimeArray = new String[5];
for(int x = 0; x <= SublimeArray.Length; x++){

         Warrior aquiles(x)  = new Warrior();
         SublimeArray[x]  = aquiles(x);

}

//It give me something like that....
//   Warrior aquiles1 = new Warrior();
//   SublimeArray[1] = aquiles1;
//   Warrior aquiles2 = new Warrior();
//   SublimeArray[2] = aquiles2;
//   Warrior aquiles3 = new Warrior();
//   SublimeArray[3] = aquiles1;
//            .
//            .
//            .

我怎样才能在 C# 中将它...一个变量转换为另一个变量的另一个声明... (此代码示例是散列函数的一部分,一个开放的散列示例,我想将动态结构放入数组中...)

提前感谢您的回复!

看起来你在混淆变量的命名并给一个对象一个所谓的 "name"。

在创建 Warrior 对象时,您不需要使用新变量名称存储每个对象 (Warrior),因为您将从数组中访问它们。我的意思是,与其尝试像这样命名每个新 Warrior:aquiles1、aquiles2 等,您只需直接在数组中创建它们并从那里访问它们。

因此,为了创建 Warrior 的数组,您可以这样做:

Warrior[] SublimeArray = new Warrior[5];
for(int x = 0; x <= SublimeArray.Length; x++){
     SublimeArray[x]  = new Warrior();
}

请注意,我将数组的类型更改为 Warrior 而不是 String。类型为 String 的数组不能包含除 String 变量之外的任何内容。

现在,为了访问您创建的这些新战士,您只需为数组编制索引。因此,要访问第一个 Warrior,您可以这样做:

SublimeArray[0].Weapon = "Dragon Halberd";

或者,访问最后一个:

SublimeArray[4].Armor = "Rune Plate Armor";

如你所见,你不需要给每一个 Warrior 一个新的变量名,你只需要通过数组访问它们。

我应该注意,我将 属性 名称(武器和装甲)大写,因为 public 属性的标准命名约定是 PascalCase。