C# 类不';是否包含以前从解决方案中删除的成员的成员定义错误?
我遇到了一个问题,在运行代码时出错。错误为“VariableManager.characteristicPoints‘American President.VariableManager’不包含‘characteristicPoints’的定义” 当InfluencePointManager方法调用VariableManager类中的UpdateInfluencePoints或UpdateOriginalPoints时,会出现此错误。我已尝试清理解决方案并删除bin和obj文件夹。此外,我还搜索了整个解决方案的“特征点”,现在再也找不到了。我不知所措 提前谢谢C# 类不';是否包含以前从解决方案中删除的成员的成员定义错误?,c#,C#,我遇到了一个问题,在运行代码时出错。错误为“VariableManager.characteristicPoints‘American President.VariableManager’不包含‘characteristicPoints’的定义” 当InfluencePointManager方法调用VariableManager类中的UpdateInfluencePoints或UpdateOriginalPoints时,会出现此错误。我已尝试清理解决方案并删除bin和obj文件夹。此外,我还搜索
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AmericanPresident
{
class InfluencePointManager
{
public enum Influence
{
homeland,
military,
political,
economic,
legal,
criminal,
numberOfInfluenceItems
}
private int[] _originalPoints = new int[(int)Influence.numberOfInfluenceItems];
private static int[] _influencePoints = new int[(int)Influence.numberOfInfluenceItems];
public int[] InitialPointDistribution()
{
Random rand = new Random();
int i = 0, j, k = 0;
foreach (int l in _originalPoints)
{
_originalPoints[k] = 0;
k++;
if (k < 6)
{
Console.Write(_originalPoints[k]);
};
}
do
{
j = rand.Next(6);
Console.Write(j);
switch (j)
{
case (int)Influence.homeland:
if (_originalPoints[(int)Influence.homeland] != 10)
{
_originalPoints[(int)Influence.homeland]++;
i++;
Console.Write(_originalPoints[(int)Influence.homeland]);
break;
}
else break;
case (int)Influence.military:
if (_originalPoints[(int)Influence.military] != 10)
{
_originalPoints[(int)Influence.military]++;
i++;
Console.Write(_originalPoints[(int)Influence.military]);
break;
}
else break;
case (int)Influence.political:
if (_originalPoints[(int)Influence.political] != 10)
{
_originalPoints[(int)Influence.political]++;
i++;
Console.Write(_originalPoints[(int)Influence.political]);
break;
}
else break;
case (int)Influence.economic:
if (_originalPoints[(int)Influence.economic] != 10)
{
_originalPoints[(int)Influence.economic]++;
i++;
Console.Write(_originalPoints[(int)Influence.economic]);
break;
}
else break;
case (int)Influence.legal:
if (_originalPoints[(int)Influence.legal] != 10)
{
_originalPoints[(int)Influence.legal]++;
i++;
Console.Write(_originalPoints[(int)Influence.legal]);
break;
}
else break;
case (int)Influence.criminal:
if (_originalPoints[(int)Influence.criminal] != 10)
{
_originalPoints[(int)Influence.criminal]++;
i++;
Console.Write(_originalPoints[(int)Influence.criminal]);
break;
}
else break;
default:
break;
}
} while (i < 18);
//the next line s where the error occurs
VariableManager.VariableManagerInstance.UpdateOriginalPoints(_originalPoints, this);
VariableManager.VariableManagerInstance.UpdateInfluencePoints(_originalPoints, this);
return _influencePoints;
}
}
我仍然不知道为什么解决方案引用了一个不再存在的成员。我在一个新的解决方案中测试了代码,它帮助我发现了问题
基本上,我的数组是空的。我在VariableManager中的方法中添加了这段代码,解决了这个问题
if(originalPoints == null)
{
originalPoints = new int[(int)InfluencePointManager.Influence.numberOfInfluenceItems];
}
非常奇怪的错误仍然存在,所以我想这只是部分解决了。您是否尝试过关闭解决方案并重新打开它?我从来没有听说过一个错误在一个干净的构建之后抛出不存在的代码。是的。因为这个解决方案不是很大,所以我创建了一个新版本并复制了代码。我在新的解决方案中运行了它。我在同一个地方出错了。我在上面遇到的错误真的把我抛到了正在发生的事情上。基本上,我正在尝试将一个私有数组发送到另一个类,然后尝试在另一个类中调用它的一个方法。当然,该程序实际上不允许我访问它不属于的类中的私有成员,因此p在VariableManager类中为null。不过,在运行新的解决方案之前,我无法看到这一点。
if(originalPoints == null)
{
originalPoints = new int[(int)InfluencePointManager.Influence.numberOfInfluenceItems];
}