向大蝦們請教個問題:
假設在一個類中,只有一個方法中使用了System.Text命名空間,以下兩種寫法,你們會使用哪一種?
最好能分析一下這兩者的區別。方法一:using System;
using System.Data;
using System.Collections;
using System.Data.SqlClient;
using System.Text; //引入命名空間namespace Test
{
    private void Test()
    {
         StringBuilder sbCmd = new StringBuilder();
         //Other codes here
    }
    
    //其它方法,并且未使用System.Text命名空間
}方法二
using System;
using System.Data;
using System.Collections;
using System.Data.SqlClient;namespace Test
{
    private void Test()
    {
System.Text.StringBuilder sbCmd = new System.Text.StringBuilder();  //Other code here
    }
    
    //其它方法,并且未使用System.Text命名空間
}

解决方案 »

  1.   

    但如果你页面中就用一次StringBuilder对象.
    你可以用System.Text.StringBuilder sbCmd = new System.Text.StringBuilder(); 
      

  2.   

    我顶第二种
    从表面上看 节省资源。
    看高手们咋回答,期待ing...
      

  3.   

    就用一次StringBuilder,using System.Text;没多大必要..
      

  4.   

    我个人觉得,如果用第二种的话压根就不需要引入System.Text命名空间了(前提是只有着一个地方用到的话 )。我支持第一种,不然的话引入了干什么用。
      

  5.   

    举个例子就明白了!句子一:DoNetKing 您吃了么?句子二:来自宇宙。银河系。太阳系。地球。中华人们共和国。A省。B市。C街道。X楼ZY号的滴 DoNetKing 您吃了么?大家平时咋讲话?!1 or 2?
      

  6.   

    错误理解。
    using 引用命名空间100000000000000个都不会影响程序的性能,using命名空间与打全名的区别是只是一个缩写,代码简洁,完全没有性能的影响,因为编译的时候,还是会编译成全名,另外,多余的引用的命名空间是无效的,会被删除,所以,引用与打全名完全与性能无关。另外,对于常用的命名空间,建议using,可以使代码简洁,可读性强,编码效率高。clear?!
      

  7.   


    楼上说的已经非常清楚了,只有用到了,才会编译进自己的APP.没有用到的,即使using了,编译的时候也会去掉~
      

  8.   

    using(System.Text.StringBuilder sbCmd = new System.Text.StringBuilder(); )
    {
       sbCmd .....
    }
      

  9.   

    前面的都好詳細了, 從效率上的考慮的話, 引用一本書上的兩句話吧:1.using类似于Java语言的import指令,都是引入命名空间(Java中称作包)这种逻辑结构;而不同于C语言中的#include指令,用于引入实际的类库;2.using引入命名空间,并不等于编译器编译时加载该命名空间所在的程序集,程序集的加载决定于程序中对该程序集是否存在调用操作,如果代码中不存在任何调用操作则编译器将不会加载using引入命名空间所在程序集。因此,在源文件开头,引入多个命名空间,并非加载多个程序集,不会造成“过度引用”的弊端
      

  10.   

    System.Text,现在你引用的是系统内置的命名空间,不存在着说以后命名空间变更问题,但如果是你自定义的一个命名空间(如CSDN.HelpCenter),现在你采用的是非头部引用(using CSDN.HelpCenter)而是在程序内部引用(命名空间.类名:CSDN.HelpCenter.GeneralHelp),以后可能由于某种原因命名空间要更名了,那么有很多地方就等着你去改了,这个维护工作量可能是很大的,可想而知啊,这个方式我不推荐的。所以,你为什么不现在就开始使用头部引用的编写方式呢。
      

  11.   

    象StringBuilder这种常用的类,不需要特别标明,C#人都知道.
    只有你用一些不常用的,或是和当前命名有冲突时,才考虑用第二种.
      

  12.   

    再建议楼主参考下《.net设计规范》
      

  13.   

    <table>
    <tr>
    <td>建议</td>
    <td>第二种</td>
    </tr>
    <tr>
    <td>建议</td>
    <td>第二种</td>
    </tr>
    </table>