标题:using的三种用法
只看楼主
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
结帖率:100%
 问题点数:0 回复次数:8 
using的三种用法
1. using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到。

例如:using System; 一般都会出现在*.cs中。

2.using别名。using + 别名 = 包括详细命名空间信息的具体的类型。

这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。

例如:

using System;
using aClass = NameSpace1.MyClass;
using bClass = NameSpace2.MyClass;

namespace NameSpace1
{
  public class MyClass
  {
    public override string ToString()
    {
        return "You are in NameSpace1.MyClass";
    }
  }
}

namespace NameSpace2
{
  class MyClass
  {
    public override string ToString()
    {
        return "You are in NameSpace2.MyClass";
    }
  }
}

namespace testUsing
{
  using NameSpace1;
  using NameSpace2;
  /**//// <summary>
  /// Class1 的摘要说明。
  /// </summary>
  class Class1
  {
    /**//// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
        //
        // TODO: 在此处添加代码以启动应用程序
        //
        
        aClass my1 = new aClass();         
        Console.WriteLine(my1);
        bClass my2 = new bClass();
        Console.WriteLine(my2);
        Console.WriteLine("Press any key");
        Console.Read();
    }
  }
}

3.using语句,定义一个范围,在范围结束时处理对象。

场景:

当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。

例如:

using (Class1 cls1 = new Class1(), cls2 = new Class1())
{

      if(conn.State=="Closed")

      {

        conn.open();

      }
} // call the Dispose on cls1 and cls2

这里触发cls1和cls2的Dispose条件是到达using语句末尾或者中途引发了异常并且控制离开了语句块
搜索更多相关主题的帖子: using 用法 
2008-09-23 13:44
myemail1983
Rank: 2
来 自:南京
等 级:新手上路
威 望:3
帖 子:256
专家分:0
注 册:2008-7-27
得分:0 
学习了,不过第二种用法好像很少遇到过,
我的代码里很少有用过重名的

寻找学习的动力,承接小型程序设计,呵呵,为了激励自己学习下。
虽然做不到无私,但会学着去帮助别人
2008-09-23 19:57
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
得分:0 
只要能分出VB论坛和C#论坛里有个高手myemail1983就达到目的了,
不过人是一样的,类好像就不一样了

IT618资讯网 提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.
2008-09-24 11:07
jason13168
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-1
得分:0 
原來還有這樣的妙用啊!
真是又學到了!
2008-10-02 03:15
小仙
Rank: 7Rank: 7Rank: 7
来 自:光之谷
等 级:贵宾
威 望:39
帖 子:1812
专家分:1
注 册:2008-8-8
得分:0 
嗯,总结性很好,感谢分享~


仁者乐膳,智者乐睡。我都爱~
2008-10-02 08:23
夜の枫
Rank: 2
来 自:深圳
等 级:新手上路
威 望:3
帖 子:98
专家分:0
注 册:2008-9-15
得分:0 
还蛮不错的吗?不过好像用法还有很多哦!!
2008-10-02 11:27
guoleopard
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-9-15
得分:0 
感谢分享,学习了...
2008-10-02 16:32
slndalang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-10-7
得分:0 
看看学学,我是新生,呵呵
2008-10-07 10:58
wldouyan
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2008-11-26
得分:0 
学海无涯!
2008-11-28 10:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-234734-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024297 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved