C# Iniciante – Short Circuiting

Abril 12, 2009 at 8:00 am (C#, Programação) (, , , , , , )

 

Uma técnica interessante que o C# utiliza é o short circuiting (curto circuito), que significa que se parte de uma declaração é todo verdadeiro ou falso, não há nenhuma necessidade de processar o resto da declaração.

Vamos à prática para entender melhor, analise o código abaixo:

int valor1 = 60;
int valor2 = 10;
int valor3 = 35;
if ((valor1 > valor2) || (valor2 < valor3))
    Response.Write("Verdadeiro");
else
    Response.Write("False");

if ((valor2 > valor3) && (valor1 > valor2))
    Response.Write("Verdadeiro");
else
    Response.Write("False");

Primeira verificação: Neste caso, como o valor1 é maior que o valor2 e o operador lógico condicional utilizado é o OR (||), sem mesmo verificar a segunda instrução o resultado desta verificação é verdadeiro.

Segunda verificação: Neste caso, como o valor2 é menor que o valor3 e o operador lógico condicional utilizado é o AND (&&), sem mesmo verificar a segunda instrução o resultado desta verificação é falso.

Projetando bem as expressões que usam os operadores lógicos condicionais, você poderá aumentar o desempenho do seu código evitando trabalho desnecessário. Coloque expressões booleanas simples que possam ser avaliadas facilmente no lado esquerdo de um operador lógico condicional e coloque as expressões mais complexas no lado direito. Com isso, em muitos casos as expressões mais complexas não são avaliadas por não ser necessária.

Link Permanente Deixe um comentário

Orientação Objetos – Comparação de objetos

Março 27, 2009 at 5:09 pm (C#, Programação) (, , , )

Imagine as seguintes instruções:

Carro meuCarro = new Carro("Corsa");
Carro carroVizinho = new Carro("Corsa");

Temos dois objetos do tipo Carro (meuCarro e carroVizinho), como estamos passando o mesmo valor (Corsa) ao instanciar os objetos, imaginamos são dois objetos iguais, ou seja, que se tratam do mesmo carro (Corsa)….

Ao comparar este dois objetos o resultado será verdadeiro ou falso?

MessageBox.Show(Convert.ToString(meuCarro == carroVizinho));

O resultado será falso!!!

A igualdade entre objetos é verdadeira somente se forem a mesma instância e não se tiverem os mesmos dados.

Link Permanente Deixe um comentário

Gráficos no .NET

Março 22, 2009 at 5:04 pm (C#, Programação) (, , )

Algo que sempre senti falta foi de componentes (free) para implementação de gráficos, desde VB 6 até o .NET, não tinhamos componentes gratuítos disponibilizados pela Microsoft para a construção de gráficos, digo não tinhamos pois, recentemente a Microsoft lançou o “Microsoft Charting Control”.

Agora, com este componente conseguimos construir os mais variados tipos de gráficos para nossas aplicações, tanto em WinForms como WebForms.

Gerado pelo Charting Control
Exemplo de gráfico gerado pelo Charting Control

Você consegue utilizar este novo componente somente com o Framework 3.5 SP1 e através do Visual Studio 2008 SP1.

Para começar a construir gráficos em sua aplicação, baixe:
Além disso, a Microsoft também disponibilizou:
Código de exemplos (WinForms e WebForms)
 
Após a instalação do componente e do Add-on, você terá no Toolbox do VS 2008, na tab “Data”, o componente “Chart”, dai para frente é só arrastar para o seu formulário e começar a codificar.
 
 

Link Permanente Deixe um comentário

Teclas de atalho do Visual Studio 2008

Novembro 29, 2008 at 3:40 pm (C#, Programação) (, , , , , )

Aumente sua produtividade, baixe o poster com as teclas de atalho do Visual Studio 2008

Atalhos VS 2008 C# Visual C# 2008

Visual Basic 2008

Link Permanente Deixe um comentário

C# 3.0 – Novidade: Propriedades automáticas

Agosto 3, 2008 at 5:00 am (C#, Programação) (, , , , , , , , , , )

Antes da versão 3.0 do C#, para definir as propriedades de uma classe qualquer, era necessário declarar um atributo e uma propriedade com seu get e set, exemplo:~

private string _nome;
public string nome
{
     get { return _nome; }
     set { _nome = value; }
}

Agora, no C# 3.0, resolvemos esta questão com uma única linha de código, sem a necessidade da declaração do atributo, nem dos blocos get e set.

Veja o exemplo a seguir:

public string nome { get; set; }

Link Permanente Deixe um comentário

C# 3.0 – Novidade: Tipagem implícita

Julho 31, 2008 at 5:00 am (C#, Programação) (, , , , , , , , , , )

Um novidade do C# 3.0 é a tipagem implícita.

Para isso, foi introduzido um novo operador “var” na linguagem, com este novo “operador”, você pode 
criar variáveis sem definir explicitamente o seu tipo.

O tipo será definido de acordo com a expressão utilizada para inicializar a variável, neste caso, a variável continua sendo declarada como uma variável fortemente tipada.

Para garantir que uma variável criada com o var seja fortemente tipada, você precisa sempre iniciá-la na mesma linha da declaração da variável, e o inicializador da variável precisa ser uma expressão, e não um objeto ou um valor nulo.

A tipagem implícita é fundamental para a utilização dos tipos anônimos.

Veja dois exemplos abaixo:

var minhaVariavel = 89;     //Variavel fortemente tipada do tipo Int
var meuArray = new[] {"Banana","Laranja","Abacate"}; //Variável Array fortemente tipada do tipo String

 

Link Permanente Deixe um comentário

Namespace (.NET) e Package (Java)

Julho 29, 2008 at 5:00 am (C#, Java, Programação) (, , , , , , , )

À medida que um programa cresce, temos alguns problemas como por exemplo: muito código é mais difícil de entender e manter; mais código normalmente significa mais nomes, mais dados nomeados, mais métodos nomeados e mais classes nomeadas. à medida que o número de nomes aumenta, aumentam também as chances da compilação do projeto falhar porque dois ou mais nomes estão em conflito.

Antigamente, os programadores tentavam resolver o conflito pré-fixando os nomes com algum tipo de qualificador. Essa solução não é boa porque não é escalável, os nomes tornam-se maiores e você gasta menos tempo escrevendo o software e mais tempo digitando e lendo e relendo nomes longos e incompreensíveis.

Para resolver este problema, tanto no .NET quanto no Java, podemos criar um “contêiner” nomeado, desta forma duas classes com o mesmo nome não serão confundidas entre si se elas estiverem em “contêiners” diferentes. É uma boa prática definir todas as suas classes em “contêiners”.

Os contêiners podem ser utilizados tanto no .NET quanto no Java, no .NET chamamos de “namespaces” e no Java chamamos de “packages” (pacotes).

Conceitualmente não existem diferenças entre as duas linguagens, porém, sintaticamente existem diferenças, mas nada que não seja de fácil assimilação. Veja:

  • Em Java, um package representa fisicamente uma pasta (ou diretório para os puristas);
  • Em .NET um namespace não está relacionado a uma pasta. É possível ter uma pasta com um nome e dentro desta pasta, classes que pertençam a um namespace com outro nome, ou ainda, em uma pasta é possível existirem classes com namespaces diferente.  

Exemplo .NET:

namespace Financeiro
{
     class Calculo
     {
           ……
     }
}

namespace Estoque
{
     class Calculo
     {
           ……
     }
}

Exemplo Java:

package br.com.meusistema.financeiro;
public class calculo {
     …….
}

package br.com.meusistema.estoque;
public class calculo {
     …….
}

Nos dois exemplos acima (.NET e Java), conseguimos ter duas classes com o mesmo nome, porém em contêiners diferentes dentro do mesmo sistema.

.NET
     Financeiro.calculo
     Estoque.calculo

Java
    br.com.meusistema.financeiro.calculo
    br.com.meusistema.estoque.calculo

Link Permanente Deixe um comentário

WebDays Developers 2008

Julho 27, 2008 at 1:21 pm (Programação) (, , , , , , , , , , , )

Quer conhecer as principais novidades das tecnologias Java e .NET? Então você não pode perder o evento “WebDays Developers 2008″, realizado pelo grupo DevMedia.

O evento ocorrerá entre os dias 22 e 23 de Agosto/2008 (sexta e sábado), em São Paulo e dentre as diversas palestras:

  • Silverlight 2.0
  • O que há de novo no ASP.NET 3.5
  • ASP.NET Dynamic Data
  • Ajax para Mobile
  • Java FX: Desvendando mais uma tecnologia Java
  • Programação 2.0 com Ruby on Rails
  • NetBeans 6
  • Framework Ajax
  • Explorando o Jboss

O evento é pago, se for tudo aquilo que os patrocinadores prometem, o valor compensa (até 01/08/2008 R$ 460,00 para 1 ingresso – dividem em 6x no cartão de crédito!!!).

Para entusiastas, iniciantes, intermediários e avançados, seja em .NET ou Java, vale a pena participar de um evento que abrange as duas principais tecnologias para desenvolvimento do momento.

Para quem quiser conhecer mais sobre o evento, acesse o WebSite: http://www.devmedia.com.br/webdays2008/index.html

Link Permanente Deixe um comentário