27 de novembro de 2010

Linguagem de Programação: C#

Introdução à linguagem

C# ("cê charp") é uma linguagem de programação orientada a objetos, fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e Java. 
Ao ser desenvolvido a plataforma .NET, as bibliotecas foram escritas originalmente numa linguagem chamada Simple Managed C (SMC), que tinha um compilador próprio. Mas, em Janeiro de 1999, uma equipe de desenvolvimento foi formada por Anders Hejlsberg, que fora escolhido pela Microsoft para desenvolver a linguagem. Dá-se inicio à criação da linguagem chamada Cool. Um pouco mais tarde, em 2000, o projeto .NET era apresentado ao público na Professional Developers Conference (PDC), e a linguagem Cool fora renomeada e apresentada como C#.

A criação da linguagem, embora tenha sido feita por vários programadores, é atribuída principalmente a Anders, hoje um Distinguished Engineer na Microsoft. Ele fora o arquiteto de alguns compiladores da Borland, e entre suas criações mais conhecidas estão o Turbo Pascal e o Delphi

A plataforma .Net suporta outras linguagens de programação com VB.NET, J#, C++, Delphi for .NET entre outras, o que torna essa arquitetura produtiva e independente de linguagem, ou seja, o desenvolvimento pode escolher, dentre as linguagens disponíveis, a que mais agrada. Essa liberdade de escolha da linguagem de programação também aumenta a produtividade de um time de desenvolvimento, pois enquanto parte dos desenvolvedores estão construindo a interface gráfica em VB.NET um outro grupo pode estar desenvolvendo as classes de negócio com C#. 
Exemplo simples mostrando "Hello World": 
Por ser uma linguagem padronizada, a linguagem C# não se limita a ter apenas um fornecedor de IDE's. Várias empresas já estão distribuindo suas IDE's para C#, algumas de forma comercial, outras como OpenSouce ou simplesmente gratuitas. É possível inclusive desenvolver aplicações em C# apenas usando o bloco de notas e as ferramentas de linha de comando do Microsoft .NET FrameworkAlgumas das mais conhecidas são:
  • Microsoft Visual Studio .NET 2003;
  • Borland Delphi 2005;
  • ASP .NET WebMatrix;
  • #develop (SharpDevelop);
  • Eclipse for C#.


Em C#, é suportado através do uso de Generics (Framework 2.0 +), namespace System.Collections.Generic. Exemplo:
// Criando uma lista de Objetos:
List<Object> lstObject = new List<Object>();


Polimorfismo Universal Inclusão

Modela herança e subtipos. Permite a um objeto pertencer a várias classes simultaneamente, criando uma hierarquia de herança. Numa subclasse, um objeto pode ter um comportamento modificado com relação à classe original. Assim só ocorre em linguagens que permitem subtipo e herança. Uma instância de uma subclasse pode ser manipulada pelas mesmas funções que manipulam instâncias da superclasse. Em C# é suportado através de herança. 

Exemplo:
public class Carro { }
public class Ferrari : Carro {}
// Objeto Pai apontando para o Filho
Carro Ferrari = new Ferrari();

Polimorfismo Ad-hoc Sobrecarga:

É suportado através da sobrecarga de métodos, ou seja, consiste em utilizar o mesmo nome de um método com assinaturas diferentes. Permite que um mesmo nome denote diversas funções, de acordo com o contexto. Constitui apenas uma abreviação sintática (um preprocessamento pode atribuir nomes diferentes às diversas funções). Em C# é suportado através da sobrecarga de métodos. Exemplo:
public class Gasolina { }
public class Combustivel { }
public class Ferrari
{
public void Abastecer(Gasolina boa) { }
public void Abastecer(Combustivel bom) { }
}

Outro exemplo:
public abstract class Carro
{
public abstract bool acao();
}
public class Acelerar : Carro
{
public override bool acao()
{
Console.WriteLine("O Carro está acelerando.");
return true;
}
}
public class Frear : Carro
{
public override bool acao()
{
Console.WriteLine("O Carro está freando.");
return true;
}
}

Polimorfismo Ad-Hoc Coerção:

É suportado através da sobrecarga de operadores, ou seja, ocorre quando se converte um elemento de um tipo, no tipo apropriado para o método. Permite que um argumento seja convertido para o tipo esperado por uma função, evitando assim um erro de tipo. É uma operação semântica que reduz o tamanho do código (um compilador determina as conversões de tipo necessárias e as insere automaticamente). Em C# é suportado através da sobrecarga de operadores. 
Exemplo:
public class Elefante
{
private Int32 _peso;
public Int32 Peso
{
get { return this._peso; }
set { this._peso = value; }
}
public Elefante() { }
public Elefante(Int32 Peso)
{
this._peso = Peso;
}
public static Elefante operator ++(Elefante e)
{
return new Elefante(e.Peso + 1);
}
}
class Program
{
static void Main(string[] args)
{
Elefante e = new Elefante(10);
System.Console.WriteLine(e.Peso.ToString());
e++;
System.Console.WriteLine(e.Peso.ToString());
System.Console.ReadKey();
// @OUTPUT:
// 10
// 11
}
}






Referencias: linhadecodigo.com.br dowhile.com.br

0 comentários:

Postar um comentário

 
Design by @cleidimarviana | Bloggerized by Cleidimar Viana - Diário de Sistema