1 / 22

Tópicos Diversos em C#

Tópicos Diversos em C#. Erick Luis Moraes de Sousa puyolzits@gmail.com http://forum.gamux.com.br. REVISÃO. Revisão. - . Orientação a Objetos: Classe; Objeto/Instância; Método; Construtor; Propriedade; Herança; Modificadores de Acesso;. Adendo. - .

ura
Download Presentation

Tópicos Diversos em C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tópicos Diversos em C# Erick Luis Moraes de Sousa puyolzits@gmail.com http://forum.gamux.com.br

  2. REVISÃO

  3. Revisão - • Orientação a Objetos: • Classe; • Objeto/Instância; • Método; • Construtor; • Propriedade; • Herança; • Modificadores de Acesso;

  4. Adendo - • Sobrecarga de métodos ( overloading/overriding ): • Processo de re-implementação de um método/operador em uma subclasse; • Modificadores de Acesso para a herança: • Virtual: • Métodos/propriedades que possuem o modificador Virtual podem ser re-implementados ao serem herdados por subclasses; • Abstract: • Métodos/propriedades que possuem o modificador Abstract não precisam ser implementados na superclasse e devem ser obrigatoriamente implementados na subclasse caso a superclasse tenha o modificador abstract; • Sealed: • Não é possível herdar de uma classe/método/propriedade que esteja com o modificador sealed; • Override: • Esse modificador de acesso, quando utilizado em uma subclasse, permite re-implementar métodos da superclasse;

  5. Objetivos

  6. Objetivos • Diferença entre valor e referência em C#; • Delegates; • Tratamento de Exceções.

  7. Conceito • Valor: • Quando uma variável é passada para um método por valor, o sistema operacional cria uma cópia da mesma que é a utilizada pelo método. Modificações nesta cópia não alteram a variável original; • Referência: • Quando uma variável é passada por referência para um método, o sistema operacional não cria uma cópia. Caso a mesma sofra alguma modificação dentro do método, as mudanças irão se manter e alterar a variável “original”; • Objetos são passados como referência por padrão; • Structs são passadas como valor por padrão; • Keyword específicas: ref , out.

  8. Usos • Keywordref: • Um valor é passado como referência e seu valor deve necessariamente ser inicializado; • Keyword out: • Um valor é passado como referência, porém o seu valor não precisa ser inicializado; • Declaração de um método que recebe um inteiro i por referência: publicvoidmeuMetodo ( refint i ) { i++; } • Análogo para a keyword out.

  9. Utilidades e Motivações

  10. Utilidades e Motivações • Principal objetivo: • Verificar erros em tempo de execução que fariam com que o seu programa terminasse de forma inesperada; • Um olhar na linguagem C: • Não possui tratamento de exceções; • Casos excepcionais são tradados a parte: • Retorno do Malloc; • Tentativa de abrir um arquivo; • Divisão por zero; • Garante um programa mais robusto e estável!

  11. Try/Catch • Tenta executar um trecho de código que possa causar uma exceção; • Se o código gerar alguma exceção, o programa não é abortado. O mesmo continua a ser executado normalmente; • Utilizando o try/catch: • try • { • //Trecho de código que pode gerar a exceção; • } catch ( nomeDaExceção nome ) { // Lógica para tratar a exceção };

  12. Descrição • De forma simplificada, um delegate é uma referência ( um ponteiro ) para um ou mais métodos; • Em C, um delegate seria um ponteiro para uma função! • Permite que métodos sejam passados como parâmetros em funções; • Os parâmetros e o tipo de retorno de um delegate devem ser iguais aos da(s) função(ões) que ele referencia;

  13. Declaração • Vamos supor que temos uma classe chamada Add, com o seguinte pragma: • publicfloatAdd ( float a , float b ); • Para criar um delegate desse método, fazemos da seguinte maneira: • delegatefloatnomeDoDelegate ( float x , float y ); • O nome dos parâmetros não precisa ser o mesmo, apenas os tipos; • Instancializando um delegate e atribuindo o método Add: • nomeDoDelegate nome = newdelegate(new);

  14. Prática • Continuar/Começar a implementar o SpaceInvaders; • Implementar um Breakout; • Montar um jogo para participar do campeonato e-games; • Implementar um Asteroids; • Montar um grupo para desenvolver algum jogo mais complexo.

  15. Futuro • Escolher o próximo curso; • Sugestões de cursos e tópicos que deveriam ser abordados; • Micro-Avaliação de curso online;

  16. Agradecimentos publicclass principal { public abstract void fim(); } publicclass palestra : principal { publicoverridevoid fim() { Console.WriteLine ( “Obrigado!\n” ); } }

More Related