Ao exibir informações de datas, valores numéricos, valores customizados como cpf, cnpj, cep, rg, entre outros, é importante definir uma formatação adequada ao valor. Existem formatos que o .net já possuí configuração pré-definida para se ajustar conforme a "cultura", conforme exemplos a seguir:
Especificador |
Tipo |
Formato |
Saída (Ex.: Tipo double 1.2345) |
Saída (Ex.: Tipo int -12345) |
c | Currency (Moeda) | {0:c} | £1.23 | -£12,345.00 |
d | Decimal | {0:d} | System.FormatException | -12345 |
e | Exponencial / Formatação científica | {0:e} | 1.234500e+000 | -1.234500e+004 |
f | Ponto fixo | {0:f} | 1.23 | -12345.00 |
g | Generalizada | {0:g} | 1.2345 | -12345 |
n | Numérica | {0:n} | 1.23 | -12,345.00 |
r | Arredondado | {0:r} | 1.23 | System.FormatException |
x | Hexadecimal | {0:x4} | System.FormatException | ffffcfc7 |
Especificador |
Tipo |
Formato |
Saída (Ex.: Tipo double 1234.56) |
0 | Completar com zeros | {0:00.000} | 1234.560 |
# | Máscarar um número | {0:#.##} | 1234.56 |
. | Posicionar o separador de decimal | {0:0.0} | 1234.6 |
, | Posicionar o separador de milhar | {0:0,0} | 1,235 |
% | Porcentagem | {0:0%} | 123456% |
Especificador |
Tipo |
Saída (Ex.: 19 de Setembro de 1980 14:30:59) |
d | Data curta | 19/09/1980 |
D | Data long | 19 Setembro 1980 |
t | Hora Curta | 14:30 |
T | Hora Longa | 14:30:59 |
f | Data e Hora | 19 Setembro 1980 14:30 |
F | Data e Hora completo | 19 Setembro 1980 14:30:59 |
g | Data de Hora padrão | 19/09/1980 14:30 |
G | Data de Hora padrão longo | 19/09/1980 14:30:59 |
M | Dia / Mês | 19 Setembro |
r | RFC1123 date string | Sex, 19 Set 1980 14:30:59 GMT |
s | Sortable data/hora | 1980-09-19T14:30:59 |
u | Hora Universal, Timezone local | 1980-09-19 14:30:59Z |
Y | Mês / Ano | Setembro 1980 |
Especificador | Tipo | Saída (Ex.: Setembro 19, 1980 14:30:59) |
dd | Dia | 19 |
ddd | Nome curto do dia | Sex |
dddd | Nome completo do dia | Sexta-feira |
hh | 2 dígitos para a hora | 02 |
HH | 2 dígitos para a hora (24 horas) | 14 |
mm | 2 dígitos para o minuto | 30 |
MM | Mês | 09 |
MMM | Nome curto do Mês | Set |
MMMM | Nome do Mês | Setembro |
ss | Segundos | 59 |
tt | AM/PM | PM |
yy | 2 dígitos do Ano | 80 |
yyyy | 4 dígitos do Ano | 1980 |
: | Separador, ex. {0:hh:mm:ss} | 14:30:59 |
/ | Seperator, ex. {0:dd/MM/yyyy} | 08/06/1970 |
No desenvolvimento de ferramentas que serão reutilizadas, como frameworks, é comum haver métodos, propriedades, classes, etc, que deixem de ser válidas e passem a não ser mais utilizadas, seja por mudanças na lógica, ou por qualquer motivo. Nessas situações dispomos de um atributo do .NET framework, que torna obsoleto o elemento, podendo deixá-lo ainda com possibilidade de uso ou não. No exemplo abaixo pode-se ver um método obsoleto:
[Obsolete("Esse método é obsoleto, utilize o método Y")]
public void X()
{
[...]
}
[Obsolete("Esse método é obsoleto, utilize o método Y", true)]
public void X()
{
[...]
}
Para quem está começando ou até mesmo já utiliza LINQ nos seus projetos aqui vai uma lista com 101 exemplos de operações com LINQ. É bem provável que aquela sua dúvida possa estar aqui.
Para quem está desenvolvendo ou quer desenvolver um projeto utilizando o SQL Server Compact 3.5, saiba que existe uma falha relacionada ao comportamento identity em colunas das tabelas da base da dados. Uma alternativa para solucionar isto é não definir na base de dados as colunas como identity e criar um controle externo para índice dos registros. Uma forma de controlar os índices das tabelas é consultando o ultimo índice adicionado, claro que não funcionará como o identity normal, que define o índice baseando-se em um contador, mas funcionará muito bem e permitira o uso da base de dados. Abaixo vemos a implementação desta solução:
public static class ExtensionMethods
{
public static TResult NextId(this ObjectSet table, Expression> selector)
where TSource : class
{
TResult lastId = table.Any() ? table.Max(selector) : default(TResult);
if (lastId is int)
{
lastId = (TResult)(object)(((int)(object)lastId) + 1);
}
return lastId;
}
}
using (DBEntities contexto = new DBEntities())
{
// cria aluno define um novo objeto aluno
Aluno aluno = new Aluno() {
contexto.Aluno.NextId(a => a.Id),
Nome = "João Felipe Portela" };
// adiciona a lista de alunos
contexto.AddToAluno(aluno);
// salva as alterações
contexto.SaveChanges();
}
Desenvolver aplicações que manipulem arquivos do Microsoft Word utilizando .net Framework é muito simples. Neste artigo mostrarei sem entrar em muitos detalhes o que é necessário fazer para que uma aplicação desenvolvida utilizando o .net Framework alimente um documento Word. Importante ressaltar que utilizarei da forma mais básica para atingir este propósito, podendo haver rotinas mais complexas para criação de documentos com as mais variadas tecnologias suportadas pelo aplicativo.
Microsoft.Office.Interop.Word
using Word = Microsoft.Office.Interop.Word;
// Cria a varável do tipo Missing
object missing = System.Reflection.Missing.Value;
// Cria a variável da aplicação Word
Word.Application wordApp = new Word.ApplicationClass();
// Cria e define as demais variáveis
object readOnly = false;
object isVisible = false;
object fileName = @"c:\texto.doc";
object saveAs = @"c:\novo_texto.doc";
// Define o Word como não visivel
wordApp.Visible = false;
// Cria um objeto Documento Word baseado em um arquivo existente
Word.Document doc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
// Ativa o documento
doc.Activate();
// Acrescenta informações no inicio do documento
doc.Content.InsertBefore("Conversando com o Microsoft Word!\r\n\r\n");
// Acrescenta informações no fim do documento
doc.Content.InsertAfter("\r\n\r\nEstá é uma aplicação que utiliza tecnologia Microsoft.");
// Salva o documento do Word com o novo nome
doc.SaveAs(ref saveAs, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
// Fecha o documento Word
doc.Close(ref missing, ref missing, ref missing);
© João Felipe Borges Portela 2010-2018. | Entrar