Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
66Activity
0 of .
Results for:
No results containing your search query
P. 1
Livro de .NET - Israel Aece

Livro de .NET - Israel Aece

Ratings: (0)|Views: 1,916|Likes:
Published by api-19969170

More info:

Published by: api-19969170 on Dec 03, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

Cap\u00edtulo 1 \u2013 Tipos de dados e Interfaces
1
Israel Aece|http://www.projetando.net
1
Capitulo 1
Tipos de dados e Interfaces
Introdu\u00e7\u00e3o

O .NET Framework 2.0 fornece uma por\u00e7\u00e3o de tipos predefinidos que s\u00e3o necess\u00e1rios para a cria\u00e7\u00e3o dos mais diversos tipos de aplica\u00e7\u00f5es que o mesmo fornece para n\u00f3s desenvolvedores. Esses tipos s\u00e3o utilizados constantemente nas aplica\u00e7\u00f5es, para armazenar valores, bem como uma estrutura extens\u00edvel para que voc\u00ea crie seus pr\u00f3prios tipos.

Neste cap\u00edtulo voc\u00ea entender\u00e1 como funciona a arquitetura de tipos do .NET Framework 2.0, ver\u00e1 tamb\u00e9m sobre os tipos intr\u00ednsicos dispon\u00edveis. Al\u00e9m disso, vamos abordar um assunto fortemente ligado aos tipos: tipos-valor e tipos-refer\u00eancia e, para complementar, analisaremos o boxing e unboxing, que \u00e9 um grande vil\u00e3o em termos de performance das aplica\u00e7\u00f5es .NET-based. Para finalizar a parte sobre tipos, temos ainda alguns tipos especiais que precisam ser examinados:Generics, Nullable Types,Exceptio ns e

Attributes.

Na segunda parte do cap\u00edtulo, vamos analisar asI nterfaces que s\u00e3o dispon\u00edveis dentro do .NET Framework 2.0 e tamb\u00e9m veremos como criar suas pr\u00f3prias Interfaces para utilizar no seu c\u00f3digo ou, se desejar, expor esta para que consumidores de seu componente consigam implement\u00e1-la, criando uma esp\u00e9cie de \u201ccontrato\u201d que teus componentes exigem para poderem trabalhar.

Examinando a arquitetura e os tipos
CTS \u2013 Common Type System

Como todos sabem, os tipos s\u00e3o pe\u00e7a fundamental em qualquer tipo de linguagem de programa\u00e7\u00e3o, seja para a cria\u00e7\u00e3o de componentes ou para tipos de aplica\u00e7\u00f5es que interajam com o usu\u00e1rio (Windows ou Web). Como a id\u00e9ia da Microsoft \u00e9 tornar tudo o mais integrado poss\u00edvel, ela criou uma especifica\u00e7\u00e3o de tipos chamada Common Type System (CTS), que descreve como os tipos s\u00e3o definidos e como se comportam.

Esses tipos s\u00e3o compartilhados entre todas as linguagens .NET. Sendo assim, voc\u00ea pode criar um componente em Visual C# e consumir este mesmo componente em uma aplica\u00e7\u00e3o cliente escrita em Visual Basic .NET sem nenhum problema, j\u00e1 que o tipo esperado ou o tipo a ser devolvido s\u00e3o de conhecimento de ambas. Voc\u00ea tamb\u00e9m ouvir\u00e1 o termo cross-language integration para essa mesma explica\u00e7\u00e3o.

Al\u00e9m disso, um outro ponto importante do CTS \u00e9 que tamb\u00e9m espec\u00edfica as regras de visibilidade de tipos para acesso aos membros do mesmo. Atualmente temos os seguintes modificadores de acesso dispon\u00edveis:

Cap\u00edtulo 1 \u2013 Tipos de dados e Interfaces
2
Israel Aece|http://www.projetando.net
2
Modificador VB.NETModificador C#
Descri\u00e7\u00e3o
Private
private
Pode ser acessado por outros m\u00e9todos
somente dentro do mesmo tipo (classe).
Protected
protected

Pode ser acessado por outros m\u00e9todos dentro do mesmo tipo e tamb\u00e9m por tipos derivados.

Friend
internal
Pode ser chamado de qualquer local desde
que seja dentro do mesmo Assembly.
Friend Protected

internal protected Pode ser acessado por outros m\u00e9todos dentro do mesmo tipo e tamb\u00e9m por tipos derivados dentro do mesmo Assembly.

Public
public
Pode ser chamado de qualquer local.

