Soluções        Serviços          Atendimento       Governo        Consultoria T.I      Treinamento

Software


C♯
Paradigma Orientação a objetos
estruturado
imperativo
Surgido em 2001
Última versão 4.0 (12 de abril de 2010)
Criado por Microsoft
Estilo de tipagem: estática e dinâmica, forte, segura e insegura
Compiladores .NET Framework, Mono, DotGNU
Dialetos:
Influenciada por Java,[1] C++, Eiffel, Modula-3, Object Pascal[2]
Influenciou D, F♯, Fantom, Java 5,[3] Nemerle, Vala
Licença: Domínio público / CLR Proprietária
Página oficial msdn.microsoft.com

C♯, também escrito como C# ou C Sharp (em português lê-se "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.

Índice

  • 1 História
  • 2 Etimologia
  • 3 Características
    • 3.1 Passagem de parâmetros
  • 4 Exemplos de código
  • 5 Bibliotecas
  • 6 Política
  • 7 Referências
  • 8 Ver também
  • 9 Ligações externas

História

Durante o desenvolvimento da 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 Microsoft submeteu o C# à ECMA para uma padronização formal. Em Dezembro de 2001 a associação liberou a especificação ECMA-334 Especificação da Linguagem C#. Em 2003 tornou-se um padrão ISO (ISO/IEC 23270). Há algumas implementações em desenvolvimento, destacando-se a Mono, implementação open source da Novell, o dotGNU e o Portable.NET, implementações da Free Software Foundation, e o BDS 2008, implementação da CodeGear.

A Microsoft anunciou planos de adicionar o suporte a tipos parciais, generics e outras características. A padronização pela ECMA/ISO destas características foi solicitada, mas ainda não são parte da versão padrão da linguagem.

Etimologia

A nota dó sustenido em clave de sol

Pensava-se que o nome C# viria duma sobreposição de quatro símbolos +, dando a impressão de ++++, uma alusão à continuação do C++. Entretanto, o # de C# se refere ao sinal musical sustenido (♯), pronunciado sharp em inglês, que aumenta em meio tom uma nota musical.[4]

