我正在为一个 friend 做一个个人项目,但遇到了一些障碍。我可以像现在这样继续写一些真正冗余的代码,但我觉得必须有一种更有效的方法来做到这一点。
我想做的是编写一个方法,将添加三个值并将结果显示到“技能修改器”标题下的文本框中(参见屏幕截图)。我需要获取方法或一系列方法来为每项技能执行此操作。它需要获取 Balance、Climb、Escape Artist 等的 Skill Modifier 值...
该方法类似于“CalculateSM”
我目前拥有的:
private void btnUpdate_Click(object sender, EventArgs e)
{
//AM + R + MM =SM
//AM = Ability Modifier
//R = Rank
//MM = Misc Modifier
//SM = Skill Modifier
decimal balanceMod = balanceAM.Value + balanceR.Value + balanceMM.Value;
balanceSM.Text = balanceMod.ToString();
decimal climbMod = climbAM.Value + climbR.Value + climbMM.Value;
climbSM.Text = climbMod.ToString();
//etc...
}
对我来说,本质上最大的问题是弄清楚如何设计一种方法来处理这么多不同的字段名称并以相同的方式添加它们。我想避免为每项技能复制和粘贴相同的两行代码五十次。
任何想法将不胜感激!谢谢。
最佳答案
像这样使用字段不是很面向对象。您可能想要引入一个 Skills 类,该类实现了计算最终技能分数的方法,然后将一些 Skills 对象用于不同的技能。
public class Skill
{
int ability, rank, misc;
public Skill(int ability, int rank, int misc)
{
this.ability = ability;
this.rank = rank;
this.misc = misc;
}
public int Score { get { return ability + rank + misc; }
}
Skill balance = new Skill(10, 1, 1);
textBalance.Text = balance.Score.ToString();
Skill programming = new Skill(10, 100, 0);
textProgramming.Text = programming.Score.ToString();
另外,想出一种巧妙的方法将技能与您的用户控件联系起来。您不会喜欢最终得到 50 个除了名称不同外都相似的文本框。例如,第一步可能是将它们全部连接到同一个事件处理程序。
关于c# - 如何使用方法添加多个变化的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7569751/