Arquivos do Blog
Mais Exemplos Práticos: Métodos e Propriedades da Struct DateTime – Parte 3
Olá pessoal, neste artigo finalizaremos a série de artigos criando mais alguns exemplos práticos com a struct DateTime. Acompanhem:
Se você não viu as outras partes desta série de artigos, clique aqui.
Parecido com o método que retorna quantos dias tem em cada mês do ano, criado no artigo anterior, vamos criar um método que retorna o nome do mês atual, e que espera o número do mês como parâmetro.
A Listagem 01 exibe este método.
Listagem 01 – Método RetornaMes
Propriedades e Exemplos: Métodos e Propriedades da Struct DateTime – Parte 2
Olá pessoal, neste artigo veremos as propriedades da struct (estrutura) DateTime e criaremos alguns exemplos práticos. Acompanhem:
Se você não viu a parte 1 desta série de artigos, clique aqui.
A struct DateTime conta com 16 propriedades, 3 estáticas. Abaixo é listado 12 delas.
- Now, Today e Date – As 2 primeiras propriedades são estáticas (não necessitam de instanciação) e retornam, respectivamente, a data e hora exata, no momento em que a mesma for chamada, e o dia de hoje. A 3ª faz o mesmo que a propriedade Today, a diferença é que ela precisa ser instanciada pra ser utilizada.
- Day, DayOfWeek e DayOfYear – Como os nomes sugerem, estas propriedades retornam, respectivamente, o dia atual, o dia da semana (em inglês, é claro) e o dia do ano. Fazendo um teste com o dia em que este artigo foi feito, foram retornados, dia 08, dia da semana Wednesday e dia do ano 39.
- Hour, Minute, Second e Millisecond – Retornam, respectivamente, a hora, o minuto, o segundo e os milisegundos no momento em que as propriedades são executadas.
- Month e Year – Retornam o mês e ano atual.
Agora crie um projeto Console Application e adicione a ele uma classe, que conterá os métodos que faremos abaixo.
Na classe crie um método para retornar o número de dias do mês, de acordo com o mês passado no parâmetro, como ilustrado pela Listagem 01.
Conceitos e Métodos: Métodos e Propriedades da Struct DateTime – Parte 1
Olá pessoal, nesta série de artigos veremos uma abordagem detalhada com os métodos e propriedades da struct (estrutura) DateTime, e aplicaremos o que for aprendido em exemplos práticos. Acompanhem:
Introdução – A struct DateTime, do namespace System, do .NET Framework é constantemente utilizada por desenvolvedores (lembrando que, como ela é uma struct, também é usada como um tipo de dado).
Se você não conhece o que é uma struct recomendo fortemente a leitura dos dois artigos postados sobre o assunto, no link acima.
Esta struct conta com dezenas de objetos para manipular valores relacionados a datas e horas, como é bem explicado pela documentação oficial da MSDN. Veremos neste artigo os principais e de uso comum pelos desenvolvedores no dia-a-dia.
Começando pelos construtores, quando instanciamos a struct temos nada menos que 12 sobrecargas nela (a 1ª vazia, por padrão), as quais podem ser vistas em detalhes neste link.
Conceitos Finais e Exemplo Prático – Structs: Estrutura da Linguagem – Parte 2
Olá pessoal, neste artigo veremos mais alguns conceitos e criaremos um exemplo prático com Structs. Acompanhem:
Diferenças entre Classes e Structs – Apesar de serem muito parecidas sintaticamente, as classes e structs apresentam algumas diferenças, como descrito a seguir:
- Uma struct não pode ser herdada de uma classe base, ao contrário de uma classe;
- Em uma classe o compilador cria o construtor padrão no caso de não termos criado um construtor próprio. Já a struct não aceita a declaração de um construtor padrão, ou seja, um construtor que não tenha parâmetros. Isso porque o compilador sempre cria um construtor;
- Usando struct não podemos inicializar campos de instância em seu ponto de declaração, o que é possível nas classes. Qualquer struct tem como regra inicializar todos os seus campos em todos os seus construtores;
- A struct apresenta um construtor padrão (já mencionado anteriormente) criada pelo compilador, que sempre aplica os valores false, 0 ou null (dependendo do seu tipo) para os campos, como ocorre nas classes, mais os quais devemos tomar muito cuidado para que façam sentido e se comportem logicamente em relação ao valor da struct criado pelo construtor.
Falando especificamente da última diferença apresentada acima, podemos optar por não usar os valores padrões que o compilador atribui inicialmente. Neste caso, podemos criar um construtor que não é padrão se inicializarmos os campos com valores diferentes, considerando sempre que todos os campos em todos os construtores da struct devem ser inicializados de forma explícita, já que o compilador por si só não inicializará um campo no construtor.
Chega de conceitos e vamos à prática. Veja na Listagem 01 um exemplo do uso da Struct com datas, representando os campos dia, mês e ano:
Conceitos e Sintaxe – Structs: Estrutura da Linguagem – Parte 1
Olá pessoal, neste artigo veremos os principais conceitos das Structs. Acompanhem:
A carga para gerenciar o heap (pilha, local especial da memória) pode tornar-se desproporcional em situações nas quais uma classe possui uma quantidade muito pequena de dados. Se assim for, é aconselhável definir o tipo como estrutura ao invés de classe. Desta forma, a carga de gerenciamento de memória é reduzida frequentemente, já que as estruturas são armazenadas na pilha.
Dito isto, podemos afirmar que Structs é uma estrutura de um determinado tipo. No C#, os tipos numéricos primitivos float, long e int são apelidos de estruturas. O long, por exemplo, é um apelido para System.Int64.
Segundo a documentação do Visual Studio 2010, “é um tipo por valor que é normalmente usado para encapsular pequenos grupos de variáveis relacionadas, como características de uma pessoa, por exemplo.” (tradução livre). Ainda segundo a documentação, Structs podem conter construtores, constantes, campos, métodos, propriedades, indexadores, operadores, eventos e tipos aninhados.
É importante dizer que o uso de diversos operadores comuns em nossos próprios tipos de estrutura, por padrão, não é possível.


