初识VS2008的尴尬体会(当命名空间名称与系统的类名相同时)

 事情的起因
      最近想学习学习ajax, 看了赵劼的VS2008的UpdatePanel的WebCast视频, 视频中用到一个例子将ScriptManager存放入一个母版页中,这样其它的UpdatePanel控件页面直接引用此母版页面就可以了,我也照此处理
 1)新建了一个Web工程(WebApplication)名叫
UpdatePanel (就是这个名字的工程出了问题)
 2)建立了一个母版页Site1.master,在母版页中放置了一个ScriptManager
 3)再建立一个WebForm1.aspx,引用刚才建立的Site1.master作为母版页,在此页中建立一个UpdatePanel,然后写了一些代码
4)编译运行。系统出现了奇怪的错误
   英文提示是这样的 :The type name 'Site1' does not exist in the type 'System.Web.UI.UpdatePanel
                                        (System.Web.UI.UpdatePanel 类中不存在名字为 Site1的对象)

问题原因及解决办法

   在网上查了一阵子没找到原因,仔细看了系统的提示,意思是说 System.Web.UI.UpdatePanel类里不包含Site1类,打开后台的cs文件看看,恍然大悟,系统在为我建立工程的时候自动加上了UpdatePanel的命名空间,这样我的命名空间就是UpdatePanel,正好和UpdatePanel相同,而我的母版页的后台类就成了UpdatePanel空间下的Site1类,这下当系统编译运行时,系统在System.Web.UI.UpdatePanel下找,当然找不到Site1类了,因此提示了上述错误。

   找到原因后,修改UpdatePanel命名空间,因为是测试程序只是将所有的UpdatePanel命名空间去掉(别忘记将页面文件的引用类的命名空间也去掉呀),再编译运行,成功!,真不容易,由于不熟悉VS2008的开发环境这么一个小小的错误,竟然用了我将近半天的时间,有些不太划算呀。在这里将这个经验告诉大伙,大伙可别再犯我这样的错误呀。

  总结:

     不管是建立工程还是建立类文件及其它的命名,千万不要使用系统定义的类或关键字作为你的类名,文件名,否则很容易产生以上的错误,造成不必要的麻烦,养成一个良好的命名习惯不但能使代码清晰,同时也会减少程序出错的机率,提高程序的可扩展性。

    建议:如果只是使用Web程序做一些测试程序会小型的应用,最好建立WebSite(网站)类型的项目,开发大型应用的时候建立WebApplication(Web项目)会比较好。
   WebSite:在建立项目之后系统不会自动为cs文件中建立命名空间,WebSite没有工程文件,系统会将项目目录中的所有文件作为项目中的文件使用
  WebApplication:在建立项目之后系统会自动为每个cs文件建立命名空间(空间的名称为用户建立项目时的项目名),有一个.csproj的项目文件用来保存项目中文件及相关的引用等项目基本信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值