Académique Documents
Professionnel Documents
Culture Documents
Estandares de codificacion en C#
Posted by gweisz under Coding Tips, Tutorial references
1 Comment
Les dejo una referencia a un texto simple y explicativo sobre cuales deberian ser las pautas generales a tener en
cuenta a la hora de crear proyectos en C#.
El seguir estas pautas nos permite generar un codigo claro y facil de entender por otros programadores.
El link: http://debian.fmi.uni-sofia.bg/~iliyan/csharp_coding/
Tutoriales Varios
Posted by gweisz under Tutorial references
[2] Comments
Octubre 8, 2007
En C# para obtener la hora y fecha actual disponemos de la clase System.DateTime, veamos como funciona con
un ejemplo:
using System;
class myApp
{
public static void Main()
{
DateTime CurrTime = DateTime.Now;
Console.WriteLine(DateTime display listing specifier and result:\n);
Octubre 8, 2007
Exception-Safe Disposal
Posted by gweisz under Coding Tips
No Comments
Muchas veces cuando terminamos de utilizar un recurso debemos liberar el mismo inmediatamente (no
queremos que quede dando vueltas por un tiempo indefinido hasta que el GC* se haga cargo del mismo). Pero
como podemos asegurar que lo hacemos de la forma correcta?
Veamos un ejemplo:
TextReader reader = new StreamReader(filename);
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
reader.Close();
A primera vista pareceria que este codigo no puede fallar pero Que ocurre si el metodo reader.ReadLine()
tira una excepcion? Pues lo que ocurrira sera que el metodo reader.Close() nunca se llamara.
La solucion a este tipo de situaciones es utilizar el bloque finally.
Veamos como quedaria el ejemplo anterior:
TextReader reader = new StreamReader(filename);
try
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
finally
{
reader.Close();
}
En este nuevo codigo el metodo reader.Close() se ejecutara siempre, aun si ocurre una excepcion dentro del
while.
Octubre 8, 2007
Octubre 7, 2007
Convirtiendo tipos
Posted by gweisz under Quick HowTo
No Comments
Es comun que mientras estamos escribiendo un programa en algun punto del mismo debamos convertir tipos,
y muchas veces descubrimos que esta convercion no esta definida de forma implicita, por ejemplo: Convertir
string a int.
Para estas situaciones disponemos de la clase System.Convert. La misma posee todos los metodos necesario
para poder convertir tipos.
Ejemplo:
// Convirtiendo string a int.
using System;
MyString = Convert.ToString(entero);
String.Format
Toda aplicacin que maneje datos tiene que formatearlos. La clase String dispone del mtodo
Format que nos permite formatear una expresin de entrada.
No s vosotros, pero yo siempre olvido los formatos y como obtener los resultados de una u otra
forma. Navengando por ah encontre un sitio que mostraba de forma bastante clara los diferentes
formatos (http://idunno.org/archive/2004/14/01/122.aspx)
Lo que aqui vamos a hacer es ampliar un poco la informacin que se muestra en dicha pgina e
incluir algunos ejemplos.
example
output
String.Format("--{0,10}--", "test");
--
String.Format("--{0,-10}--", "test");
--test
/*
test---
/*
* Rellena con espacios en blanco por la derecha
* hasta diez posiciones
*/
Console.WriteLine("{0,-10} {1}", "Vaya", "Mundo");
Cuando utilizamos los formatos estandar para foramtear nmeros o fechas, lo que estamos
haciendo es emplear la configuracin que hayamos definido en el panel de control. Es
importante tener en cuenta que esta configuracin se lee del equipo que ejecuta la
aplicacion, no del que la visualiza - por ejemplo, una aplicacin web tomar los valores del
servidor no del cliente que accede a la pgina.
Ampliar Imagen]
[
Ampliar Imagen]
Una vez que sabemos a que nos referimos con formatos estandar, podemos entender la
siguiente tabla , que muestra los identificadores de formatos estandar.
specifier
type
output
output
(double 1.2345)
format
(int -12345)
currency
{0:c}
1.23
-12,345.00
decimal
(whole number)
{0:d}
System.FormatException
-12345
exponent / scientific
{0:e}
1.234500e+000
-1.234500e+004
fixed point
{0:f}
1.23
-12345.00
general
{0:g}
1.2345
-12345
number
{0:n}
1.23
-12,345.00
round trippable
{0:r}
1.23
System.FormatException
hexadecimal
{0:x4} System.FormatException
ffffcfc7
El siguiente ejemplo muestra como formatear un valor numrico con el especificador "c", de
currency (moneda).
/*
* Devuelve el formato moneda configurado en el panel de control
*/
/*
* En este ejemplo se formatea
la libra como
* simbolo de moneda
* */
CultureInfo ingles = new CultureInfo("en-GB");
string dato = String.Format(ingles,"Valor:{0:c}", 20);
Console.WriteLine(dato);
type
format
output
(double 1234.56)
zero placeholder
{0:00.000}
1234.560
digit placeholder
{0:#.##}
1234.56
{0:0.0}
1234.6
thousand separator
{0:0,0}
1,235
percentage
{0:0%}
123456%
/*
* Devuelve el nmero formateado con 4 ceros en la parte decimal
*/
/*
* Devuelve el primer nmero formateado con 4 ceros en la parte
* decimal y el segundo con dos.
*/
type
output
(June 8, 1970 12:30:59)
Short Date
08/06/1970
Long Date
08 June 1970
Short Time
12:30
Long Time
12:30:59
08/06/1970 12:30
08/06/1970 12:30:59
Day / Month
8 June
Sortable date/time
1970-06-08T12:30:59
1970-06-08 12:30:59Z
Month / Year
June 1970
El siguiente ejemplo muestra como formatear la fecha de hoy con formato de fecha larga completa,
"F".
/*
* Devuelve la fecha formateada en formato largo segn la
* configuracin del panel de control
*/
Del mismo modo podemos personalizar el formato de las fechas. La siguiente tabla muestra los
distintos formatos disponibles.
specifier
output
(June 8, 1970 12:30:59)
type
dd
Day
08
ddd
Mon
dddd
Monday
hh
2 digit hour
12
HH
12
mm
2 digit minute
30
MM
Month
06
MMM
Jun
MMMM
Month name
June
ss
seconds
59
tt
AM/PM
PM
yy
2 digit year
70
yyyy
4 digit year
1970
12:30:59
08/06/1970
/*
* Devuelve la fecha formateada en formato personalizado
*/