【发布时间】:2013-04-17 09:07:34
【问题描述】:
我有以下,它的工作原理:
我的玩家等级:
public Player(string Str, string SP)
{
Strength = Str;
StatPoints = SP;
}
public string StatPoints
{
get;
set;
}
public string Strength
{
get;
set;
}
现在在我的 form1 上有一个文本框和一个按钮。只要 SP 文本框中的值大于 0,该按钮就会将文本框中的值加一。问题是,我声明了六个变量来管理两个值,因为我必须将字符串转换为整数和所有这些废话。有没有办法用本质上是 int 的东西替换文本框?到目前为止,这是我的字符表代码。
private void AddButton_Click(object sender, EventArgs e)
{
Player PCStats = new Player(StrBox.Text, SPBox.Text);
int IntPCSP = Convert.ToInt16(PCStats.StatPoints);
int IntPCStr = Convert.ToInt16(PCStats.Strength);
if (IntPCSP >= 1 && IntPCStr <= 7)
{
IntPCStr++;
IntPCSP--;
PCStats.Strength = IntPCStr.ToString();
PCStats.StatPoints = IntPCSP.ToString();
StrBox.Text = PCStats.Strength;
SPBox.Text = PCStats.StatPoints;
}
else
{
MessageBox.Show("Earn more experience!");
}
/*
MessageBox.Show("PCStats.StatPoints equals" + PCStats.StatPoints);
MessageBox.Show("PCStats,Strength equals" + PCStats.Strength);
MessageBox.Show("IntPCSP Equals" + IntPCSP.ToString());
MessageBox.Show("IntPCStr Equals" + IntPCStr.ToString());
*/
}
或者有没有更简单的方法来做到这一点,我完全忽略了。经过大量的试验和错误后,我终于可以开始工作了,我非常兴奋,但我愿意重做。但是,我宁愿只替换文本框,这样我就不会到处转换变量。
【问题讨论】:
-
如果您正在使用 WinForms,那么有一个 NumericUpDown control 可能对您有用
-
试过了,但我仍然必须将值从十进制更改为整数。还有向上向下箭头的整个问题,但主要是小数。
-
直接创建类Player为什么不用int呢?