假设我有一个类为
从另一个方法中,我收到了一个字符串,其中包含这些状态,如下所示:
现在我想把这些状态分配给我的对象。我的当前尝试是这样的:
现在的问题是,我知道状态的顺序。它总是健康,然后法力值,最后是移动速度。因此,我正在寻找简化它的方法,即摆脱这个 switch(因为实际上这里的角色有 18 种状态,它不太好看)。
我的想法是通过数组并告诉程序将它找到的第一个数字分配给健康,第二个数字分配给法力和第三个数字分配给移动速度。
这种事情是否可能?
Character
的对象MyCharacter
,它具有以下属性:Health
, Mana
, MoveSpeed
。从另一个方法中,我收到了一个字符串,其中包含这些状态,如下所示:
"Health: 100 Mana: 100 MoveSpeed: 100"
现在我想把这些状态分配给我的对象。我的当前尝试是这样的:
// stats is the string I showed above
var statsArray = stats.Split(' ');
for (var i = 0; i < statsArray.Length; i++)
{
switch(statsArray[i])
{
default:
break;
case "Health:":
MyCharacter.Health = statsArray[i+1];
break;
case "Mana:":
MyCharacter.Mana = statsArray[i+1];
break;
case "MoveSpeed:":
MyCharacter.MoveSpeed = statsArray[i+1];
break;
}
}
现在的问题是,我知道状态的顺序。它总是健康,然后法力值,最后是移动速度。因此,我正在寻找简化它的方法,即摆脱这个 switch(因为实际上这里的角色有 18 种状态,它不太好看)。
我的想法是通过数组并告诉程序将它找到的第一个数字分配给健康,第二个数字分配给法力和第三个数字分配给移动速度。
这种事情是否可能?
100,100,100
吗? - LuaanList<Character>
中。我只是不想让字符串解析成为Character类的一部分(例如在构造函数或其他地方),因为它应该只存储它的统计数据。 - Wilsu