Porém, devido a limitações técnicas (fontes padrões, navegadores, etc) e o fato do símbolo do sustenido (♯) não estar presente nos teclados, o cerquilha (#) foi escolhido para ser usado no nome escrito.[5] Essa convenção é refletida no ECMA-334 C# Language Specification, a especificação técnica da linguagem.[6] Entretanto, em determinados lugares, como em propagandas e capas de livros, é usado o símbolo sustenido.[7]

Características

A linguagem suporta ponteiros através da palavra reservada unsafe (código não-seguro), que é obrigatório. Seu uso não é aconselhável, e blocos de códigos que o usam geralmente requisitam permissões mais altas de segurança para poderem ser executados. As operações aritméticas são verificadas contra transbordamento de dados. C# também suporta as operações aritméticas básicas como adição, subtracção, multiplicação e divisão. Esses símbolos são chamados operadores, e "operam" os valores das variáveis.

Um coletor de lixo também é suportado, um processo usado para a manutenção de memória. Com este recurso, é possível recuperar a zona de memória que um programa já não utiliza. Quando isto não ocorre pode acontecer a chamada perda de memória, um erro comum que pode levar ao término não desejado do programa em execução por esgotamento da memória livre.

Em C# não existe herança múltipla, ou seja, cada classe só pode herdar apenas uma outra classe e não mais do que uma, no entanto é possível simular herança múltipla utilizando interfaces. Assim, através da herança reduzimos código através da sua reutilização.

Os gabaritos não são suportados, mas a linguagem possui um suporte abrangente a generics. Nela podem se usar tipos genéricos para a maximização da reutilização de código, segurança de tipo, e desempenho. A utilização mais frequente é para a criação de classes. Pode criar as suas próprias interfaces genéricas, métodos, classes, eventos e delegates. As classes genéricas podem ser utilizadas para permitir acesso aos métodos usando tipos de dados específicos. Informações sobre os tipos usados em um tipo de dados genérico podem ser obtidas em tempo de execução por meio de reflexão.

Passagem de parâmetros

Há três tipos de passagem de parâmetros em C#, por valor, por referência e por saída. Na passagem por valor é feita uma cópia do argumento da chamada do método para o parâmetro do mesmo. Isso significa que as alterações que ocorrem nas variáveis passadas por cópia dentro do método não se refletem fora dele. Na passagem por referência toda alteração feita na variável passada por referência dentro do método alterará também seu valor fora dele.

Por padrão todo objeto e vetor são passados por referência e toda estrutura e variáveis primitivas são passadas por valor. Para se forçar a passagem por referência, tanto a chamada do método como a declaração dele devem estar com os argumentos e parâmetros precedidos pelas palavras reservadas ou ref ou out. A primeira é usada para se manipular um parâmetro já inicializado antes da chamada do método, de forma a somente editá-lo. A segunda é usada para se inicializar um parâmetro durante a execução do método, retornando o resultado para o método que o chamou.

Exemplos de código



Segue, abaixo, o programa teste Olá Mundo, que exibe a frase "Olá, Mundo!":

using System;
 
namespace HelloWordApplication
{
   class HelloWorldApp
   {
      public static void Main()
      {
         Console.WriteLine("Olá, Mundo!");
      }
   }
}

Bibliotecas

Captura de tela do Banshee, um media player desenvolvido em C#

Ao contrário das outras linguagens de programação, nenhuma implementação de C# actualmente inclui qualquer conjunto de bibliotecas de classes ou funções. Mesmo assim, esta linguagem está muito vinculada à plataforma .NET, da qual obtém as suas classes ou funções de execução. O código é organizado num conjunto de espaços de nomes que agrupam as classes com funções semelhantes. Por exemplo, System.Windows.Forms contém o sistema Windows Forms; System.Console é usado para entrada/saída de dados.

Um nível de organização superior é fornecido pelo conceito de montador, que pode ser um simples arquivo ou múltiplos arquivos ligados juntos que podem conter muitos espaços de nomes ou objetos. Programas que precisam de classes para realizar uma função em particular podem se referenciar aos montadores como System.Drawing.dll e System.Windows.Forms.dll assim como a biblioteca core (conhecida como mscorlib.dll na implementação da Microsoft).

Política

Muitos dos produtos e iniciativas da Microsoft geram polêmica no campo político e a criação e desenho da C# não foi excepção. Devido à natureza fechada do C# com uma instituição comercial, a discussão política continua em relação à legitimidade da sua normalização, as suas semelhanças com Java, o seu futuro como uma linguagem de uso geral e outros assuntos. Alguns peritos em segurança se encontram cépticos em relação à eficácia do mecanismo de segurança do CLR e criticam a sua complexidade.

Ao contrário de linguagens proprietárias tal como a Visual Basic, a Microsoft optou por submeter a C# a um processo de normalização. No entanto, a empresa continua a ser a principal força a induzir mudanças e inovação na linguagem. Além disso, a Microsoft tornou bem claro que a C#, tal como outras linguagens .NET, é uma parte importante da sua estratégia de software, tanto para uso interno e para consumo externo. A Microsoft leva a cabo um papel activo em publicitar a linguagem como uma componente da sua estratégia global de negócios.

Referências

  1. Why Microsoft's C# isn't (em inglês). Página visitada em 26 de agosto de 2010.
  2. The A-Z of Programming Languages: C# (em inglês). Página visitada em 26 de agosto de 2010.
  3. Java 5 catches up with C# (em inglês). Página visitada em 26 de agosto de 2010.
  4. C#/.NET History Lesson (em inglês). Página visitada em 24 de agosto de 2011.
  5. Microsoft C# FAQ (em inglês). Página visitada em 24 de agosto de 2011.
  6. C# Language Specification (em inglês). Página visitada em 24 de agosto de 2011.
  7. Visual C#.net Standard (em inglês). Página visitada em 24 de agosto de 2011.

Ver também

  • Anexo:Lista de exemplos de código C♯
  • ASP.NET
  • Common Language Runtime
  • Microsoft .NET
  • Microsoft XNA
  • Mono (projeto)

Ligações externas

  • Página oficial (em português)
  • Visual C# 2010 Express (em inglês)
  • C♯ no Open Directory Project
Obtida de "http://pt.wikipedia.org/w/index.php?title=C%E2%99%AF&oldid=27712828"

MAIS INFORMAÇÕES DO SETOR DE SOFTWARE

ITIL

Information Technology Infrastructure Library (ITIL) é um conjunto de boas práticas a serem aplica [ ... ]


Modelo em cascata

article thumbnail

O modelo em cascata é um modelo de desenvolvimento de software seqüencial no qual o desenvolvime [ ... ]


Segurança da informação

article thumbnail

A Wikipédia possui o portal:
Portal das tecnologias de informação A segurança da  [ ... ]


Windows Server 2008 R2

article thumbnail

O Windows Server 2008 R2 é um sistema operacional de servidor, produzido pela Microsoft. Foi libe [ ... ]


Pequena e média empresa de alta tecnologia (PMET)

A globalização eo avanço tecnológico levarm a evolução dos processos produtivos e à entrada  [ ... ]


CodeIgniter

CodeIgniter Desenvolvedor EllisLab, Inc. Lançado em 28 de Fevereiro de 2006  [ ... ]


E-mail marketing

E-mail marketing é a utilização do e-mail como ferramenta de marketing direto, respeitando norma [ ... ]


AJAX


AJAX (acrônimo em língua inglesa de Asynchronous Javascript and XML, em português "Javascript  [ ... ]


Matriz de Interações (ou Matriz CRUD)

article thumbnail

A Matriz de Interações (ou Matriz CRUD) é utilizada, no processo de desenvolvimento de sistemas [ ... ]


Teste de software

article thumbnail

O teste do software é a investigação do software a fim de fornecer informações sobre sua qual [ ... ]


UML

article thumbnail

A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira gera [ ... ]


Sistemas de CRM

Os sistemas de CRM.. são aplicativos de informação desenvolvidos com o objetivo de auxiliar na ge [ ... ]


web desktop

article thumbnail

Tela do eyeOS 0.9 Um webtop, web desktop, desktop online ou OS online (OS é a sigla para [ ... ]


Sistema de informação de gestão

Sistema de informação de gestão ou sistema de informações gerenciais (SIG; do inglês, manageme [ ... ]


Firewall

article thumbnail

Firewall separando redes LAN e WAN A Wikipédia possui o portal:
Portal das tecno [ ... ]


Gestão de projetos

Gerência de projetos, gestão de projetos, gerenciamento de projetos ou ainda administração de pr [ ... ]


Qualidade de software

A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir [ ... ]


Parque Tecnologico Capital Digital (Cidade Digital)

Toda a informação será disponibilizada através do site da secretaria de Ciência e Tecnologia do [ ... ]


Microsoft Forefront

Microsoft Forefront Desenvolvedor Microsoft Plataforma Microsoft Windows La [ ... ]


Ruby on Rails

article thumbnail

Origem: Wikipédia, a enciclopédia livre. Ruby on Rails

Boas vindas do Rails  [ ... ]


Programação extrema

Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ág [ ... ]


CakePHP

CakePHP é um framework escrito em PHP que tem como principais objetivos oferecer uma estrutura qu [ ... ]


Indústria de software

A Indústria de Software é o conjunto dos negócios que envolvem o desenvolvimento, a manutençã [ ... ]


Modelo V

article thumbnail

The V-model of the Systems Engineering Process.[1] O Modelo V é um modelo conceitual de  [ ... ]


Banco de dados

article thumbnail

Bancos de dados, ou bases de dados (em Portugal), são coleções de informações que se relacion [ ... ]


Governança em T.I (Governança corporativa)

Governança corporativa (português brasileiro) ou governo das sociedades ou das empresas (portuguê [ ... ]


Videoconferência

article thumbnail

Videoconferência entre militares em 2006. Videoconferência é uma tecnologia que permite  [ ... ]


Cibernética

Cibernética é uma tentativa de compreender a comunicação e o controle de máquinas, seres vivo [ ... ]


Git - sistema de controle de versão

article thumbnail

Origem: Wikipédia, a enciclopédia livre. Git Desenvolvedor Linus Torvalds, Ju [ ... ]


Qualidade de software

A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garant [ ... ]


Microsoft SharePoint Workspace

article thumbnail

Título a ser usado para criar uma ligação interna é Microsoft SharePoint Workspace. Micr [ ... ]


Gestão de riscos em segurança

O gerenciamento de riscos em segurança é a essência da segurança corporativa, que atua no sent [ ... ]


Hierarquia DIKW

DIKW é uma hierarquia informacional utilizada principalmente nos campos da Ciência da Informação [ ... ]


Ambiente de desenvolvimento integrado

IDE, do inglês Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, é um p [ ... ]


Prototipação

Prototipação é uma abordagem baseada numa visão evolutiva do desenvolvimento de software, afe [ ... ]


ArgoUML

ArgoUML é uma aplicação open source que usa UML para modelar o desenho de software de computado [ ... ]


Lista de softwares Públicos

em 11/11/2011LISTA DE SOFTARES PÚBLICOSSoftware Público Brasileiro InVesalius  (542 [ ... ]


EAD - Educação a distância

Tele-educação, Educação a Distância ou Ensino a Distância (EaD) [nota 1] é a modalidade de en [ ... ]


Sistema de informação contábil

O sistema de informação contábil é um dos componentes do sistema de informação gerencial (SIG, [ ... ]


Desenvolvimento web

article thumbnail

Desenvolvimento web é o termo utilizado para descrever o desenvolvimento de sítios, na Internet  [ ... ]


Apple

article thumbnail


Apple Tipo Empresa cotada em bolsa (NASDAQ: AAPL, LSE: 0HDZ, FWB: APC) Fu [ ... ]


JavaScript


JavaScript Paradigma Multi-paradigma: com base em protótipo funcional
imperativo
scr [ ... ]


Novas tecnologias de informação e comunicação

Comunicação Novas tecnologias de informação e comunicação Tipos Social • M [ ... ]


Steve Jobs

article thumbnail

Steve Jobs Steve Jobs apresentando um iPhone 4 durante a Apple Worldwide Develo [ ... ]


Linguagem de programação

Uma linguagem de programação é um método padronizado para expressar instruções para um compu [ ... ]


Software como serviço

Software como serviço, do inglês Software as a service, é uma forma de distribuição e comerci [ ... ]


Modelagem de dados

Modelagem de Dados Representa um conjunto de requerimentos de informações de negócio. É uma part [ ... ]


Microsoft

article thumbnail

Microsoft Microsoft Corporation Logotipo da Microsoft Slogan “We i [ ... ]


Steve Ballmer

article thumbnail

Steve Ballmer Nome completo Steven Anthony Ballmer Nascimento 24 de Março [ ... ]


Microsoft SharePoint Designer

Microsoft SharePoint Designer Desenvolvedor Microsoft Plataforma x86 e x64  [ ... ]


Artigos Relacionados

Pluriverso - Inteligência em Tecnologia

Pluriverso - Inteligência em Tecnologia


Ed.Centro Sul, 2°Andar, SCIA, Qd. 14, Conj. 07, Lt 1, S. Ind.
CEP: 71.250-135, Brasília-DF.  
Como Chegar
| Atendimento  


+55 (61) 4141.5555

Serviços

Desenvolvimento de Software
Oursourcing de T.I
Consultoria em Tecnologia
Licitação com o Governo

Produtos

ERP, CRM, Colaboração
Cloud Computing

Soluções
Soluções em Outsourcing de Tecnologia
Integração de Software
Avaliação de nível tecnológico
Cálculo de custos de T.I
Softwares customizados


Porque escolher a Pluriverso

Blog Corporativo
Blog do Software

Conheça a Pluriverso
quem somos
verticais de atuação
portifólio
casos de sucesso

Atendimento
contatos
sala de imprensa
como chegar
Trabalhe conosco

desenvolvimento de software