FxCop中,查到有不合乎规则的代码,指定的错误代码所在的行号不正确,请问有高手知道怎么回事吗?

zhui19760820 2009-05-13 01:01:57
{
Method method = member as Method;

bool problem = false;

if (method != null)
{
//引数のMemberを定義しているクラスが、分析対象かどうか判定します。
InstructionList instructions = method.Instructions;
if (instructions.Length == 0)
return null;
//メンッド内で定義されたローカル変数のリスト取得
LocalList localList = instructions[0].Value as LocalList;
if (localList == null)
return null;

Local localTemp;

string strName = String.Empty;
string strType = String.Empty;

for (int index = 0, length = localList.Length; index < length; index++)
{
localTemp = localList[index];
strName = localTemp.Name.Name;
strType = localTemp.Type.FullName.ToString();
//“$”のを含むのは系統的な変数です。
if (!((strName.IndexOf('$') > -1) || (strName.IndexOf("local") > -1)))
{
if (strType.Equals(strTypeName))
{
problem = (strName.Length < 3 || !strName.Substring(0, 3).Equals(strPrefix));
}
if (problem)
{
Problems.Add(new Problem(GetResolution(strName)));
}
}
problem = false;
}
}
return Problems;


上面是我的代码,效验字符串前缀的正确性。
问题是:当某一个方法体内,多个变量定义错误时。这些错误提示的行号始终是第一个错误变量所在的行。

例如:
方法A
{
String aaa;
string bbb;
}

aaa的行号是3,bbb的行号是4。

当编译后提示的信息是:
aaa的行号是 3
bbb的行号是 3

都是3,请问这是怎么回事?如何解决呢?
我感觉是 Problems.Add(new Problem(GetResolution(strName)));有问题,但不知道如何解决。我用的fxcop1.32


...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhui19760820 2009-06-25
  • 打赏
  • 举报
回复
看来是真没有人会阿
wanabe 2009-06-17
  • 打赏
  • 举报
回复
fxcop很多人用吗?
zhui19760820 2009-05-13
  • 打赏
  • 举报
回复
没有人会吗?

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