Para finalizar essa introdu\u00e7\u00e3o sobre o CTS, h\u00e1 ainda uma das principais e mais importantes regras definidas por ele: todos os tipos devem herdar direta ou indiretamente de um tipo predefinido:Syst e m.Object. Este \u00e9 a raiz de todos os tipos dentro do .NET Framework e, conseq\u00fcentemente, ser\u00e1 tamb\u00e9m a raiz para os tipos customizados por voc\u00ea dentro da sua aplica\u00e7\u00e3o e, sendo assim, ele fornece um conjunto m\u00ednimo de comportamentos:

\u2022
Representa\u00e7\u00e3o em uma string do estado do objeto
\u2022
Consultar o tipo verdadeiro da inst\u00e2ncia
\u2022
Extrair o c\u00f3digohash para a inst\u00e2ncia
\u2022
Comparar duas inst\u00e2ncias quanto \u00e0 igualdade
\u2022
Realizar uma c\u00f3pia da inst\u00e2ncia
CLS \u2013 Common Language Specification

Gra\u00e7as \u00e0 um ambiente de execu\u00e7\u00e3o comum e informa\u00e7\u00f5es em metadados, a CLR (Common Language Runtime) integra as linguagem e permitem que estas compartilhem os tipos criados em uma linguagem sejam tratado de forma igual na outra.

Essa integra\u00e7\u00e3o \u00e9 fant\u00e1stica, mas muitas linguagens s\u00e3o bem diferentes entre si, ou seja, algumas fazem distin\u00e7\u00e3o entre mai\u00fasculas e min\u00fasculas, outras n\u00e3o oferecem sobrecargas de operadores, etc.. Se algu\u00e9m desejar criar um determinado tipo que seja compat\u00edvel com qualquer outra linguagem .NET, voc\u00ea ter\u00e1 que utilizar somente os recursos que obrigatoriamente estejam tamb\u00e9m nas outras linguagens. Para isso, a Microsoft criou o Common Language Specification (CLS), que especifica o conjunto m\u00ednimo de recursos que devem ser suportados se desejam gerar c\u00f3digo para o CLR. Geralmente empresas que est\u00e3o criando seus compiladores para .NET, devem seguir rigorosamente estas especifica\u00e7\u00f5es.

Para assegurar que o componente que est\u00e1 desenvolvendo seja compat\u00edvel com qualquer
linguagem .NET, voc\u00ea pode incluir um atributo chmadoCLS Compliant no arquivo
AssemblyInfo que instrui o compilador a se certificar que um tipo p\u00fablico que est\u00e1 sendo
Cap\u00edtulo 1 \u2013 Tipos de dados e Interfaces
3
Israel Aece|http://www.projetando.net
3
disponibilizado n\u00e3o contenha nenhuma constru\u00e7\u00e3o que evite de ser acessado a partir de
outra linguagem. O c\u00f3digo abaixo exemplifica o uso deste atributo:
VB.NET
<Assembly:CLSCompliant(True)>
C#
[Assembly:CLSCompliant(true)]
Abaixo, a imagem ilustra o conjunto de tudo que vimos at\u00e9 o momento:
Imagem 1.1 \u2013 Uma exibi\u00e7\u00e3o em forma de conjunto para entermos a rela\u00e7\u00e3o entre elas.
Tipos fornecidos pelo .NET Framework

Dentro do .NET Framework 2.0, v\u00e1rias funcionalidades s\u00e3o encapsuladas dentro de objetos e estes, por sua vez, s\u00e3o inst\u00e2ncias de tipos fornecidos pelo sistema. O .NET Framework j\u00e1 traz internamente v\u00e1rios tipos predefinidos, quais s\u00e3o conhecidos como tipos b\u00e1sicos, ou base system types. Um exemplo t\u00edpico disso \u00e9 um controleButton. Internamente ele possui uma por\u00e7\u00e3o de membros que exp\u00f5em ou recebem tipos de dados como strings, inteiros, decimais ou at\u00e9 mesmo outros tipos/objetos.

H\u00e1 alguns tipos de dados que s\u00e3o muito comuns em v\u00e1rias linguagens de programa\u00e7\u00e3o. Podemos citar v\u00e1rios deles: inteiros, strings, doubles, etc.. S\u00e3o t\u00e3o comuns que grande parte dos compiladores permitem utilizarmos um c\u00f3digo que manipule esses tipos de

Activity (66)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Sergio C Castro liked this
Thiago Dorneles liked this
Sales Junior liked this
Sales Junior liked this
jow2323 liked this
Evandro Oliveira liked this
Yuming Yang liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->