Choosing a type to create and add bahaviors

Description

70-483 C# Flashcards on Choosing a type to create and add bahaviors, created by Thiago Russo on 21/04/2017.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo about 7 years ago
0
0

Resource summary

Question Answer
O que são tipos em um linguagem OO como o C#? O que os tipos "mostram" ? Em uma linguagem orientada a objetos, como C#, os objetos e os tipos são os blocos fundamentais de construção. Um tipo pode ser visto como uma "planta baixa" ou "modelo" para a construção de um objeto. Ela mostra q dados podem ser utilizados e quais comportamentos estão presentes.
Quais são as 3 categorias de types o C# oferece? ■ Tipos de valor ■ Tipos de referência ■ tipos de ponteiro Tipos de ponteiro são raramente utilizados. Vc os utiliza somente qdo se trabalha com código não seguro (unsafe code) e qdo precisa usar a aritmética de ponteiro.
O que é um Enum? Dê 2 exemplos simples
enum com atributo Flags
tipo referência x tipo valor tipo de referência: como o nome sugere, contém uma referência ao valor real. Ex: Uniform Resource Locator (URL). Se vc ler algo interessante na web, pode enviar a URL p/ um amigo e apontar p/o local correto onde a informação é armazenada. tipo de valor: contém o valor diretamente. Um tipo de valor é diferente. Se você ler um artigo interessante em uma revista e vc quer passar p/ seu amigo, vc precisa fazer uma cópia do artigo e entregar-lhe.
heap x stack No Common Language Runtime (CLR) que sustenta C#, existem dois locais em q um tipo pode ser armazenado na memória: heap e stack. O valor de um tipo de referência é armazenado na heap (memória), e o endereço para este valor é armazenado na stack (pilha).
Todo tipo valor é armazenado na stack? quais os benefícios de armezenar na stack? Embora um tipo de valor é normalmente armazenado na stack, há exceções (por exemplo, uma classe que contém um tipo de valor como um de seus campos, uma expressão lambda que se fecha sobre um tipo de valor, ou um tipo de valor que é boxed), mas esta ideia é geral. O benefício de armazenar dados na stack é que é mais rápido, menor e não precisam da atenção do coletor de lixo (garbage collector).
Quando utilizar tipos valor? Quais os 3 critérios pra determinar se deve utilizar um tipo valor? Tipos de valor são úteis qdo se trata de pequenas estruturas de dados. Por ex, um ponto c/ x e y (corordenada) é um candidato p/ um tipo de valor. Como regra geral, vc pode conferir os 3 critérios abaxo p/ determinar se vc deseja criar um tipo de valor: ■ O objeto é pequeno. ■ O objeto é logicamente imutável. ■ Há uma grande quantidade de objetos. O único que pode determinar se vc precisa de um tipo de valor é vc. Se vc estiver otimizando p/ velocidade ou p/ uso de memória, a única maneira de determinar se um tipo de valor pode melhorar o desempenho é através da medição. Dica: Um tipo de valor deve ser usado para pequenos objetos imutáveis, que são muito utilizados. Em todas as outras situações, use um tipo de referência.
Em, C# tipos valor e tipos referencia heram de que? Podemos herdar normalmente desses tipos base? Todos os objetos em C# herdam de System.Object Tipos de valor herdam de System. ValueType (herda de System.Object). System.ValueType substitui algumas das funções padrões (como GetHashCode, Equals, e ToString) para dar uma implementação mais significativa para um tipo de valor. Em C#, você não pode herdar diretamente de System.ValueType. Em vez disso, você pode usar a palavra-chave struct para criar um novo tipo de valor.
struct
comportamentos de um tipo function x method As ações q seu tipo expõe, devem ser a principal razão da sua existência. Vc deve pensar em sua nova classe em termos do que ele pode fazer ñ dos dados q armazena. Em C#, vc adiciona o comportamento de classes, utilizando métodos. ”FUNCTION” vs “METHOD” Às vezes, o termo "função" é utilizado, e, por vezes, o termo "método" é usado. Uma função implica q ela tem retorno e ñ modifica nada no sistema. Vc pode dizer q uma função é a parte "read" do sistema. Isto é o que ainda é usado em linguagens funcionais como F#, em q as estruturas de dados imutáveis são comuns. Método permite a modificação de dados e ñ retorna quaisquer dados. Esta é a parte "write" do sistema. Vc pode ver esta distinção em Func <T> e Action que foram adicionados ao .NET Func <T> tem um tipo de retorno, enquanto que a Action ñ retorna nada. Em C#, essa distinção não é usado. O termo utilizado é o "método."
passos para criar um método 1. Escolha um nome para o seu método. 2. Decida quais dados devem ser passados para o seu método (parâmetros). 3. Decida quais os dados que você deseja retornar para o chamador (return). 4. Decida sobre a visibilidade do seu método.
boas práticas para criar seus métodos Nome do método deve dizer com clareza o que ele faz. Não criar métodos grandes (quebrar métodos grandes em menores) Um método deve fazer "uma coisa", deve ter uma responsabilidade. Nome de parâmetros intuitivos
Qual método usar? public Distance CalculateDistanceTo(Customer customer) { Distance result = … // Algum processamento complexo que utiliza customer.Address return result } public Distance CalculateDistanceTo(Address address) {...} ?? O problema da opção 1 é q o objeto Customer só é usado p/ recuperar o Address. Como o algoritmo de cálculo de distância está acoplado a um Customer. alterações na classe Customer, como adicionar um endereço de entrega e um endereço de cobrança, vai repercutir através a esta classe. A opção 2 pede apenas os dados de que necessita. Este é um projeto mais claro e simples que melhora a capacidade de manutenção.
argumentos opcionais e argumentos nomeados
métodos de sobrecarga (overloading) Tb é possível criar métodos c/ o mesmo nome que diferem nos argumentos q eles possuem, q é chamado de sobrecarga (overloading). Um exemplo no .NET Framework é Console.WriteLine. Esse método tem 19 diferentes sobrecargas q levam parâmetros diferentes. Você cria uma sobrecarga de um método usando o mesmo nome e tipo de retorno exato, mas utiliza diferentes nos argumentos que você espera.
visibilidade do método modificadores de acesso Ao criar um método, é importante decidir sobre sua visibilidade. Se vc ñ declarar um modificador de acesso, seu método será private por padrão. As outras opções são: públicos (public), interno (internal), protegido(protected) interno protegido (internal protected) *+ detalhes no objective 2.3
declarando e usando um field (campo) qual a estrutura de um field? pra que serve? como fazer um filed read only?
field const (constante) Se o valor é definido no campo em tempo de compilação, tb pode marcar como const. Assim, o compilador sabe ao certo q o valor nunca vai mudar e ele pode executar alguma otimização. Tb garante q vc n possa substituir o valor do campo. Todas as atribuições para o campo em seu código irão resultar em um erro de compilação.
indexador (indexer) exemplo do baralho
o que é um campo estático? pra que serve? qual o efeito perigoso de usá-lo? exemplo de campo e método estático x não estático
Construtor exemplo e explicação Por quais razões vc cria seus próprios construtores?
Construtor boas práticas ■ Declarar explicitamente o construtor público padrão nas classes se tal construtor for necessário. ■ Assegure-se que seu construtor leva alguns parâmetros possíveis. ■ Mapeie parâmetros do construtor para propriedades de sua classe. ■ Lance exceções de instância de construtores se for caso disso. ■ Não chame membros virtuais a partir de um objeto dentro de seu construtor.
Construtores encadeados
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Dates and times .NET
Felipe Couto Viola
Fluxo Game UC 8
Lucas Coluzzo