Pascal
ASP
PHP
C++
VB.net
C#
Java
AC/DC
Artigos
Links
Currículo
Home

C# WIN 32

• C# TIPS

• Formatação de Comentários em XML para o C#.NET

• Programa no Tray do Windows


C# Tips

ref

Termo utilizado nos parâmetros de função para especificar uma passagem de parâmetro por referencia

 

out

É utilizado como parâmetro de função para dizer que aquela variável será uma variável de saída. Desta forma, a variável de saída não precisa ser inicializada antes de ser passada para a função.

 

params

A finalidade desse tipo de parâmetro, onde na verdade o que passamos é uma lista de parâmetros que pode variar no seu número de elementos, é nos permitir passar a um método quantos parâmetros desejarmos. Para isso, usamos a palavra reservada params antes do tipo do parâmetro que deve ser um array.

Quando o método receber mais de um parâmetro, o parâmetro array deve ser
o último da lista.

Exemplo: public int Soma(params int[ ] args)

Soma(1,2,3,4);

 


readonly

Variáveis que uma vez que o atributo é inicializado, o seu valor persistirá durante o tempo de execução da aplicação, e não será possível modificá-lo.

A inicialização de atributos readonly é feita através do uso de construtores de
classes e a tentativa de inicializar um atributo readonly fora de um construtor ou da sua declaração provocará um erro de compilação.

Existem casosemque é preciso inicializar o atributo readonly, mas não se deseja que uma instância da classe seja criada para tal fim. Nesse caso, declaramos os atributos como estáticoseumconstrutor estático é declarado para poder reinicializar o seu valor.

 

 

static Construtor

- A declaração é antecedida pelo modificador static

- É chamado automaticamente antes da instanciação da classe

- É executado apenas uma única vez durante a execução do programa que
contém a classe

- Não pode receber parâmetros como acontece com os construtores customizados

- Construtores estáticos não podem referenciar membros instância da classe

Como dissemos anteriormente,
quando falamos de atributos read only, usamos esse tipo de construtor para inicializar atributos estáticos, ou estáticos só de leitura.

 

 

Construtores Privados

Construtores privados são usados para evitar que instâncias de uma classe sejam criadas.

Exemplos de classes desse tipo são aquelas que definem um conjunto de
atributos constantes.


Exemplo:
class classeDeConstantes
{
   public const double pi = 3.1415;
   public const int iTempDeFervorDaAgua = 37;

   private classeDeConstantes( );
}

Se você tentar criar uma instância da classe, o compilador acusará um erro
porque ela possui um construtor estático.

 

 

Array

int[ ] arrInt = new int[2] ;

As três formas a seguir são válidas para inicializar um array quando é feita sua
declaração:
int[ ] arrInt = new int[2] {0,1}; //ou
int[ ] arrInt = new int[ ] {0,1}; //ou
int[ ] arrInt = {0,1} ;

 

 

Modificadores de Acesso

public
Significa que o membro é acessível de fora da definição da
classe. Na verdade, ele é sempre acessível e visível.

protected
O membro não é acessível de fora da classe e só pode ser acessado
por classes derivadas.

private
O membro não pode ser acessado de fora do escopo da classe
de definição. Portanto, nem mesmo classes derivadas terão
acesso a esses membros.

internal
O membro é visível somente dentro da unidade de compilação.
É um misto de public e private, dependendo de onde o
código for escrito.

 

 

virtual

Palavra chave que cria um método polimorfico.
O método pode ser reescrito na classe herdada como override.

E o método override pode chamar o método virtual com a instrução:
base.nome_do_metodo()

 

abstract

Uma classe pode ser abstrata. Ela não pode trazer implementações concretas de funções.

As funções da classe também devem ser abstratas:
public abstract string Exibir( );

 

Propriedades

Uma propriedade é composta de três elementos: um campo (local
onde armazena-se o valor, também chamado de atributo), um método de leitura (get) e um método de gravação (set).

protected string fCPF;
public string CPF
{
  set 
  {
     fCPF = value;
  }
  
  get
  {
     return fCPF;
  }  
}

 

 

interface

Interfaces são coleções de
métodos abstratos relacionados semanticamente.

public interface ICodigoBarras
{
  void LeituraPadrao3of9( ); // Implicitamente abstrato
  void MetodoIdentico( );
}

public interface IControleArmazenamento
{
  void Localizador( );
  void MetodoIdentico( );
}

public class Produto : ICodigoBarras, IControleArmazenamento
{
  // Aqui viriam as implementações
  public void LeituraPadrao3of9( )
  {  
    // Implementação
   }
  public void Localizador( )
  {
    // Implementação
  }
  // No caso de nomes coincidentes, implemente apenas uma vez
  public void MetodoIdentico( )
  {
    // Implementação
  }
}

A definição da classe produto seria resultante da agregação de métodos definidos em duas interfaces diferentes.

 

 

sealed

Por definição, classes seladas não permitem nenhum
tipo de herança ou derivação. Simplesmente são classes que devem ser entendidas como terminadas.

 

 

Tratamento de Exceções

HelpLink
Retorna uma URL paraumarquivo de Help descrevendo o
erro em detalhes

Message
Esta propriedade é somente leitura e descreve o erro

Source
Retorna o nome do objeto ou aplicação que gerou o erro

StackTrace
Esta propriedade é somente leitura e contém uma string
que identifica a seqüência de chamadas que disparou o erro

InnerException
Pode ser usada para preservar os detalhes do erro ao longo
de uma série de exceções

 

 

throw

Gera uma exceção

throw new Exception( "CPF Inválido" );

 

 

Bloco Try

try
{
  // Código sujeito a exceções
}
catch( TipoExcecao1 e )
{
  // Tratamento para exceção tipo 1
}
catch( TipoExcecao2 e )
{
  // Tratamento para exceção tipo 2
}
catch
{
  // Tratamento para qualquer tipo de exceção
}
finally
{
  // Trecho que deve sempre ser executado, havendo ou não exceção
}

A estrutura try..catch requer que exista pelo menos um bloco catch vazio.
Os blocos de finally e catch(exception) são opcionais.

 

 

is

Permite saber se um objeto é do mesmo tipo. Retorna um true or false

 

as

Permite usar uma classe como se ela fosse outra

Imagine que p seje um objeto pentium

(p as Intel286).ModoProtegido = true;

Nesse caso, estamos fazendo um typecast no objeto p para usá-lo como um
processador Intel286.

 

System.Object Parametro base para objetos, assim como void para ponteiros.
Alias de Namespace

using NOME_ALIAS = namespace;

 

Namespace alinhados

namespace System
{
  namespace Text
  {

  }
}

Usando
using System.Text;

 

 


Propriedades e metodos

form.MdiParent =

Especifica a janela pai do form, para criar MDI forms

 

form.MdiChildren.Length

Quantidade de janelas MDI que um form pai possui

 

 

form.ActiveMdiChild.Close( );

Fecha as janelas filhas MDI ativas

 

 

form.LayoutMdi( layout )

Organiza as janelas em layouts definidos

Em cascata
System.Windows.Forms.MdiLayout.Cascade

Organiza as janelas lado a lado na horizontal
TileHorizontal

Organiza as janelas lado a lado na vertical
TileVertical

 


AcceptButton

Propriedade do form que indical qual o botão é acionado ao apertar enter

 

componente_errorProvider1.
SetError(campo, "");

Elimina sinalização de erro

Com o string preenchida mostra sinalização de erro