将 VS2003 下的一个 Web 项目升级到 VS2005 后,去除明显错误后编译测试运行。某页面发现一个问题:
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 发现不明确的匹配。
这个问题发生原因一般情况是:
aspx 页面里面的控件有与您的 aspx.cs 里的类变量重名(不区分大小写)的 ID
那么我发现在代码中有如下的声明:
protected System.Web.UI.WebControls.Label BlogID;
protected System.Web.UI.WebControls.Label blogID;
blogID
在前台控件中不存在,仅在 cs 代码中声明了,因此产生了上述的问题。
由此看来虽然,C# 等语言中允许我们使用大小写不同来声明不同的变量,但是我们应该尽量避免这样的情况,使用完全不同的名字区分不同的变量为好啊。