Blog do TreinaWeb
Dicas, notícias e informações sobre cursos, programação, webstandards e desenvolvimento web.Posts com a Tag ‘C#’
-
Formatando data e hora no .NET
7 de junho de 2010
Hoje faremos um Post diferente, daremos uma dica de como formatar datas e horas no .NET, isto porque a dica funciona tanto para o C#, quanto para o VB.NET.
As vezes necessitamos formatar as datas para serem exibidos na tela, o que poucas pessoas sabem é que a classe DateTime se adapta para este tipo de situação.
Abaixo temos uma lista das funcionalidades da classe:
DateTime.Now.ToString(); Exibe data e hora DateTime.Now.ToShortTimeString(); Exibe hora sem os segundos DateTime.Now.ToShortDateString(); Exibe a data com barras DateTime.Now.ToLongTimeString(); Exibe as horas, minutos e segundos DateTime.Now.ToLongDateString(); Exibe a data em modo extensor Em alguns casos específicos precisamos customizar a data e a hora para serem exibidos e para isto formatamos a saída com o método ToString(). Abaixo temos alguns exemplos:
DateTime.Now.ToString(“d”); 2/6/2010 DateTime.Now.ToString(“D”); quarta-feira, 2 de junho de 2010 DateTime.Now.ToString(“f”); quarta-feira, 2 de junho de 2010 15:24 vDateTime.Now.ToString(“F”); quarta-feira, 2 de junho de 2010 15:24:18 DateTime.Now.ToString(“g”); 2/6/2010 15:24 DateTime.Now.ToString(“G”); 2/6/2010 15:24:48 DateTime.Now.ToString(“m”); 02 de junho DateTime.Now.ToString(“r”); Wed, 02 Jun 2010 15:26:07 GMT DateTime.Now.ToString(“s”); 2010-06-02T15:26:20 DateTime.Now.ToString(“t”); 15:26 DateTime.Now.ToString(“T”); 15:26:40 DateTime.Now.ToString(“u”); 2010-06-02 15:26:51Z DateTime.Now.ToString(“U”); quarta-feira, 2 de junho de 2010 18:26:59 DateTime.Now.ToString(“y”); junho de 2010 DateTime.Now.ToString(“dddd, MMMM dd yyyy”); quarta-feira, junho 02 2010 DateTime.Now.ToString(“ddd, MMM d “‘”yy”); qua, jun 02 10 DateTime.Now.ToString(“dddd, MMMM dd”); quarta-feira, junho 02 DateTime.Now.ToString(“MM/yy”); 06/10 DateTime.Now.ToString(“dd/MM/yy”); 02/06/10 Podemos implementar estes exemplos no Windows Form, quanto no Web Form.
Fonte: Ediberto Alves
-
Métodos Asc e Chr no C#
20 de maio de 2009
Hoje faremos um artigo pequeno, porque estamos pensando em mudar algumas coisas, então aguardem novidades =)
Para aqueles que desenvolviam no VB6, Delphi ou qualquer linguagem desktop que utilizava os métodos Asc e Chr, e sentiram falta destas funções no C#. Seus problemas acabaram !!!
Mostraremos como criar estes métodos no C#.
public char Chr(int codigo) { return (char)codigo; } public int Asc(string letra) { return (int)(Convert.ToChar(letra)); }
Os métodos acima fazem a mesma coisa que os métodos originais.
Até a próxima!
-
Capitalizar Strings no C#
18 de maio de 2009
Hoje mostraremos uma dica útil para quem precisa ter palavras capitalizadas no C#.
Como no C# não existe uma função para fazer isto, é necessário criar um método que irá capitalizar nossas strings, ou seja, irá converter para maiúscula os primeiros caracteres de cada palavra. Pode ser usado em nome de formulários, por exemplo.
Primeiro método
private string CapitalizeWords(string value) { if (value == null) throw new ArgumentNullException("value"); if (value.Length == 0) return value; System.Text.StringBuilder result = new System.Text.StringBuilder(value); result[0] = char.ToUpper(result[0]); for (int i = 1; i < result.Length; ++i) { if (char.IsWhiteSpace(result[i - 1])) { result[i] = char.ToUpper(result[i]); } } return result.ToString(); }
Segundo método
private string CapitalizeWordsCulture(string value) { return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(value); }
Os dois métodos fazem exatamente a mesma coisa, sendo que o segundo método é melhor por ser menor (rimou =).
Bom proveito e até a próxima!
-
Código obsoleto em .NET
7 de maio de 2009
Quem trabalha ou já trabalhou em projetos de grande porte ou mesmo em projetos que duram longos períodos, certamente já encontrou algum trecho de código ou função antiga, que não tem mais utilidade para as novas funcionalidades do sistema. No entanto aquele estagiário que chegou agora não sabe disto e insiste em usar a função antiga (sempre o estagiário). Você já deve ter pensando em algumas formas de evitar isto! Mas você sabia que este é um recurso da própria plataforma .NET? Não? Então acompanhe abaixo:
No .NET existe o atributo Obsolete, que adiciona uma marcação na classe para tornar um código obsoleto, e informa ao programador estagiário, qual novo código deverá ser usado.
Veja o exemplo:
[Obsolete ("Utilize pesquisaUsuarios()")] public DataSet listaUsuarios() { //Código antigo return new DataSet(); } public DataSet pesquisaUsuarios() { //Código novo return new DataSet(); }
Quando o programador for utilizar o método listaUsuarios(), ele será avisado que o método é obsoleto e que pode usar o método pesquisaUsuarios() como alternativa.
Mas caso o programador seja um noob e continuar utilizando o método antigo, você pode forçá-lo a usar o novo método.
[Obsolete ("Utilize pesquisaUsuarios()", true)] public DataSet listaUsuarios() { //Código antigo return new DataSet(); } public DataSet pesquisaUsuarios() { //Código novo return new DataSet(); }
Note que agora, passamos como parâmetro o boleano true, neste caso, quando o noob programador for utilizar o método antigo aparecerá uma mensagem de erro, com isto ele será obrigado a usar o novo método.
Isto pode ser um pouco radical, mas facilita a manutenção do código e mantém tudo sempre atualizado.
Até a próxima.
-
Criando miniaturas em C#
30 de abril de 2009
Hoje mostraremos um exemplo simples e muito útil para criar miniaturas de imagens, conhecidas também como Thumbnails.
A função abaixo é responsável por todo este processo de miniaturização das imagens, ela recebe como parâmetro, o caminho da imagem, a largura e o tamanho.
public void thumbnail(String img, int width, int height) { // O caminho da imagem virá da variavel img // As medidas p/ miniatura virão da variavel width e height // cria o object imagem com o nome e camimho completo do arquivo System.Drawing.Image image = System.Drawing.Image.FromFile(img); // cria o thumbnail do object image, definindo sua altura e largura de acordo com os parâmetros System.Drawing.Image thumbnailImage = image.GetThumbnailImage(width, height, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero); // cria a memory stream dos bytes da imagem MemoryStream imageStream = new MemoryStream(); // coloca a imagem na memory stream thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg); // cria um array de bytes com o tamanho da imagem byte[] imageContent = new Byte[imageStream.Length]; // rebobina a memory stream imageStream.Position = 0; // carrega o array de bytes com a imagem imageStream.Read(imageContent, 0, (int)imageStream.Length); // modifica o cabeçalho "content-type" da página para "image/jpeg" e imprime a imagem. Response.ContentType = "image/jpeg"; Response.BinaryWrite(imageContent); } //função complementar public bool ThumbnailCallback() { return true; }
Note que você pode definir a largura e a altura da imagem, então também é possível ampliar as imagens, mas lembre-se que nestes casos a imagem pode perder qualidade.
Por hoje é isso, até a próxima.
-
Diretrizes de programação
22 de abril de 2009
Hoje falaremos de um item muito importante para quem é programador ou para quem quer ser um programador, que é Guidelines ou simplesmente diretrizes de programação.
As diretrizes de programação são regras que você deve seguir quando está desenvolvendo para deixar seu código mais legível e facilitar a vida de quem futuramente for dar manutenção no seu código.
PascalCasing
Propriedades e métodos devem seguir a convenção PascalCasing, onde a primeira letra de cada palavra é maiúscula.Exemplo:

CamelCasing
Já os parâmetros e variáveis deve seguir a convenção CamelCasing, onde a primeira letra da primeira palavra deve ser minúscula e das demais palavras devem ser maiúsculas.Exemplo:

Veja que tanto as variáveis e o parâmetro da função estão seguindo as regras do CamelCasing.
Verbos
Segundo as diretrizes de programação todos os métodos devem iniciar com verbos, por exemplo: use Add, se o método for adicionar algo; Set, se for atribuir; e Get, se for pegar algo.Exemplo:

Também é indicado que propriedades booleanas devem ser iniciadas com Has, Can ou Is.
Exemplo:

Uma coisa que vocês devem ter reparado é outra indicação, ou seja, sempre renomeie os métodos, propriedades, variáveis, enfim todos os nomes devem estar em inglês, por que se um nerd chinês outro funcionário ver o seu código, conseguirá dar manutenção nele.
Estas são apenas algumas diretrizes de nomenclatura que devem ser aplicadas para qualquer linguagem. E estas regrinhas simples deixam um código mais legível e fácil de entender.
Sempre utilizem estas regras, quem for dar manutenção no seu código agradece. Até a próxima!