C#
Conceitos básicos
Orientação a objetos
A Programação Orientada a Objetos (POO) é um padrão de desenvolvimento. O termo foi criado por Alan Kay, mas as ideias foram utilizadas primeiramente na linguagem Simula 67, de Ole Johan Dahl e Kristen Nygaard, em 1967.Ela foi criada para tentar representar o mundo real dentro de um programa de computador. A ideia básica é utilizar objetos virtuais para representar objetos reais. Por exemplo: cliente, pedido, país, etc.
Abstração
É o conceito de, a partir de um objeto real, traduzir suas principais características dentro da aplicação, sem se preocupar com pontos acidentais.Ou seja, traspor um objeto do mundo real para o mundo virtual através de aspectos relevantes do problema a ser resolvido.Por exemplo, considere o objeto Cliente. Um cliente no mundo real tem um atributo chamado peso.Numa aplicação de um banco (tipo conta corrente) meu objeto Cliente não precisa desta propriedade, pois é irrelevante para este tipo de sistema. Mas se estiver desenvolvendo um aplicativo de acompanhamento de dieta? Neste caso o peso é uma propriedade essencial.
Encapsulamento
Encapsulamento, como o nome já diz, consiste em proteger parte do código. Fazer este isolamento facilita a manutenção e torna o software mais flexível. Assim, detalhes internos do funcionamento do objeto ficam ocultos dos demais.Exemplificando: imagine um objeto chamado Conta que possui uma propriedade saldo. Quando eu quiser mostrar o saldo na tela, eu não preciso saber que tipo de operações ele executa para chegar neste valor. Eu simplesmente peço o saldo e mostro.
Herança
Na herança um objeto pode estender todas as características de um outro objeto e ainda possuir suas próprias características.Como exemplo podemos utilizar os objetos PessoaFisica e PessoaJuridica. Eles possuem características em comum, como nome e endereço. Para evitar a duplicação de código, criamos um objeto chamado Pessoa com nome e endereço. Daí os objetos PessoaFisica e PessoaJuridica podem ser herdeiras do objeto Pessoa.Assim, os objetos PessoaFisica e PessoaJuridica possuem os atributos nome e endereço (por conta da herança) mas podem possuir características próprias. PessoaFisica tem o atributo CPF e o PessoaJuridica tem o CNPJ.
Polimorfismo
Polimorfismo vem do grego e significa “muitas formas”.Neste conceito, objetos filhos do mesmo objeto pai podem ter comportamentos diferentes para uma mesma mensagem.Voltando ao nosso exemplo anterior, os objetos PessoaFisica e PessoaJuridica possuem um atributo chamado ValidarDocumento. Como o tipo de documento é diferente de acordo com o tipo de Pessoa, este atributo (apesar do mesmo nome) se comporta de maneira diferente dependendo do documento (CPF ou CNPJ).
Máquina virtul
O C# usa o conceito de máquina virtual (como o Java).Em linguagens de programação anteriores (como o C++) o código fonte (o que você escreve) é convertido através do compilador em código binário (o que a máquina entende) sob medida para determinada arquitetura de hardware e sistema operacional.Caso você precise que este mesmo programa seja executado em outra plataforma, é necessário reescrever parte dele para que ele fique compatível com este novo ambiente.No C# existe uma camada intermediária entre o sistema operacional e a sua aplicação. Essa máquina virtual deixa o sistema operacional “transparente” para você. Ou seja, você não precisa se preocupar com o ambiente onde seu programa rodará, já que a máquina virtual fará isso por você. Esta máquina virtual é conhecida como CLR (Common Language Runtime).O compilador C# transforma seu código em uma linguagem intermediária (que é comum a todas as linguagens da plataforma .NET), a CIL (Common Intermediate Language).
aUtilização
Jogos Digitais
http://desenvolvimentodejogos.wikidot.com/csharp
aWeb
https://docs.microsoft.com/pt-br/visualstudio/ide/quickstart-aspnet-core?view=vs-2019
aDesktop
https://www.devmedia.com.br/artigo-easy-net-magazine-1-aplicacoes-desktop-no-net/16590
aMobile
https://docs.microsoft.com/pt-br/xamarin/get-started/what-is-xamarin
aSugestão de vídeos
C# Para Iniciantes
Aprenda C# em 15 minutos (básico)
Curso de C# - Básico ao Avançado
Referências
https://docs.microsoft.com/pt-https://docs.microsoft.com/pt-https://www.blogson.com.br/exemplo-de-uma-aplicacao-de-console-usando-c-sharp/https://www.treinaweb.com.br/blog/principais-ides-para-desenvolvimento-c#:~:text=Lançado%20em%201997%20pela%20Microsoft,o%20tornando%20ainda%20mais%20completo.https://www.devmedia.com.br/introducao-a-linguagem-csharp/27711https://pt.stackoverflow.com/questions/204430/para-que-serve-e-onde-pode-usar-chttps://www.youtube.com/watch?v=PjgP78hzWO4https://www.youtube.com/watch?v=2TMqTHTh8p8&list=PLxNM4ef1BpxgRAa5mGXlCoSGyfYau8nZIhttps://pt.stackoverflow.com/questions/tagged/c%23https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/if-elsehttps://docs.microsoft.com/pt-br/dotnet/csharp/fundamentals/tutorials/classesbr/visualstudio/get-started/csharp/tutorial-console?view=vs-2019br/dotnet/csharp/https://docs.microsoft.com/pt-br/dotnet/csharp/indexershttps://docs.microsoft.com/pt-br/dotnet/samples-and-tutorials/
aFerramentas
Visual Studio
Lançado em 1997 pela Microsoft, o Visual Studio é a principal IDE para desenvolvimento C# e todos os seus frameworks, como o .NET e ASP.NET. Além disso, o Visual Studio possui suporte nativo a outras linguagens, como Visual Basic, C, C++ e F#, o tornando ainda mais completo.Suportado pelo Windows e macOS, é uma das IDEs para desenvolvimento C# rica de funcionalidades que facilitam a implementação de aplicações. Além disso, o Visual Studio provê diversos recursos para ajudar o desenvolvedor, como podemos ver abaixo:Análise de código;Suporta diversos frameworks como .NET, ASP.NET, Unity, Xaramin, dentre outros;Suporte nativo ao .NET Core e ao Azure, serviço de cloud da Microsoft e para o VCS;Detém de suporte a testes unitários integrado;Permite executar queries de bancos de dados SQL;Preenchimento de código inteligente;Verificação dinâmica de erros, entre outros.
Jetbrains Rider
Lançada em 2017 pela Jetbrains, o Rider é uma IDE para desenvolvimento em C# e toda o seu ecossistema, permitindo a criação de aplicações .NET, jogos com Unity, aplicativos móveis com Xamarin e aplicações web com ASP .NET e ASP .NET Core. Multiplataforma, é possível realizar seu download em diferentes sistemas operacionais como windows, linux e macOS.Um dos principais concorrentes do Visual Studio, o Rider possui inúmeros recursos, o que facilita a adoção e o uso da IDE em projetos C#. Alguns desses recursos podem ser vistos abaixo:Dispõe de suporte nativo ao Unity para desenvolvimento de jogos;Pode-se desenvolver utilizando tecnologias web, como JavaScript, TypeScript, HTML, CSS e Sass;Suporte à uma ampla variedade de plugins desenvolvidos para o IntelliJ, o tornando ainda mais completo;Navegação e busca de arquivos e trechos de código no projeto;Permite executar queries de bancos de dados SQL;Diferente do Visual Studio, pode ser executado no Windows, Linux e macOS, dentre outros.O Rider é uma excelente IDE, muito utilizada no mercado. Seu uso facilita a criação de aplicações C#. O download do Rider poderá ser realizado em seu próprio site.
aVS Code
Apesar de ser um editor de textos para desenvolvedores, o Visual Studio Code (ou vscode), é tão completo que é frequentemente confundido como uma IDE. Criada pela Microsoft, o vscode é um editor open source multiplataforma e com diversos recursos para o desenvolvimento C#.Possui suporte nativo ao JavaScript, TypeScript, JSON, HTML, CSS e outras tecnologias, além disso, é possível instalar plugins para melhorar o suporte para outras tecnologias, como o próprio C#.Muito utilizado na comunidade, o VScode, apesar de não ser uma IDE, é tão poderosa quanto.Para instalar o vscode, é só acessar sua página oficial e realizar seu download.
aExemplos/Tutoriais
Primeira Aplicação C#
Classes e Objetos
Condicionais
Ternário
Sugestão de material didático
Documentação oficial
Stackoverflow
Estrutura C#
Exemplo de uma estrutura C#
https://andrielleazevedo.wordpress.com/2011/12/10/estrutura-de-um-programa-em-c/#:~:text=A%20estrutura%20de%20um%20programa,arquivos%20contendo%20os%20seguintes%20elementos%3A&text=Tipos%20(classes%2C%20estruturas%2C%20interfaces,declarações%2C%20comentários%2C%20instruções).
aTipos de estrutura C#
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/builtin-types/struct1
a