【发布时间】:2016-10-12 13:31:22
【问题描述】:
如果tickValue 是静态的,我怎样才能保持这样的结构?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
【问题讨论】:
如果tickValue 是静态的,我怎样才能保持这样的结构?
public float GetMoneyPerSec()
{
float tick = 0;
foreach (UpgradeManager item in items)
{
tick += item.tickValue;
}
return tick;
}
【问题讨论】:
此错误表示您的UpgradeManager 如下所示
public class UpgradeManager
{
public static float tickValue;
}
删除 static 关键字,它将在您的问题中使用。
如果你想在静态上下文中使用它,你需要按如下方式访问它,但是你不能在实例化对象中使用它(new UpgradeManager() 创建一个实例)
UpgradeManager.tickValue
所以在你的例子中使用它。
public float GetMoneyPerSec()
{
float tick = UpgradeManager.tickValue;
// it cannot be used in a for-loop with each instance referencing it, static is a global, single value.
return tick;
}
但你可能想做的是这个
public float GetMoneyPerSec()
{
float tick = UpgradeManager.tickValue / items.length;
// it cannot be used in a for-loop with each instance referencing it, static is a global, single value.
return tick;
}
【讨论】:
UpgradeManager[]' does not contain a definition for length' 并且找不到扩展方法 length' of type UpgradeManager[]' (您是否缺少 using 指令或程序集引用?)