using的几种用法 C#

来源:互联网 发布:手机变音软件 编辑:程序博客网 时间:2024/05/18 03:25
  1. using System;   //using 引用命名空间  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.IO;  
  5. using System.Data;  
  6. using System.Data.SqlClient;  
  7. using System.Xml;  
  8. using Excel = Microsoft.Office.Interop.Excel; //using 创建别名  
  9.   
  10. namespace statement  
  11. {  
  12.     //指定Font类的别名为F  
  13.     using F = System.Drawing.Font;  
  14.   
  15.     class Program  
  16.     {  
  17.         static void Main(string[] args)  
  18.         {  
  19.             //using 强制资源清理  
  20.             using (TextWriter writer = File.CreateText(@"E:\test.txt"))  
  21.             {  
  22.                 //使用别名来实例化对象  
  23.                 F font = new F("宋体", 12);  
  24.                 writer.WriteLine(font.Name.ToString() + font.Size.ToString());  
  25.             }  
  26.   
  27.   
  28.             //上面的using语句等价于  
  29.             TextWriter w = File.CreateText(@"E:\test.txt");  
  30.             try  
  31.             {  
  32.                 F font = new F("宋体", 12);  
  33.                 w.WriteLine(font.Name.ToString() + font.Size.ToString());  
  34.             }  
  35.             finally  
  36.             {  
  37.                 if (w != null) w.Dispose();  
  38.             }  
  39.   
  40.   
  41.             //也可以在using之前声明对象  
  42.             TextReader r = File.OpenText("E://test.txt");  
  43.             using (r)  
  44.             {  
  45.                 Console.WriteLine(r.ReadToEnd());  
  46.             }  
  47.   
  48.   
  49.             //对象类型相同时,可以使用多个:  
  50.             using (StreamReader reader = new StreamReader("1.txt"), reader2 = new StreamReader("2.txt"))  
  51.             {  
  52.                 //do something  
  53.             }  
  54.   
  55.   
  56.             //嵌套using  
  57.             using (SqlConnection conn = new SqlConnection())  
  58.             {  
  59.                 using (SqlCommand cmd = new SqlCommand())  
  60.                 {  
  61.                     //嵌套using 缩进太多,从而不便于观察代码,可以用,但适可而止,如果有多层嵌套请使用 多重using  
  62.                     //这一层如果出错,不会影响上一层conn的释放,也就是说可以这么用  
  63.                 }  
  64.             }  
  65.   
  66.   
  67.             //多重using  
  68.             using (StreamReader reader = new StreamReader("1.txt"))  
  69.             using (StreamWriter writer = new StreamWriter("1.txt"))  
  70.             using (SqlConnection conn = new SqlConnection())  
  71.             using (SqlCommand cmd = new SqlCommand())  
  72.             {  
  73.                 //这样操作也可以最后释放所有资源,并且不会因嵌套using而产生太多缩进  
  74.                 //通过reflector观察发现系统最后会生成跟嵌套using相同的代码  
  75.             }  
  76.   
  77.   
  78.         }  
  79.     }  
  80. }  
  81.   
  82. //总结起来如下:  
  83. //1.引入命名空间  
  84. //2.创建别名  
  85. //3.强制资源清理  
原创粉丝点击