您的位置:首页 > 编程语言 > ASP

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出了问题,值得注意!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