# data[].attributes.body
Exemplo Empresa

# data[].attributes.body
Herança:

FormaGeometrica que só existe para servir de base à criação das outras classes (Retangulo,Circulo...). Esta classe "genérica" tem métodos (CalculaArea(); CalculaPerimetro()) que são comuns em todas as formas geométricas. As classes "genéricas" não podem ter instanciadas em objetos e por isso colocamos a palavra abstract. Esta classe tem dois métodos abstratos (CalculaArea(); CalculaPerimetro()) porque a implementação (o código que permite calcular a área e o perímetro) só pode ser implementado em classes concretas (Retangulos, Circulos, Quadrados, Triângulos, etc...). Em cada uma destas classes a implementação destes cálculos vai ser diferente.

Poliformismo:

As classes Quadrado, Retangulo e Circulo herdam os métodos da classe genérica FormaGeomtrica e são obrigadas a implementar os métodos CalculaArea() e CalculaPerimetro()

O método ToString é reescrito para informar qual o tipo de forma geométrica (Todos os objetos têm este método, se não for reescrito apresenta informação sobre a classe)

Quando criamos objetos, estes são estruturas (entidades) que agregam muita informação. Todos os objetos, além do métodoToString, também têm o método Equals (entre outros) que deve ser reescrito. Comparar dados primitivos é simples e direto para o compilador, mas o compilador não sabe como comparar os objetos que criamos. Então o que fazemos é reescrever o método Equals. Se não o fizermos ele compara os endereços de memória dos objetos, o que faz com que objetos iguais falhem sempre no teste de igualdade.

Construtor:

No método Main (entrada do nosso programa) vamos criar objetos, instanciando as nossas classes (usamos a palavra new). O método Main é um método estático (tem a palavra static) o que faz com que não perteça nenhum objeto. Os métodos static são como funções puras, não estão associados a objetos.

Quando instanciamos um objeto é chamado o construtor desse objeto. Por exemplo, quando fazemos Retangulo rect = new Retangulo(100, 50, 45, 20) estamos a criar uma instância de Retangulo e passamos para o nosso objeto os valores das coordenadas e os valores da largura e altura. O Retangulo herda da FormaGeometrica, então devemos passar os dados que permitem chamar o construtor da classe "FormaGeometrica" que são os valores 100, 50. Como o Retangulo herda da classe FormaGeometrica a nossa variável rect é uma referência para o objeto Rectagulo, que além de ser um retângulo é também uma forma geométrica.

# data[].attributes.body
Console.WriteLine
Console.ReadKey()

# data[].attributes.body
Exemplo:
String.Builder texto = new StringBuilder();
Outros tipos:
DateTime - Data e ou Hora
DateTime datahora= new DateTime();

# data[].attributes.body
https://docs.microsoft.com/en-us/dotnet/csharp/

# data[].attributes.body
Exemplo:
int[] Inteiros={1,2,3,4,5,6,7}
foreach (int i in inteiros)
Console.WritLine(i);
Exemplo2:
double[] reais = new double[5]

# data[].attributes.body
Exemplo:
string frase = "Olá Mundo"
Operações
frase.Length
frase.ToUppper()
frase.ToLower()
frase.Trim()
frase.Replace()
frase.Substring()
string.Concat(frase, "FIM)
Para Grandes quantidades Texto
String.Builder texto = new StringBuilder();
texto.Append("Mais Texto"

# data[].attributes.body
Classe Math
Math.Pow(2d, 3d) - Potência
Math.Round
Math.PI
Math.Sqrt
Math.Max
Math.Min
Math.Ceiling - Maior valor acima de
Math.Floor - Mairo Valor abaixo de

# data[].attributes.body
Console.WriteLine()
Console.Write()
Convert.ToChar()
Console.ReadLine()

# data[].attributes.body
https://www.visualstudio.com/downloads/

# data[].attributes.body
int
short
float
long
decimal
double
char
string
bool
byte
dynamic
Const

# data[].attributes.body
Usando o objeto Math