using keyword in C#
The using keywords has three major uses:
The using statement defines a scope at the end of which an object will be disposed.
The using directive creates an alias for a namespace or imports types defined in other namespaces.
The using static directive imports the members of a single class.
1.using语句定义了一个作用域,在作用域最后会dispose该对象。
【注意】dispose强调了“清理资源”,在完成资源清理之后,对象本身的内存并不会释放。所谓”dispose一个对象“或”close一个对象“的真正含义是:清理对象中包装的资源(如他的字段所引用的对象),然后等待垃圾回收器自动回收该对象本身占用的内存。
2.using指令有两个作用,一是导入命名空间,这是其最常见的用法;二是为命名空间创造别名(alias)
别名有两个作用:消除两个同名类型的歧义;缩写长名称
1 using System; 2 using System.Threading; 3 using CountDownTimer = System.Timers.Timer; 4 namespace UsingDemo 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 // CountDownTimer is alias of System.Timers.Timer, 11 //declaring with using directive 12 13 CountDownTimer timer; 14 } 15 } 16 }
使用Timer作为System.Timers.Timer的别名,如果要使用System.Threading.Timer类型,必须完全限定或定义新的别名。
1 using System; 2 using System.Threading; 3 using Timer = System.Timers.Timer; 4 namespace UsingDemo 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 Timer timer; 11 System.Threading.Timer timer1; 12 } 13 } 14 }
3.using static指令
using static指令和using指令本质上是相同的,都是导入命名空间,是C#6.0引入的语法糖,详情参见:
https://www.cnblogs.com/linianhui/p/csharp6_using-static.html