我有以下方法,我从用户那里得到一个整数,它用于我制作的基于小文本的游戏,我使用的是OO。
public int getInt(string information)
{
int num = 0;
try
{
Console.WriteLine("What is your " + information + "?: ");
num = int.Parse(Console.ReadLine());
Console.WriteLine("Your " + information + " is: " + num);
}
catch
{
Console.WriteLine("Value: '" + num + "' was not a numerical character!");
}
setStats(information, num);
return num;
}
这可以按预期工作。
但是,我的setStats方法并没有按预期工作。
public void setStats(string nameofStat, int valueofStat)
{
PropertyInfo prop = stat.GetType().GetProperty(nameofStat);
prop.SetValue(nameofStat, valueofStat, null);
Console.WriteLine(stat.ToString());
}
我使用反思课程,因为我不想为每个新的统计数据执行此操作。
if (nameofStat == "Agility")
{
stat.agility = 1;
}
我得到的错误是"对象引用未设置为对象的实例。"因为我的道具实例是空的,但我不知道为什么它是空的。
就行:
prop.SetValue(nameofStat, valueofStat, null);
请帮忙!
以下是我的一个例子;设置;我的统计类中的属性。
private int Agility;
public int agility
{
get { return Agility; }
set { Agility = value;}
}