ASP.NET WEB控件命名低级错误一例
2009-07-11 21:51
429 查看
搞程序的人都知道变量的命名不要与语言关键字冲突,我今天还遇到一个ASP.NET WEB控件命名带来的问题,这个问题容易把人搞蒙。
我创建了一个名为“File.aspx”的页面,并在代码页使用“File”类,按照常规操作,先在代码页页头导入“System.IO”命名空间,结果在代码正文发现File类点不出其常见的方法来,即使手动书写一段正确的File类操作代码,都是无法编译通过的,会报File类后面加的那个方法不包含在File类中,这段出错的代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class File : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StreamReader sr = File.OpenText(Server.MapPath(".")+"\\Table.sql");
}
}
细心的你也许已经发现问题所在了,就是此时出现了两个File类,一个是System.IO.File,另一个则是新建WEB页面的时候自动生成与文件名同名的类public partial class File,此时就导致代码正文StreamReader sr = File这里的File类定义不明确了,此时在IDE中的自动提示显示的是public partial class File类下面的成员,所以一开始说的问题就出现了。
知道问题出在那里,解决办法自然也就找到了。解决办法之一就是要时刻提醒自己不要使建立的WEB页面文件名与代码中要使用的类重名,另外一个更科学的办法就是使用命名空间全称或命名空间别名,如下面那样:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class File : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StreamReader sr = System.IO.File.OpenText(Server.MapPath(".")+"\\Table.sql");
}
}
这个问题显然简单,但是稍微粗心会使你认为是.NET框架出了问题或者是VS IDE出了问题,值得注意!
我创建了一个名为“File.aspx”的页面,并在代码页使用“File”类,按照常规操作,先在代码页页头导入“System.IO”命名空间,结果在代码正文发现File类点不出其常见的方法来,即使手动书写一段正确的File类操作代码,都是无法编译通过的,会报File类后面加的那个方法不包含在File类中,这段出错的代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class File : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StreamReader sr = File.OpenText(Server.MapPath(".")+"\\Table.sql");
}
}
细心的你也许已经发现问题所在了,就是此时出现了两个File类,一个是System.IO.File,另一个则是新建WEB页面的时候自动生成与文件名同名的类public partial class File,此时就导致代码正文StreamReader sr = File这里的File类定义不明确了,此时在IDE中的自动提示显示的是public partial class File类下面的成员,所以一开始说的问题就出现了。
知道问题出在那里,解决办法自然也就找到了。解决办法之一就是要时刻提醒自己不要使建立的WEB页面文件名与代码中要使用的类重名,另外一个更科学的办法就是使用命名空间全称或命名空间别名,如下面那样:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class File : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StreamReader sr = System.IO.File.OpenText(Server.MapPath(".")+"\\Table.sql");
}
}
这个问题显然简单,但是稍微粗心会使你认为是.NET框架出了问题或者是VS IDE出了问题,值得注意!
相关文章推荐
- VS2012使用验证控件出现[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。的解决办法。
- ASP.NET编译错误 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”
- Visual C#中的winform/webform/asp.net控件命名规范
- AJAX技术与asp.net 2.0的完美结合之Timer的web应用 及使用AJAX控件时的“Sys 未定义”错误解决办法
- ASP.NET树控件,Microsoft.Web.UI.WebControls加载错误
- AJAX技术与asp.net 2.0的完美结合之Timer的web应用 及使用AJAX控件时的“Sys 未定义”错误解决办法
- Asp.net 2.0 自定义控件开发[开发一个图表(WebChart)控件(柱状图示例)](示例代码下载)
- ASP.NET Web数据控件
- ASP.NET---创建自定义Web控件小结
- 自定义 ASP.NET UpdatePanel 控件的错误处理
- ASP.NET Web 部件控件集概览
- Web服务器运行的不是ASP.NET 1.1 版.."的错误
- asp.net控件命名规范
- ASP.Net WEB控件 [ 复选框组 CheckBoxList控件 ]
- 一个asp.net控件的命名规范
- ASP.NET Sql Server安装向导(aspnet_regsql.exe)错误解决一例
- 新建MVC3项目时出错:错误 2 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll”和“C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assembli
- 【ASP.NET】——Web服务器控件、HTML服务器控件
- 一步步学习SPD2010--第十四章节--在Web页面使用控件(6)--测试ASP.NET表单
- asp.net控件拖不动。控件错误