c# - 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#中把这个...一个变量变成另一个变量的另一个声明...(这个代码示例是散列函数的一部分,一个开放散列示例,我想把一个动态结构放在一个数组中... )
提前感谢您的回复!
解决方案
看起来您正在混淆变量的命名并给对象一个所谓的“名称”。
在创建Warrior
对象时,您不需要为每个对象 ( Warrior
) 存储一个新的变量名,因为您将从数组中访问它们。我的意思是,不要尝试Warrior
像这样命名每个新的:aquiles1、aquiles2 等。您只需直接在数组中创建它们并从那里访问它们。
因此,为了创建一个Warrior
s 数组,您可以这样做:
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
变量指定一个新的变量名,您只需通过数组访问它们。
我应该注意我将属性名称(武器和盔甲)大写,因为公共属性的标准命名约定是 PascalCase。
推荐阅读
- vue.js - 未生成名为 router-link 的 Vue.js
- scala - 不同类型的类的不同方法 toString
- html - 如何在 Blazor 中更改 CSS 或“body”元素的类
- vue.js - 即使在选项中指定,Webpack 压缩插件也会忽略文件类型吗?
- scala - Akka HTTP:当遇到错误的 URL 时,如何让流 Http().superPool() 不抛出异常?
- methods - 构造函数 Mockito 中使用的模拟私有方法
- python - 如何更新字符串(python)中的变量?
- git - 为什么 Windows 中的 Git 会为相同的内容显示不同的 SHA-1?
- amazon-web-services - 使用 SSH 访问 AWS EC2 实例
- javascript - 尝试将 HTML 元素作为文本传递给反应组件