DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Revista MSDN Magazine Edição 15 - Chamada a todos os operadores

Artigo Originalmente Publicado na MSDN Magazine Edição 15

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

msdn15_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

Chamada a todos os operadores

por Ken Getz

Este artigo discute

Este artigo usa as seguintes tecnologias:

·          Dicas e truques com operadores

Visual Basic. Net e C#

 

Download:

 

Chapéu

Operadores

 

 

Este mês encontrei uma pergunta interessante em minha caixa de correio. Era algo assim: "Estou escrevendo um código que trabalha com pontos e outros objetos de desenho em Visual Basic® 2003 e quero apenas adicionar um deslocamento a um ponto, para movê-lo. Tentei acrescentar um Size a um Point, mas a coisa não compila. Tentei fazer a mesma coisa em C# e funcionou muito bem. O que está havendo?"

Para definir o contexto, vale a pena criar algum código no Visual Studio® .NET 2003 para ver qual será o comportamento, antes de tentar uma solução (se você tentar isso no Visual Studio 2005, as coisas serão ligeiramente diferentes). Abra o Visual Basic .NET 2003, crie um novo aplicativo do Windows®, coloque um botão sobre o formulário, dê um duplo clique para entrar no code designer e acrescente o seguinte código ao handler de evento de Click do botão:

 

Dim pt As New Point(0, 0)

pt += New Size(10, 10)

 

Ele não compila, não é? Só por diversão, experimente fazer a mesma coisa, mas dessa vez escrevendo o código em C#:

 

Point pt = new Point(0, 0);

pt += new Size(10, 10);

 

Compilou corretamente, não foi? Eu poderia falar muito sobre por que funciona em C# e por que não funciona em Visual Basic .NET, mas a coisa toda se resume a um pequeno problema de projeto: o Visual Basic 2002 e o Visual Basic 2003 não suportam operadores sobrecarregados. Essas linguagens não podem criar ou consumir operadores que foram sobrecarregados, ou seja, operadores que parecem comuns, mas que têm comportamentos fora do padrão, definidos por um dos operandos do operador.

Se você analisar um pouco, concordará que qualquer operador, até mesmo os operadores simples + e -  trabalhando com inteiros, são apenas uma convenções tipográficas para métodos. Por exemplo, ao somar dois inteiros, em vez de escrever o código desta maneira

 

Dim x As Integer = a + b

 

você poderia imaginar que, nos bastidores, o computador está gerando um código como este:

 

Dim x As Integer = Int32.Add(a, b)

 

Desde que o operador seja definido pelo compilador, o Visual Basic 2002 e o Visual Basic 2003 se dão bem com isso. Por exemplo, você já pensou em usar o operador + com strings? Embora a maioria dos desenvolvedores não escreva códigos como este, é perfeitamente aceitável e funciona muito bem: "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Ken Getz
Ken Getz (keng@mcwtech.com) é consultor-sênior da MCW Technologies. Ken é co-autor do ASP.NET Developer's Jumpstart (Addison-Wesley, 2002), Access Developer's Handbook (Sybex, 2001) e VBA Developer's Handbook, 2nd Edition (Sybex, 2001).
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03