Advertisement
Fhernd

TryXxxVsExcepciones.cs

Jul 7th, 2014
1,540
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.30 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4.  
  5. namespace Articulos.Cap04.Excepciones.Parte2
  6. {
  7.     public sealed class TryXxxVsExcepciones
  8.     {
  9.         public static void Main()
  10.         {
  11.             // Creación del diccionario:
  12.             Dictionary<string, string> abrirCon = new Dictionary<string, string>();
  13.            
  14.             // Agregación de extensiones:
  15.             abrirCon.Add (".html", "Internet Explorer");
  16.             abrirCon.Add (".cs", "Notepad++ Portable (PortableApps Launcher)");
  17.             abrirCon.Add (".mp3", "Winamp");
  18.             abrirCon.Add (".camrec", "Camtasia Studio");
  19.             abrirCon.Add (".jpg", "Pain.NET");
  20.            
  21.             // Uso del patrón TryXXX:
  22.             Console.WriteLine ("\nUso del patrón TryXXX:");
  23.             string aplicacion = String.Empty;
  24.            
  25.             Stopwatch cronometro = new Stopwatch();
  26.            
  27.             cronometro.Start();
  28.            
  29.             for (int i = 1; i <= 1000; ++i)
  30.             {
  31.                 abrirCon.TryGetValue (".tif", out aplicacion);
  32.             }
  33.            
  34.             cronometro.Stop();
  35.            
  36.             // Muestra los resultados de las ejecuciones del método TryGetValue:
  37.             Console.WriteLine ("\tTiempo transcurrido: {0}ms", cronometro.Elapsed.TotalMilliseconds.ToString());
  38.            
  39.             // Uso del modo de acceso basado en indizador ('indexer').
  40.             // Este modo genera una excepción si la aplicación a la
  41.             // extensión pasada como índice no existe:
  42.             Console.WriteLine ("\nUso del modo de acceso basado en indizador:");
  43.            
  44.             cronometro.Reset();
  45.             cronometro.Start();
  46.            
  47.             for (int i = 1; i <= 1000; ++i)
  48.             {
  49.                 try
  50.                 {
  51.                     aplicacion = abrirCon[".tif"];
  52.                 }
  53.                 catch (KeyNotFoundException)
  54.                 {
  55.                     // Captura de la excepción.
  56.                 }
  57.             }
  58.             cronometro.Stop();
  59.            
  60.             // Muestra los resultados de las ejecuciones en excepciones:
  61.             Console.WriteLine ("\tTiempo transcurrido: {0}ms\n", cronometro.Elapsed.TotalMilliseconds.ToString());
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement