Enquete
Qual sua linguagem de programação preferida?
C#(Sharp)
Visual Basic
Java
Delphi
Ada
Objective-C
C++
PHP
Ver Resultados

Rating: 3.6/5 (22 votos)

ONLINE
2








Passagem de parâmetros

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.

Polimorfismo

 Esta palavra veio do latim e significa varias formas. Podemos considerar como sendo a capacidade de um operador desempenhar uma tarefa de acordo com o tipo do operando. Polimorfismo está associado à idéia de que entidades do programa possam ter mais de uma forma ou implementação.

  • Polimorfismo Universal Paramétrico:

Considerado o polimorfismo verdadeiro, um mesmo objeto pode ser utilizado como parâmetro em diferentes contextos sem necessidade de alterações. Uma função que exibe polimorfismo paramétrico (também chamada de função genérica) permite que o tipo do seu argumento seja determinado por um parâmetro implícito ou explícito, executando uma mesma operação, independente do tipo de argumento. Em C#, é suportado através do uso de Generics (Framework 2.0 +), namespace System.Collections.Generic. 

  • 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. 

  • 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. 

  • 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.