Csharp/CSharp Tutorial/File Directory Stream/Using Statement — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:20, 26 мая 2010

Create object inside the using statement

<source lang="csharp">using System; using System.IO;

class MainClass {

 public static void Main() { 
    
   using(StreamReader sr2 = new StreamReader("test.txt")) { 
     Console.WriteLine(sr2.ReadLine()); 
     sr2.Close(); 
   } 

 } 

}</source>

124.23

Dispose a StreamWriter by using "using"

<source lang="csharp">using System; using System.IO; public sealed class MainClass {

   static void Main(){
       using( StreamWriter sw = new StreamWriter("Output.txt") ) {
           sw.WriteLine( "This is a test of the emergency dispose mechanism" );
       }
   }

}</source>

Nested using statement

<source lang="csharp">using System; using System.IO; class MainClass {

  static void Main()
  {
     using (TextWriter tw1 = File.CreateText("test.txt"))
     {
        tw1.WriteLine("test");
        using (TextWriter tw2 = File.CreateText("test2.txt"))
           tw2.WriteLine("test1");    
     }
     using (TextReader tr = File.OpenText("test.txt"))
     {
        string str;
        while (null != (str = tr.ReadLine()))
           Console.WriteLine(str);
        using(TextReader tr2 = File.OpenText("test2.txt"))
           while(null != (str = tr2.ReadLine()))
              Console.WriteLine(str);
     }
  }

}</source>

test
test1

Use FileStream inside a using statement

<source lang="csharp">using System; using System.IO; using System.Text; public class MainClass {

   static void Main() {
       using( FileStream fs = File.Open( "log.txt", FileMode.Append, FileAccess.Write, FileShare.None ) ) {
           Byte[] msg = new UTF8Encoding(true).GetBytes("string \n");
           fs.Write( msg, 0, msg.Length );
       }
   }

}</source>

Use object inside using statement

<source lang="csharp">using System; using System.IO;

class MainClass {

 public static void Main() { 
   StreamReader sr = new StreamReader("test.txt"); 

   using(sr) { 
     Console.WriteLine(sr.ReadLine()); 
     sr.Close(); 
   } 

 } 

}</source>

124.23

Using statement to deal with multiple resources

<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.IO; class MainClass {

  static void Main()
  {
     using (TextWriter tw1 = File.CreateText("test.txt"),
                       tw2 = File.CreateText("test2.txt"))
     {
        tw1.WriteLine("test");
        tw2.WriteLine("test1");
     }
     using (TextReader tr1 = File.OpenText("test.txt"),
                       tr2 = File.OpenText("test2.txt"))
     {
        string str;
        while (null != (str = tr1.ReadLine()))
           Console.WriteLine(str);
           
        while (null != (str = tr2.ReadLine()))
           Console.WriteLine(str);
     }
  }

}</source>

test
test1

Using Statement: using DIRECTIVE, not using statement

<source lang="csharp">using System; using System.IO; //using DIRECTIVE, not using statement class MainClass {

  static void Main()
  {
     using (TextWriter tw = File.CreateText("test.txt"))// using statement 
     {
        tw.WriteLine("string");
     }
     using (TextReader tr = File.OpenText("test.txt"))
     {
        string str;
        while (null != (str = tr.ReadLine()))
           Console.WriteLine(str);
     }
  }

}</source>

string