C# 10 e . NET 6 para iniciantes absolutos | Trevoir Williams | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

C# 10 e . NET 6 para iniciantes absolutos

teacher avatar Trevoir Williams, Jamaican Software Engineer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      1:01

    • 2.

      Instalar Visual Studio 2022 Edição comunitária

      7:56

    • 3.

      Crie seu primeiro projeto de console de C #

      8:14

    • 4.

      Visita de edição comunitária do Visual Studio 2022

      15:29

    • 5.

      Entenda a diferença entre . NET 6 e versões anteriores

      9:27

    • 6.

      Desenvolvimento usando código do Visual Studio

      9:21

    • 7.

      Revisão de seção

      1:43

    • 8.

      Entender sintaxe básica em C#

      18:11

    • 9.

      Programas de entrada e saída

      16:27

    • 10.

      Tipos de dados e conversão

      23:30

    • 11.

      Técnicas de depuração de aplicativos

      10:39

    • 12.

      Operadores de aritmética e atribuição

      12:46

    • 13.

      Declarações condicionais

      24:28

    • 14.

      Declarações de repetição

      19:06

    • 15.

      Métodos - vazio

      13:57

    • 16.

      Métodos - retorno de valor

      14:12

    • 17.

      Funções de manipulação de seqüências

      22:40

    • 18.

      Funções de manipulação de data

      19:09

    • 19.

      Manipulação de exceção

      14:47

    • 20.

      Arrays

      21:04

    • 21.

      Listas

      20:27

    • 22.

      Introdução a cursos e objetos

      30:42

    • 23.

      Sobrecarga de métodos

      8:03

    • 24.

      Aulas estáticas e membros de classe estática

      11:36

    • 25.

      Herança com aulas e interfaces

      26:35

    • 26.

      Construtores

      12:46

    • 27.

      Criar conta do GitHub

      1:17

    • 28.

      Adicionar solução ao controle de fonte

      10:58

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

371

Estudantes

1

Projetos

Sobre este curso

Neste curso, você vai aprender programação de C# para aplicativos de desktop. Essas lições não assumem nenhum conhecimento prévio da programação ou da linguagem C# e vão ter você pronto e funcionando em nenhum momento.

Este curso vai equipar você para ser um empregável . Desenvolvedor NET em qualquer organização.

Esta jornada vai ter você se tornando proficiente

  • Interface e atalhos do Visual Studio

  • Desenvolvimento de aplicativos de console com C# 10 (. NET 6)

    • Entender sintaxe de C#

    • Entender tipos de Datatypes e variáveis

    • Entender seqüência, estruturas de controle de decisão e repetição

    • Entender manipulação de cordas

    • Entender manipulação de data e hora

    • Compreender programação, cursos e objetos orientados para objetos

    • Entender o Visual Studio 2022

    • Entender técnicas de depuração

    • Desenvolver aplicativos de console

  • Como aplicar programação orientada a objetos com C#

  • Como adicionar um projeto do Visual Studio ao controle de fonte

Por que aprender linguagem em inglês

C# é a linguagem de programação mais versátil em . NET Framework e . Núcleo LÍQUIDO. Não só você pode criar aplicativos cliente Windows, como também pode usar C# para criar aplicativos Web e móveis.

C# pode ser usado para construir:

  1. Aplicativos cliente Windows usando Formulários Windows, WPF e UWP.

  2. Aplicativos Web com ASP.NET e ASP.NET Core.

  3. Aplicativos nativos para iOS e Android usando Xamarin.

  4. Bibliotecas, componentes e aplicativos de console

  5. Aplicativos em nuvem e Azure

  6. Aplicativos de cadeia

  7. Não só o idioma em C é suportado e mantido pela Microsoft, mas também tem um forte suporte à comunidade. Mais de 5 milhões de desenvolvedores usam linguagem C#. . O compilador NET Core e C# são código aberto e a adoção está crescendo em comunidade de código aberto.

Conteúdo e visão geral

Este curso é muito amigável para iniciantes e cheio de dicas de desenvolvimento. Este curso enorme oferece conteúdo premium, quebrado de forma inteligente para destacar um conjunto de atividades relacionadas com cada módulo. Também vamos analisar erros de resolução de problemas e depuração enquanto avançamos; implementar melhores práticas; escrever lógica eficiente e entender por que desenvolvedores fazem as coisas da maneira que fazem. Seu conhecimento vai crescer, passo a passo, e você será desafiado a ser o melhor que pode ser.

Conheça seu professor

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Professor
Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Bem-vindo ao curso, C-sharp e dotnet seis para iniciantes absolutos. Sou seu instrutor de Vaughan Williams. Tenho ensinado programação nos últimos dez anos. Neste curso, você aprenderá a usar nossa programação para aplicativos de desktop. Essas lições não assumem conhecimento prévio de programação ou da linguagem C-sharp, e nós o teremos em funcionamento em pouco tempo. Aprenderemos sintaxe C-sharp, variáveis, loops, e isso é em declarações, coleções como esse remetente levantam loops e declarações de decisões e programação orientada a objetos. Ao final deste curso, você também aprenderá como adicionar sua solução a um grupo de sistemas de gerenciamento como o GitHub. Desenvolvedores com conhecimento da estrutura dotnet e da linguagem C-sharp estão em alta demanda neste campo. Este curso está repleto de dicas de desenvolvimento e é muito amigável para iniciantes e irá equipá-lo para ser um desenvolvedor de dotnet desempregável em qualquer organização. Sem mais delongas. Estou feliz por tê-lo nesta jornada e mal posso esperar que comecemos a nos divertir tanto. 2. Instale a edição de Visual Studio 2022: Ei pessoal. Nesta lição, estaremos instalando o Visual Studio 2022, que vem com dotnet six, que é o dotnet mais rápido até agora. Então, para começar, só precisamos ir para os downloads de barra do Visual Studio.Microsoft.com. E então iremos em frente e vamos o download gratuito na edição da comunidade, que nos dará um instalador. Depois de executar esse instalador, poderemos selecionar as cargas de trabalho que queremos. Nenhuma carga de trabalho realmente se referia às bibliotecas ou às bibliotecas de suporte para o tipo de aplicativo que você está interessado em criar. Nesse caso, definitivamente queremos obter essa carga de trabalho de desenvolvimento web ESP, dotnet e desenvolvimento web. Mas então, se você estiver interessado em outras tecnologias, você pode ir em frente e selecioná-las. Então você pode ver que tenho várias cargas de trabalho selecionadas com um desenvolvimento 0, NodeJS e desenvolvimento de desktop. Você pode ir em frente e dividi-los também. Eu acho que eles serão úteis com outros projetos que você pode acabar construindo tudo, uma vez que você tenha feito isso, você pode ir em uma vez que você tenha feito isso, você frente e clicar em Instalar, que seria feito no canto inferior direito- canto de mão. Obviamente, quanto mais cargas de trabalho você selecionar, maior o tamanho do download. Então, depois de concluir isso, você poderá continuar. Ninguém que o download esteja concluído, você pode ter certas opções que eu não vou obter porque já o tenho instalado. Então, vou guiá-lo pelo que esperamos? Você pode ter uma opção na qual você escolhe seu tema. Como você pode ver, estou usando o tema escuro, mas então você tem a opção de um tema claro, um tema azul. E o problema é que o Visual Studio 22 tem muito mais temas do que seus antecessores. Então, mesmo que você não queira iluminar os temas iniciais, você pode obter outros temas se precisar deles. Além disso, você pode ser solicitado a fazer login se você já tiver 2019 instalado em sua máquina e você acabou de instalar em 2022, você já assinou em 2019, então provavelmente não solicitará que você faça login novamente. No entanto, se esta for sua primeira instalação do Visual Studio, você pode ser solicitado a fazer login ou criar uma conta ativa, ponto em que você gostaria de usar apenas o Microsoft emitido ao vivo. Olhe para hotmail.com em cones, ou você pode simplesmente ir em frente e criar um. E se minha memória serve em consideração, você pode usar outro endereço de e-mail que não seja da Microsoft secreta uma faculdade de nível. Se eu for em frente e criar um novo projeto e fazer um novo aplicativo de console, C Sharp será ativado. Então, esta será apenas demonstração do VS 2222. Tudo bem, vá em frente, acerte em seguida. Cc é a mesma coisa, mas aqui eu posso escolher qual framework e agora posso escolher o último dotnet six.net cinco foi lançado no ano passado e é de acordo com 1.93.1, sente-se como suporte de longo prazo. Portanto, ainda é bem capaz e cada um é realmente compatível com versões anteriores. Então cinco, a maior parte do que você está fazendo, três a maioria, se não tudo o que você faz em 3.1 ainda é compatível com cinco. A maioria, se não tudo o que você teria feito com esses dois pode ser encaminhado, encaminhe para dotnet 6.1. É uma espécie de suporte. Sugiro que você tenha algum UPS roubando 2.1 para começar a procurar atualizá-los ou atualizá-los. Ou pelo menos se você está apenas aprendendo. Net Core, não comece com 2.1. Quando seguimos em frente e pressionamos Criar. Outra coisa que tomo nota , eu pauso o vídeo. Não foi tão rápido, mas eu pausei o vídeo. Uma coisa que tomei nota é o fato de que é muito fossa, provavelmente porque não é um aplicativo de 64 bits, por isso está fazendo melhor uso dos recursos de suas máquinas de 64 bits do que o anterior versões teriam. Não, você verá tempos de pesquisa FASTA, tempos carregamento mais rápidos do projeto. Você tem soluções com 109 projetos. Não deve demorar tanto tempo para carregá-los. Então, outra coisa que eu fui destacar é que este é um aplicativo para console. E se você tiver alguma experiência escrevendo obrigação tipicamente C-sharp e não saberia que existe um modelo padrão que você tem um monte de instruções de uso no topo. E então você tem int main Java class, e então você tem int main, e então você tem o código lá. Mas aqui tudo o que estou vendo é o código. Este é dotnet 66 realmente se livrou de todo esse modelo. Então, deixe-me adicionar rapidamente o projeto de aplicativo de console dotnet F5. Deixe-me chamar esta demonstração. Estou às cinco, então conhecemos o Next. E então este é feito às cinco. Então é isso que provavelmente estamos acostumados quando olhamos para um projeto dotnet cinco são feitos projeto console AddFive ou arquivo de código. Você tem sua classe, você terá seu vazio estático principal e, em seguida, você tem seu código. No entanto, em dotnet six, eles se livraram dos rappers, nossa própria azeitona que o acabou de começar a escrever código. Isso não é, este não é um tutorial C-sharp. Só estou apontando as duas nuances. Meu tutorial C-sharp, definitivamente vou passar por tudo isso e as diferenças entre o dotnet, dotnet regular C-sharp e o que dotnet six traz para a mesa. Mas é muito legal , tanto quanto eu vejo. Agora, outro recurso legal para mim é o aumento da inteligência quando se trata de dicas de código, insinuando o que você pode estar recebendo enquanto você está escrevendo seu código. Novamente, veja isso como uma enorme produtividade quando eles adotam o recurso no código tele. E você verá esse pequeno ícone aqui que permite que você alterne algumas das opções. Então, se eu digitar console, você verá que ela está preenchendo automaticamente a linha de gravação de pontos. Não está esperando que eu vá para a lista e, em seguida, selecione-a. Posso dispersar a aba e depois a banheira, desde que estejam de acordo. Personagens à direita do cursor, posso pressionar tab e, em seguida, ele os preencherá. Estou aqui. Deixe-me tentar outra coisa. Se eu fizer algo como varname, var num one é igual e então veja que está sugerindo que eu provavelmente quero inicializá-lo para 0. Deixe-me ver se é realmente que o inteligente, ok, está sugerindo num2. E se eu quisesse nome var? O que isso sugere o nome var? E depois um espaço e então tudo bem, então acho que quebrei. Mas você pode ver o que está chegando talvez. Tudo bem. Então eu acho que o nome var é vago. Como, você sabe, você precisa digitar para que ele saiba o que exatamente andar dez da variável será antes de dar o valor. Então, se eu dissesse o nome de string um, vamos ver o que isso sugeriria. Stringy e um. E também apenas mostrando, tudo bem, então esse é um recurso que eu acho que horas extras aumentará em sua oferta porque isso é realmente baseado em conclusões frias, com base em outros exemplos de código de vários repositórios em todo o lugar. Então eu acho que nomes de variáveis aleatórios que eu desejava que raramente usassem, e é provavelmente por isso que está tendo tanta dificuldade em entender o que estou conseguindo. Mas então ele não pode ver com o núm um, num dois, se descobriu. Acabei de pressionar Enter. Está sugerindo linha de gravação de pontos do console, guia. E então ele vai sugerir na única guia ali, eu imprimi um sem escrever uma linha de código e olhar para isso, pressiono parar uma vez e estou imprimindo número 2. Então eu acho que você o usa, parecerá mais fácil, fará melhores sugestões. É claramente contextual porque ele sabe que num1 e num2 estão nos documentos estão no programa, sabe que ele pode sugerir isso mais tarde. Não faça pelas minhas operações. 3. Crie seu primeiro projeto de Console de C#: Bem vindos de volta pessoal. Nesta lição, vamos fazer um rápido tour pelo Visual Studio 2022 enquanto estamos configurando nosso primeiro projeto, o Visual Studio 2022. Assim que ele for lançado, você terá essa pequena janela. Estou executando o modo escuro, é por isso que meu parece tão legal, mas você pode estar correndo claro ou azul, o que é algo que você pode ter conseguido selecionar enquanto estava fazendo a instalação e as etapas iniciais. No entanto, seja qual for o tema que você estiver executando, o layout será muito parecido com isso. À esquerda, temos projetos recentes. Você vê aqui que eu colapsei meus projetos recentes, o que eu tenho alguns projetos. Só não quero ser atingido com nada. Farei você sentir como se o seu não estivesse funcionando tão bem quanto o meu. Mas depois de iniciar suas atividades de desenvolvimento, o Visual Studio irá arquivá-las à esquerda para permitir que você as inicie rapidamente, se for necessário. No entanto, nós dois temos a oportunidade de começar para que possamos preencher um repositório a partir de um repositório online como o GitHub ou como DevOps. Podemos abrir um projeto ou solução existente. Podemos abrir uma pasta local e, em seguida, podemos seguir em frente e criar um novo projeto. Também podemos continuar sem código. Vou seguir em frente e criar um novo projeto. Você tem modelos diferentes e esses modelos são relativos às cargas de trabalho que você selecionaria durante a instalação. À esquerda, você usou modelos recentemente. Se você adicionar guanine e já experimentou, então você teria esses tipos de modelos listados à sua esquerda, seja qual for o que eles experimentaram. Caso contrário, pode ser problema decimal vazio. O certo é onde você tem todos os modelos potenciais que você poderia ter com base em suas cargas de trabalho. Mais uma vez, você também pode pesquisar e filtrar. Então você vê que eu tenho muito aqui. Não sei onde alguns deles seguem na lista. Sempre posso digitar aquele que estou interessado em outubro, e ele filtrará essa lista de acordo. Ao selecionar seu modelo, você tem várias opções. Você tem o idioma em que deseja que o modelo esteja. Este é um ponto C pobre, então vamos nos concentrar no C-sharp B como modelos. Em seguida, temos todas as plataformas ou Android ou como zeros. Você pode filtrar nosso de acordo com isso. Você também pode filtrar de acordo com os tipos de projeto. Estranhamente, na programação do console neste módulo em particular, pude ver facilmente um C-Sharp no console, e então ele só me produziria os modelos que são propícios para essas duas opções. Caso contrário, com esses filtros, é claro que posso percorrer. Se você não encontrar o modelo que está procurando, vamos ver aqui. Você chega até aqui e está tentando encontrar o console C Sharp e ele não está lá. Isso significa que você provavelmente não instalou a carga de trabalho. Assim, você sempre pode ir até o final da lista e instalar mais ferramentas e recursos que, na verdade, apenas reiniciariam o instalador que permitiu selecionar suas cargas de trabalho. Você seleciona o que falta, que seria para desenvolvimento de desktop. Olá Visual Studio para se modificar. E então, da próxima vez que você vier aqui, você deve ficar bem. Vamos começar a usar um aplicativo de console C Sharp. Portanto, observe que você tem o console C Sharp ativado, você também tem o console VB. Absolutamente muito cuidadoso para anotar o idioma que está sendo usado não estava usando Vizio OBC. Se você quiser ter certeza de que escolhe C afiado. Então, quando eu fiz o console, você teria visto duas opções diferentes, C14 dotnet framework versus dotnet Core. Então, na verdade, vamos nos concentrar no dotnet Core porque o .net Framework é uma tecnologia mais antiga. Foi quando era o Windows apenas desde o dotnet Core, não nele se tornou código aberto. Então, queríamos nos concentrar nos avanços mais recentes com o desenvolvimento NOT IN IT e usamos o dotnet Core. Escolheremos o aplicativo de console que pode ser executado no dotnet Core que pode ser executado em todas as plataformas. Lembre-se, eu não mencionei que esta é uma plataforma cruzada antiga, uma fenda que apenas clique duas vezes nela. E então nos depararemos com o menu, desculpe, a opção do assistente para colocar o nome do nosso projeto, escolher um local e selecionar uma solução. Vou escolher o nome do projeto. Muito simples. Olá, mundo. Esse geralmente é o primeiro programa que alguém escreve em qualquer linguagem de programação. Helloworld. Observe que, ao alterar o nome do projeto, ele altera automaticamente o nome da solução, mas não quero necessariamente que a solução tenha o mesmo nome de um projeto. Então, vou escolher este. Vou nomear essa programação de console. A relevância disso é que a solução para um projeto, desculpe, uma solução para um problema. Quando você está desenvolvendo um aplicativo, você está desenvolvendo uma solução para um problema. Solução. A solução pode ter um nome, mas tem projetos diferentes, o que é algo que estaremos fazendo. Então, teremos uma solução que tenha muitos projetos. É por isso que estou nomeando-os de forma diferente, mesmo que por padrão, tenha tentado dar o mesmo nome a eles. Estou mostrando que você não precisa necessariamente porque há momentos você tem uma solução e, em seguida, você tem projetos diferentes com nomes diferentes na mesma solução. Nome do projeto. Helloworld. Se você quiser alterar sua localização, você pode fazer isso, mas vou deixar meu local padrão. E, em seguida, o nome da solução é a programação do console. Então eu vou bater em Next. É opcional agradar uma solução no projeto no mesmo diretório. Vou deixar isso até chegarmos a Next. Em seguida, temos que escolher a versão do framework em que estamos interessados. Portanto, temos dotnet Core dois pontos um, o que está claramente dizendo que você é suporte automático. Então minha sugestão é não começar por aí. Se você já está fazendo algum desenvolvimento e tem uma obrigação quart 2.1 fora. Então, basta dizer tente atualizá-lo o mais rápido possível. Mas isso é auto support.net Core três pontos um que estará em suporte até que eu acho que dezembro de 2020 para este dotnet cinco era como um intermediário entre 3.16 e ele está saindo de apoio em uma tigela eu fora no mesmo ano. Mas dotnet seis abriga apoio a longo prazo e isso estará em uso até o 2024 ou sobre isso. Ele estará em uso por alguns anos. Eu sugiro que você comece com Dutton às seis, pois isso tem a maior longevidade de todas essas versões. Dito isto, no entanto, com apenas alguns ajustes entre cada versão fora das estruturas dotnet, cada versão do C-sharp melhorou incrementalmente. E a maior parte do que você pode fazer em 3.1 também é possível em dotnet six. Mas então dotnet seeks também tem um refinado certos processos e os layouts de código que não são visíveis em versões anteriores. Então, vamos fazer uma comparação rápida apenas para garantir que você possa apreciar a diferença em nuances entre as versões. Fui começar com dotnet seis. Em seguida, podemos ir em frente e clicar em Criar. Esse é o resultado final do Oscar editar nossos arquivos de projeto. Um arquivo realmente no Solution Explorer e um arquivo chamado program.cs com uma linha de código ou comentário em uma linha de código. Vou fazer uma pausa, a partir deste ponto, acabamos de olhar para tudo o que criamos um projeto, é alguém que vamos fazer muito mais em frente, daqui para frente. Portanto, não se preocupe se você não concluiu todas as etapas para a memória. Isso foi muita informação, mas estaríamos fazendo isso novamente para o normal, fomos pausar. E quando voltarmos, vamos fazer um tour pelo Visual Studio, esse IDE, do que ele é capaz e como ele nos ajudará com nossas atividades de desenvolvimento. 4. Tour de edição de Visual Studio 2022: Tudo bem, nesta lição estamos dando uma olhada no Visual Studio 2020 para a interface do usuário, como tudo está conectado, como funciona, então nós o usamos em geral. Primeiro de tudo, você notará que meu Solution Explorer está à esquerda. seu, por padrão, provavelmente está à direita. Você pode realmente pegar isso o que devo dizer, barras de ferramentas e movê-los por toda parte. Se você tem uma visão diferente para todo o Visual Studio é definido para você. Pessoalmente, gostei do Solution Explorer à esquerda. Então, na verdade, posso arrastá-lo e encaixar. Você notará que esses são os quadrados aqui em cima. Quando você o coloca no quadrado, ele mostrará onde ele aparecerá. Se você liberar o dispositivo apontador. Se você soltá-lo no centro, ela se tornará outra banheira. Eu não quero necessariamente escrever código e o suficiente para guia aqui para alterar um arquivo e depois voltar. Eu não gosto disso, então eu gosto de tê-lo para o lado e no meu caso para o lado esquerdo. E então eu não quero tão grande, ou sempre posso torná-lo menor ou maior de acordo. Claro, isso afeta tantos imóveis que você tem para sua seção de editor de código. Você pode experimentar isso. Você também verá outras barras de ferramentas na minha tela que talvez você não tenha necessariamente. Qualquer barra de ferramentas em que você esteja interessado. Você sempre pode ir para View e ver se você fechar acidentalmente o gerenciador de soluções, então você sempre pode ir para a visualização e você verá seu Solution Explorer, clicar nele, ele reaparece. Você pode fixá-lo em amendoim ou escondê-lo. Então, se eu quisesse escondido, mas quando eu passar o mouse ou clicar uma vez, ele aparece e então eu uso e continuo fazendo o que queria fazer. Essa é outra maneira de mantê-lo na tela, por assim dizer. Mas tenha mais imóveis para escrever seu código. Vou tê-lo encaixado permanentemente por causa de uma tela iniciante que eu posso usá-lo, mas você pode não necessariamente ter isso, é por isso que estou mostrando como você pode alterar o esconde também. Vou me concentrar nas coisas que são absolutamente necessárias para passarmos pela programação do console, pelo menos por enquanto, à medida que avançamos, veremos mais e mais coisas. O Visual Studio tem temas diferentes como eu teria mencionado. Você verá aqui que estou usando o tema escuro. Você sempre pode ir para Ferramentas, tema e escolher o tema que você mais gosta ou obter mais temas. E quando você chega a um determinado nível, você pode até criar seus próprios temas. Então, se você começou com um tema leve, seu Visual Studio provavelmente ficará mais parecido com isso. Eu não gosto disso. Isso é duro para meus olhos. Se você escolheu azul , acho que ele só muda os itens minuciosos, certo? Portanto, esse é o visual clássico do Visual Studio do Visual Studio 20052008. É meio que se parece com isso ou mais como 2012, na verdade. E então você também pode, como eu disse, você pode escolher outros. Então eu tenho um fora do mercado chamado Nordic que tem essa tonalidade acinzentada e azulada. Só estou mostrando opções. Mais uma vez, você sempre pode obter mais temas se você usar o sistema sentado, meu sistema está definido como tema escuro nas minhas janelas. Então, está apenas herdando isso da minha máquina Windows. Quando você estiver confortável com a aparência do Visual Studio de ano inteiro, você poderá prosseguir. Em termos de codificação de cores. Este é o nosso editor e, na verdade, é apenas um editor de texto. Se você já fez algum código antes, então é um editor de texto se você nunca escreveu código antes e este é seu primeiro curso de codificação, isso não é problema. Isso não é um problema. Este é apenas um editor de texto. Pense nisso como o Bloco de Notas. Portanto, a única diferença, porém, é que vamos escrever sintaxe específica para realizar coisas específicas. Então, a codificação de cores é, você notará que certos códigos em si têm cores diferentes e eles realmente significam seu papel em toda a experiência escrevendo código. No tema escuro, pelo menos você notará que o console tem esse tipo de aparência cerceta. Sou daltônico, então me perdoe. Minhas roupas estão desligadas. Mas esse console tem esse loop em T. Portanto, o Console é o que chamaremos de uma classe que sempre vai codificar em cores qualquer coisa que seja uma classe. Então você notará que a linha certa é branca. Funções. Esta é uma função ou um método que será branco. E os métodos geralmente são caracterizados por parênteses abertos e próximos. E então cada linha, ou 90% das linhas que escreveremos pelo menos e com um ponto e vírgula. Então esse ponto e vírgula é muito, muito importante. Não, observe se eu perdi esse ponto e vírgula ou escrevo algo errado e o Visual Studio não consegue descobrir a que estou me referindo. Isso lhe dará essa linha vermelha. E se usar o Microsoft word, isso é algo com o qual você está familiarizado. Isso indicará que há algum erro com o código que escrevi porque a sintaxe como a carne regras muito específicas para ser aceita pelo nosso editor. Uma vez que o editor detecta que há algo errado com a sintaxe ou o que escrevemos. Vai nos dar aquelas que são linhas vermelhas. Às vezes, essas linhas são as setas. Se você passar o mouse sobre a linha, ele lhe dirá qual é o erro. Às vezes, ele não pode dizer qual é o erro Alt , bem aqui novamente, para mim que o ponto e vírgula é esperado, ok? Se eu colocar o ponto e vírgula, esse desaparece. Mas neste, ele não sabe o que estamos certos. É que sabe o certo. Mas talvez não seja capaz de determinar que a mentira é apenas uma versão com erros ortográficos da variedade. É aí que ele pode falhar. Então você sempre pode passar o mouse. E então você pode clicar nesta lâmpada, que tentará dar algumas sugestões. Aqui, o Visual Studio, especialmente em 2022, tornou-se tão inteligente que pode realmente ver contextualmente desta vez que provavelmente é apenas uma alteração de erro de digitação, certo? Para a direita. E eu sabia que se eu clicar nisso, ele vai encontrar a coragem para mim. E então essa linha desaparece. Que tudo isso Visual Studio está ativamente ajudando você a escrever código melhor. Se eu cometi um erro maior do que isso, algo assim. Não, eu não sei o que ele pode fazer nessa situação para me ajudar porque só vai dizer que isso não existe, não sabe o que é isso. Está sugerindo um erro. Este ainda está vendo. Essa é uma variável que nunca foi usada. Não há variável lá com esse nome, etc. Só estou mostrando que existem algumas áreas que podem ajudá-lo e, às vezes simplesmente não saberá o que fazer. Então, de tempos em tempos, você quer dizer que precisa acabar pesquisando no Google. Você sabe qual é o seu erro. Você acabou de apagar tudo e tentou escrevê-lo novamente do zero e ver toda a estética do visto e ajudá-lo. Agora, outra coisa que eu não destacou foi o fato que estamos recebendo essa equipe fria e escondida. Ao ir para a próxima linha, Visual Studio está fazendo uma suposição de que talvez eu quisesse fazer outra linha. Então, pressionando Tab, posso realmente aceitar esse bloco de texto antigo da nota. O que eu pretendo fazer se eu quisesse consolar. Mas desta vez, você vê que cometi um erro no console ponto. E então você verá aqui quando fizer um ponto, você realmente receberá essa coisa chamada inteligência, sugerindo métodos ou propriedades potenciais que você pode usar para completar o que está fazendo. Tudo bem, então às vezes, quero dizer, você não vai memorizar todos os métodos para escrever. É o fuso horário deles, você simplesmente não vai. Então, uma vez que você fizer os pontos, Visual Studio vai fazer sugestões e ver talvez você queira largura do buffer, talvez você queira ler a linha e ele começou a digitar e isso vai filtrá-los como sim, eu quero ler a linha. E então você pode usar isso. Outra coisa a notar neste ponto é que, se você não escolheu essa sugestão, algo aconteceu, você clicou. E então as sugestões quando até obtermos o MAC são controle e espaço da parada total são se você estiver digitando, irá sugerir para você. Mas digamos que você pressione o Escape ou você clicou e nem tenha essa linha de preenchimento automático disponível para você. Você quer saber quais são suas opções. Você pode realmente controlar o espaço e, em seguida, você verá suas opções. E eu vou ser honesto, faço isso há anos e tempos queridos quando não sei o que precisa vir a seguir, há momentos em que eu controle o espaço e eu percorro para algo parece o que estou procurando. E tenho certeza de que muita experiência que os desenvolvedores C-sharp lhe dirão a mesma coisa. Então eu só estou dizendo que para dizer que não há vergonha em chegar até aqui e não necessariamente ter certeza, o que você quer fazer a seguir. É por isso que o Visual Studio foi projetado dessa maneira para lhe dar IntelliSense para ajudá-lo para que você possa rolar. E então ele disse, eu realmente quero escrever algo ou eu queria receber entradas. Quero ler algo, AAC ler, ler, ler, ler luz. Talvez vamos tentar ler a linha. E então ele pode usar sua guia e um preenchimento automático que, certo? Quero dizer, não sou capaz de mostrar todas as nuances e tudo sobre o Visual Studio em vídeo de 15 minutos. Há coisas que você simplesmente falaria como iguais. E à medida que escrevermos código juntos, estarei apontando certas coisas antigas. Sempre mostrarei seus atalhos de teclado. Então, você sabe, como escrever um comentário em C-Sharp seria asterisco de barra, barra ou barra e uma barra de asterisco. E este é, permite que você faça várias linhas de comentários. Tudo bem, então se você precisar de uma ameaça a um parágrafo, você usaria este. Se você quisesse apenas uma linha de comentários, usaria essa. Porque a próxima linha não seria comentada. Código Sharp do teclado para ele. Essa seria a tecla Control e veja se você tem uma linha de código que você não é mais. Você não quer que ele seja executado. Você quer entrar para dizer que você espera, descontrole, você pressiona a tecla e, em seguida, você pressiona C enquanto ainda mantém pressionado o controle. Se você quiser descomentar, ela será a tecla Control. Você, você está segurando as letras Control e impressionantes K e C para comentar, e depois para descomentar. Mantendo pressionado Control. Você pressiona a tecla e você, essas são pequenas coisas que eu vou mostrar-lhe se você quiser duplicar isso e você faz Control e D. Tudo bem, nosso CV de controle, que é realmente um copie e cole, mas você percebe que eu não realcei a linha e disse Copiar, então peça Eu só tinha o cursor lá e seguida, mantendo pressionado o Controle C e depois v, e então ele apenas duplicou. O Control D pode funcionar para você com base em suas configurações de desenvolvimento. Significa não ter explodido e ver aqueles não funcionarem para eles, mas o controle CV geralmente funciona dessa maneira. Para a parte final da loja, mostrarei como você executa seu aplicativo. Então, neste momento, temos algum código que deve imprimir no console ou onde fazer programação do console. Programação de console porque, no nível mais básico, na maioria das linguagens projetadas para desktop, você terá um console. Então, quando dizemos console, queremos dizer como linha de comando. Se você já entrou on-line na sua máquina, o que é Windows, Linux ou Mac. Seria algo parecido com isso. Este é o seu console. Então, quando dizemos gravação de pontos do console e eu, e estamos chamando a funcionalidade subjacente que usa essa janela de prompt de comando. E vendo que eu queria imprimir qualquer texto que descrevi aqui. Esta janela. Quando você estiver testando seu aplicativo no Visual Studio, você tem a opção de executá-lo, e isso está usando a depuração. Executá-lo sem depurar as balas afiadas do teclado seria F5 para imitar depuração e controle, além de F5 para imitar nenhuma depuração. Mais tarde, veremos o que significa depuração. O efeito líquido geral é que quando você pressiona esses dois botões de reprodução, ele deve executar o código que você escreveu. E ele deve aparecer na tela e mostrar o que é o alt sair do seu código, se é desejável ou não agora é onde você programação entra, você faz suas modificações e você pode chegue ao ponto em que você quer que seja. Mas para executá-lo, você só vai pressionar o botão Iniciar. E então ele começa a depurar o CDC, a janela de saída está chegando e está me dando todos os tipos de estatísticas. E então você obtém a janela do console que se parece com um prompt de comando. E então você obtém sua linha HelloWorld. E ele está dizendo que o código foi executado a partir deste local. É um arquivo executável. Tudo bem, então qualquer instalador, qualquer aplicativo que você executar geralmente é um arquivo executável. E então diz que vai automaticamente, bem, eles estão dando a você a opção de fechá-lo automaticamente, mas não necessariamente queremos isso. Podemos pressionar qualquer tecla para fechar esta janela. Então, se eu pressionar enter, ela apenas fechará a janela e nos retornará ao Visual Studio. E é isso mesmo. Então esse foi um aplicativo Hello World muito simples dado a nós pelo Visual Studio. Então, sim, o projeto chamava-se Hello World. Mas o código foi gerado para nós não porque o projeto foi chamado assim. Antes de sair, deixe-me dar um pequeno tour pelo Solution Explorer, mesmo que eu vá expandir isso um pouco mais, aqui está o nome da solução. Então lembre-se que eu disse que tínhamos uma solução diferente de projetos ou projetos. Portanto, temos a solução chamada programação de console. E então temos o primeiro projeto chamado helloworld, que com um clique revelará um arquivo XML que nos permite mudar certas coisas. Não estamos entrando nisso agora. Então, temos dependências. Você não precisa se preocupar com isso, certo? Não. E então temos um arquivo chamado program.cs, que é o nosso arquivo de classe manejando frio. Não podemos vários arquivos, é claro, em nosso projeto, que veremos à medida que avançarmos. Então é isso mesmo para a turnê, a turnê geral do Visual Studio, o que ele traz para a mesa e ajudará você a escrever código limpo e maravilhosamente executável. Quando voltarmos, veremos a diferença entre um projeto dotnet six e as versões anteriores do dotnet. 5. Entenda a diferença entre. NET 6 e versões anteriores: Tudo bem pessoal, então me pergunto que estivemos aqui na última vez que criamos nosso primeiro projeto de programação de console, chamamos de helloworld. E nós exploramos algum código. Também exploramos o Visual Studio em um todo. E o que eu queria fazer é apenas explorar a diferença entre esse modelo de programação de console e os que teríamos obtido do dotnet five ou 3.1 ou mesmo dotnet framework se o usássemos. Uma maneira simples e simples de obter um novo projeto é a solução principal diretamente. Tudo bem, lembre-se de Solution Explorer. Temos a solução em cima e é caracterizada cama em fita roxa dentro dessa janela. E então o projeto tem o emblema que nos dá a linguagem em que este projeto foi escrito comido ou deveria estar escrito. Assim, podemos clicar com o botão direito na solução. Em seguida, vamos para Adicionar. Então dizemos novo projeto. Então esta tela deve parecer muito familiar para você. Esta é a mesma tela que usamos para adicionar o primeiro projeto. Podemos escolher o console. E porque eu tenho nos meus filtros, estou vendo isso de perto e pessoal, mas se eu simplesmente limpar, então vou ter um medalhista, vou usar um aplicativo de console. Então este eu vou chamá-lo de Olá mundo. Nenhuma sugestão ao nomear seus projetos. Não use espaços. Sugiro que você não use espaços. Isso é um. Tudo bem. Não use espaços em nome do projeto e CamelCase suas palavras. Você notaria que meu Olá tem H maiúscula e o mundo como W. maiúsculas Para fins de legibilidade, é uma palavra, sim, mas pelo menos com as letras maiúsculas, você pode ver onde uma palavra pára e outra começa no bloco contíguo de caracteres. Eu também sugiro que você fique longe de personagens especiais. Na verdade, esse é o único que eu realmente uso é um sublinhado na nomeação de projetos. E essas são mais sugestões porque mais tarde você pode acabar com alguns problemas que outras plataformas não gostam, traços e outras coisas. Você pode usar um sublinhado e às vezes você verá as pessoas usarem um ponto. Não apenas perfeitamente bem fora do curso. Então posso dizer helloworld dot e chamarei essa rede de cinco, que sabemos que este é o aplicativo Hello World e seu relativo aos arquivos dotnet. Então é por isso que eu me nomeei é muito importante. Não há indícios de que este seja feito às seis realmente. Mas como todo o curso é construído nosso próprio dotnet procura não ser específico sobre todos os projetos que estão sendo feitos às seis. Só estou destacando este porque este é o outlier. HelloWorld.net cinco. E depois clicamos em Avançar. E então este, vou garantir que ele saiba que estou usando dotnet F5. Então, vou clicar em Criar. Tudo bem, então agora nosso novo projeto é, e se você olhar para ele, verá que temos dois projetos. Se eu os colapsar, você os verá individualmente. Você verá o HelloWorld e verá helloworld.net F5. Se eu expliquei o Hello World, você verá os arquivos HelloWorld. Se eu expandir o HelloWorld, fiz cinco, você verá os cinco arquivos. Observe que a ferramenta projeta pelo menos na base do nosso idêntico em termos do que você obtém. Você obtém o arquivo program.cs. Vamos comparar esses arquivos program.cs. Já estabelecemos que é assim que o arquivo dotnet six program.cs se parece. Bom, limpo, literalmente uma linha, adicionamos essa terra adicional. Bem, deixe-me voltar aos padrões. Isso é o que temos que segurar a caixa. Agora veja o arquivo dotnet F5. Há muito mais acontecendo aqui. Bem, o que você chama de declaração usando? Então, eu usar a instrução é uma declaração que diz que preciso usar essa biblioteca em seu sistema. Portanto, cada máquina Windows, cada máquina Markov ou Linux, eles têm certas bibliotecas, são certos bits de código compilados que estão disponíveis no nível do sistema. Que quando você está escrevendo um aplicativo, você pode realmente escrever um aplicativo para acessá-lo em qualquer máquina. Quando dizemos usar o sistema, isso significa que qualquer máquina em que ele esteja sendo executado, tente acessar as chamadas da biblioteca. Essa biblioteca do sistema é o que é importante para o nosso console ser executado, é por isso que eu disse que ele usa o prompt de comando. Quando incluímos isso, então temos acesso a determinadas funções, são certos bits de código que menor acesso por si só, o sistema. Você verá este chamado namespace. Não, namespace é a representação de código da pasta em que o arquivo está localizado. Simplificando, cada projeto que aparece no disco, o Project Explorer é realmente uma pasta em nosso sistema de arquivos. Tudo bem, literalmente é uma pasta. Então, se eu clicar com o botão direito do mouse nisso e ver aberto, desculpe ter perdido lá. Se eu clicar com o botão direito do mouse e disser a pasta aberta no File Explorer, ele literalmente iniciará um explorador de arquivos mostrando esse senso de arquivos, todos os arquivos envolvidos no programa. Se eu subir, isso é programação de console. Programação de console, ou seja, esse é o nome da solução, é uma pasta. Então você tem essa pasta, ok, nada está lá dentro. Também temos hello world. Lembre-se de nós. Dane-se com esse projeto. Na lição anterior, temos hello world, dotnet F5. Esse é outro projeto. Só estou te mostrando isso. Isso é tudo o namespace realmente é. É apenas o nome da pasta. Portanto, se você tiver subpastas e arquivos de entrada nessas subpastas e o namespace seria automaticamente mais completo ponto, ponto, ponto, ponto, ponto para toda a janela hierarquia de pastas. Em seguida, você notará que ela tem declaração de classe chamada programa interno de classe. E diz chaves abertas e fechadas. E temos uma função principal estática vazia, que então desce para imprimir nossa linha de código helloworld. Então, a única coisa real que esses dois têm em comum é que ambos estão usando a linha de leitura de pontos do console para imprimir. Saiba o que os engenheiros da Microsoft fizeram para dotnet seis reduziu muito a repetição porque em todas as versões do.net Framework até a rede cinco, é assim que o código seria. No mínimo, por padrão, ele sempre começa com esse vidro e sempre começa com essa função média. O que eles fizeram foi a repetição Echo Dot. Então, todos sabem que esses dois são necessários no mínimo. Então eles disseram: Bem, vamos deixar isso implícito. Não queremos que o console precise usar o sistema para que possamos atender ao que está implícito também. E nós apenas chegamos direto aos não-pontos de codificação na alma porque, com base na versão que você pode usar, diminui e seus seis são usar, diminui e seus seis são limitados ao Visual Studio 2022. Bem, se você estiver usando gêmeo para 19 por qualquer motivo, e você tiver que usá-lo cinco em vez de fazer seis, então é assim que seu código será. Mas tudo o que vamos fazer pelo dotnet procura, é muito possível para um fogo dominante. Apenas lembrei que todo o seu código está sendo escrito dentro da função média e tudo opera sua própria função principal. Se você tiver que ir para outra função, faça isso dentro da classe. Se você tiver que ir para outra classe, você tem que fazer isso dentro do namespace. Não quero confundir vocês. Eu só queria mostrar como são os modelos mais antigos C-sharp em comparação os novos modelos C-sharp e ajudá-lo a apreciar por que um parece do jeito que parece e por que o outro parece de outro jeito? Não, antes tínhamos clicado para, com um clique no projeto, conseguimos ver esse arquivo XML. Aqui está que a unidade no tipo de saída é ponto EXE. Essa estrutura de destino é dotnet seis e novos usos implícitos estão habilitados. Veremos isso mais tarde, e isso não está permitindo nenhum nível. Também veremos isso mais tarde. Se você olhar para o dotnet cinco, verá que ele tem menos parâmetros de configuração, mas está apenas dizendo que a estrutura de destino é 5. Ainda é a mesma etiqueta de saída. Se você fizer dotnet Core três pontos um projeto, ele se pareceria com este modelo de projeto, modelo código, exceto que acho que isso provavelmente seria público em vez de interno. Observamos a diferença entre aqueles mais tarde e o arquivo XML, o arquivo de configuração do projeto também pareceria um pouco diferente. No entanto, como eu disse, vamos nos concentrar no dotnet seis. Então eu fui deixar o projeto dotnet cinco lá para referência. Mas vamos nos concentrar no dotnet seis daqui para frente. 6. Desenvolvimento usando o Código do Visual Studio: Ei pessoal, Nesta lição, vamos olhar para uma alternativa ao Visual Studio 2022. Portanto, você pode precisar de uma alternativa por vários motivos, Visual Studio é realmente criado para máquinas Windows e Mac OS. E sua máquina em geral pode não estar fazendo um bom trabalho ao executar o Visual Studio, o que é bom porque é um aplicativo muito grande que requer certos recursos que nem todas as máquinas podem fornecer regularmente. Tudo bem. Portanto, a Microsoft nos deu uma boa alternativa leve que é multiplataforma, o que significa que ela é executada em todos os sistemas operacionais e é muito fácil de configurar e usar, e este é o Visual Studio Code. Saiba a primeira coisa, há duas coisas que você precisa. Um Visual Studio Code, mas você também precisa instalar manualmente o tempo de execução dotnet seis. Assim, você pode chegar a isso fazendo uma simples pesquisa do Google.net seis Runtime ou ASP.net Core seis tempo arruinado, que for, então isso permitirá que você instale o SDK em qualquer um dos sistemas operacionais que você tem. Depois de fazer isso, ele instalará os binários em seu sistema e você poderá usar dotnet six. Agora, se você já tiver o Visual Studio instalado, ele veio com ele. Então você não precisa necessariamente fazer essa etapa novamente. Tudo bem? Depois de ter o tempo de execução, é claro, você vai em frente e baixe o Visual Studio Code. Você vai em frente e instala o que for adequado para o seu sistema operacional. O Visual Studio Code de ninguém está instalado. Você terá uma janela simples o suficiente para aumentar ou diminuir a exibição usando Control Plus ou Control menos no teclado. Não, a partir daqui, você gostaria de configurar o espaço do seu projeto. O que eu gosto de fazer é criar uma nova pasta e depois usar essa pasta, meu ponto de operação, por assim dizer. Então eu fui abrir a pasta. E ao abrir a pasta , ele me perguntará qual pasta eu quero abrir, navegue até onde armazeno projetos. Então, nesta pasta de projetos, vou criar uma nova pasta. Vou ligar para a programação do console apenas para ficar em linha com tudo o que discutimos antes. Programação do console e, em seguida, selecione essa pasta. Assim que eu tiver essa pasta, vou querer salvá-la como espaço de trabalho também. Então, posso ver um arquivo e Salvar espaço de trabalho como. E então vou deixar isso como talvez console, espaço de trabalho de programação de console. Que eu sei que, uma vez que eu abra esse arquivo, ele abrirá essa pasta com todos os projetos e tudo lá dentro. Posso ver se isso fora de ter o espaço de trabalho, eu gostaria de ter pastas por projeto, da mesma forma que o Visual Studio, cada um com cada projeto que criamos, nos dá uma nova pasta e então você aguarda para irange os arquivos relacionados para um determinado projeto. Vou criar uma nova pasta em vez desse espaço de trabalho. E eu vou chamá-lo, digamos helloworld dot VS Code. Ortografia incorreta. Sempre posso clicar com o botão direito e renomear. Lá vamos nós. Olá, mundo. Sim, cite, saiba, para criar o projeto lá, ao contrário do Visual Studio, nos dá um bom assistente e uma interface de usuário visual. Tenho que usar comandos. Posso ir para o determinador, trazendo um novo terminal. E então dentro deste terminal depois de me certificar de que estou apontando para uma, pasta do cartão e, em seguida, para executar determinados comandos. Então, a pasta de alteração, o que você quer fazer é dizer cd e, em seguida, começar a digitar o nome da pasta desejada. Então eu quero olá, mundo, posso pressionar Tab e ele irá preencher automaticamente isso para mim. Pressione Enter. Não, estou olhando para a pasta helloworld. Esse caminho. Não há muito a pasta que estou segmentando. Misto. Eu quero realmente criar o projeto. Então eu posso dizer dotnet apenas escrevendo.net, você pode ver se você tem o tempo de execução ou o SDK instalado corretamente. Se você não conseguir algo assim, provavelmente precisará ir e tentar instalá-lo novamente. Mas posso dizer dotnet, novo console. Então, estou vendo dotnet, a capa. Por favor, me dê um novo projeto de console. E apenas pressionando Enter vai preencher esta pasta que eu segmentei com arquivos que são propícios para a programação do console. Quando clico em program.cs, que é um arquivo C-Sharp, recebo minha linha única, assim como tudo o que vimos, esse program.cs no Visual Studio. Você também pode obter um pop-up dizendo que você precisa de ativos adicionais. Você pode dizer que sim. Agora, outra coisa que é muito importante para sua experiência aqui no Visual Studio Code, extensões para programação Caesar, você pode ter recebido um ditado pop-up. Eles sugerem que a extensão se você não chegou, tudo bem. Se você for para Extensões, então você procura por um C nítido. Você verá no topo, C-sharp para o Visual Studio Code derramado por Omni Sharp. Certo, é bom saber. Mas a parte relevante é que você deseja definitivamente instalar isso para que eles recebam algumas dicas de código sobre alguma inteligência para ajudá-lo com sua programação C-Sharp em diversos nesta interface. Então, você veria no botão Instalar assim quando você clica nessa extensão. Então você pode ir em frente e instalá-lo. E depois de instalá-lo, você pode prosseguir. Agora, para executar seu aplicativo, o que você gostaria de ver é dotnet run. Digamos que dotnet run. Começou a compilar e, em seguida, mostrará a saída ou os resultados em vez dos terminais. Então, o mais legal do determinante é dar acesso direto ao mesmo tipo de console que apareceria toda vez que executamos um aplicativo no Visual Studio sem iniciar externamente um outro console, você pode fazer tudo aqui nesta interface. Você pode executar, você pode ir e executar. Você pode começar a depurar, se desejar, o que lhe daria uma experiência um pouco diferente se você começar na depuração. Mas o ponto é que você realmente veria tudo dentro do código do Visual Studio sem realmente precisar iniciar uma janela externa. Claro, cada detalhe tem seus prós e contras. Este é agradável e leve e você pode ver que ele nos traz um sabor ligeiramente diferente para toda a experiência de desenvolvimento. Mas, dito isso, tudo o que vamos fazer no Visual Studio é realmente reparado, replicável, replicável, seja qual for essa palavra. Mas ele pode ser imitado no Visual Studio Code para ajudá-lo a ter uma experiência muito semelhante. A última coisa que vou mostrar a vocês é como você pode gerenciar vários projetos dentro desse espaço de trabalho. Então, vamos pensar em nosso espaço de trabalho de programação de console como nossa solução. E então temos pastas diferentes que representam cada projeto. Dentro desta pasta de programação do console, eu gostaria de criar um novo projeto. Vamos chamar isso de “olá mundo”, assim como o que fizemos no Visual Studio. Olá, mundo, dotnet f5. Deixe-me acertar minha ortografia. Lá vamos nós. Então, se eu quisesse criar um projeto em vez dessa pasta, tenho que me certificar de que estou apontando para essa pasta. Então eu tenho que dizer algo como CB. E então eu fui ver uma barra de pontos, barra de pontos serrada do Goldbach. Porque olhe para ele. O caminho é HelloWorld VS Code para ver o ponto de cd para voltar à programação do console. Então, o CD NCI e comece a digitar Hello World e pressione Tab até ver a pasta em que estou interessado, que é.net cinco, pressione Enter. E então posso dizer dotnet novo console. E apenas usando as teclas de seta para cima e para baixo, posso passar por comandos digitados recentemente ou anteriormente. Então eu tenho que dizer dotnet novo, deixe-me aumentar o sistema, certifique-se de que você está vendo claramente o novo console dotnet. Mas quando fui especificar a versão, tenho que dizer dash F net F5. Portanto, isso só funcionaria se você tiver o dotnet F5 SDK já instalado, o que você provavelmente fará se instalar o Visual Studio. Se você instalar o SDK, manualmente o prego depois, volte e obtenha essa versão específica. Mas quando pressiono Enter, observe dentro do donut cinco, estou recebendo esse novo projeto, bem como os modelos de projeto, o modelo de código para HelloWorld e feito às cinco. Isso é essencialmente todo o código do Visual Studio funcionaria. O que você pode fazer é para cada orçamento que criaremos no Visual Studio, basta criar uma nova pasta, executar esse comando e, em seguida, você pode começar a codificar de acordo. 7. Revisão da seção: Tudo bem pessoal, chegamos ao fim da configuração do nosso ambiente de desenvolvimento. No mínimo, quatro estão em um sucesso diversificado, assim por diante, programação de console C-sharp. Temos duas ferramentas à nossa disposição. Temos o Visual Studio 2022. Estamos usando a Community Edition, e vemos aqui que é uma ferramenta completa verbal na qual a Microsoft investiu muito para garantir que, como desenvolvedores dotnet, temos um justo, confortável espaço de trabalho a ser usado. E isso vai nos ajudar a escrever algum código limpo e completo de Paul. Analisamos como podemos reorganizá-lo para seu próprio conforto movendo essas seções da Barra de Ferramentas, as diferentes partes, olhando para os diferentes temas durante todo o fim de semana, ele executa um programa. Podemos adicionar vários projetos a uma única solução e tudo assim. Fora disso, também analisamos o uso do Visual Studio Code. Visual Studio não é uma opção para você, seja por causa do sistema operacional ou das especificações do sistema. O Visual Studio Code é uma alternativa muito, muito leve , capaz e perfeita para usar o Visual Studio. Existem outros editores por aí, mas esses geralmente custam dinheiro. Então, estou apenas mostrando todas as suas melhores opções sem ter que gastar muito ou se algum dinheiro adiantado. Visual Studio Code é um bom editor leve que nos permite criar nossos projetos com alguns comandos simples em um terminal interno e começar a escrever algum código com tudo isso sente-se e não fique por aqui. Vamos começar a focar mais na linguagem C-sharp à medida que avançamos. E estaremos aprendendo a construir alguns aplicativos bonitos. 8. Entenda a Syntax básica C#: Tudo bem pessoal, então nesta lição vamos dar um passo atrás e ver como podemos continuar nosso desenvolvimento em diversos lançando um projeto existente e prosseguindo com a programação? Não, eu não mencionei de quando estamos fazendo a configuração que, à esquerda, você verá projetos recentes. Então, aqui estão alguns dos meus projetos recentes. Mas aqui está aquele em que eu queria focar, que é o que criamos juntos. Se você desligar seu Visual Studio, desligar sua máquina, você foi jantar, seja lá o que for, familiar, você quer voltar para um projeto no você está trabalhando ou em uma solução em que você está trabalhando, então você o veria à esquerda. Os projetos mais recentes sabem que pode haver um momento em que você trabalha em tantos que você não vê listados lá, você sempre pode abrir uma pasta local ou abrir um projeto ou solução. Então você gostaria de abrir nosso projeto ou solução. Então, vamos declarar essa rota porque esta, diz fácil clicar nela e ele trará Visual Studio com a solução. Se não estiver lá, então você deseja abrir um projeto ou solução, o que permitirá que você faça tocas para onde o projeto possa estar. Assim, você pode simplesmente navegar até ver o nome da pasta do projeto ou da solução. E então você verá esse arquivo aqui, que é um arquivo de solução. Sou arquivos Solution. Qualquer abordagem FCS para nós, não vemos no arquivo de projeto CS do Visual Studio Code. É um CFI que clicamos nele no Visual Studio trouxe essa configuração XML. O arquivo da solução iniciaria o Visual Studio com todos os projetos e arquivos associados à solução. De um modo geral, o nome desse arquivo será o mesmo nome. Eles iriam ver como o nome da pasta. Se você clicar duas vezes nisso, ele realmente fará a mesma coisa e iniciará o Visual Studio com essa solução. Agora que parece que o arquivo de solução pode ser encontrado a partir do seu sistema de arquivos se você navegar lá e puder, posso navegar facilmente com o botão direito do mouse e dizer Abrir arquivo, Abrir pasta. Então, se eu fosse navegar aqui manualmente, aqui está esse arquivo. Se eu clicar duas vezes nesse arquivo, ele iniciará o Visual Studio com meus projetos. Só estou mostrando como é fácil retomar onde você teria decolado. Conhecendo essa parte das lições, vamos nos concentrar na linguagem C-sharp, a gramática , o vocabulário e a sintaxe geral que você usaria para escrever código. Não vamos aprender a língua inteira aqui e eu não vou ser div, estando muito profundamente em certas coisas. Estou apenas dando a você uma visão geral ampla de como é C-sharp. C-sharp é a principal linguagem de programação dada a nós pela Microsoft para a plata.net. Tem uma semelhança próxima com a linguagem C plus RC. Portanto, é uma parte da linguagem C é meio que botch. Também é preciso muitas de suas construções de outras linguagens de programação orientadas a objetos, como Java. Se você estiver alerta, se você aprendeu C, e se você aprendeu Java, muito do que o C-sharp está fazendo parecerá familiar se você não aprendeu nenhum dos dois. E esta é sua primeira vez fazendo programação. Mais uma vez, não há problema. Estou indo do básico, então você será capaz de pegar. Agora C-Sharp neste ponto está na versão dez, ele passou por muitas versões com cada iteração do.net framework no dotnet Core. E eu posso simplesmente excluir, continuar ficando cada vez melhor. Mas uma coisa que devo entrar na Microsoft é a capacidade deles atualizar o idioma, mantendo certos regimes, arranjos ou paradigmas mais antigos vivos. Portanto, mesmo que possa introduzir uma nova maneira de fazer algo lá, todo o caminho de escrevê-lo em versões mais antigas do C Sharp não ficará obsoleto. Não é como se fosse dizer, oh, que não pode funcionar mais, você tem que mudá-lo. Então eles fazem um excelente trabalho de atualização. Destruindo código antigo. C sharp também é de código aberto e você pode ir ao repositório do projeto no GitHub acessando github.com slash.net slash C-sharp lungs. Código aberto significa que tudo o que você está fazendo o disponibilizou. Todo o código subjacente que eles escreveram representam nossa propriedade que você usará. Eles lhe dão o sapato, as implementações e tudo o que você pode entrar e você vê exatamente como ele funciona. Você pode até fazer contribuições aqui. Você vê aqui que ele faz 125 colaboradores. Claro, nem todos são funcionários diretos da Microsoft. Assim, à medida que você fica cada vez mais confortável, podemos começar a olhar para esta biblioteca, analisando como certas coisas são feitas e vendo se você pode melhorá-las. Também. Saiba mais cedo que estávamos olhando para certas coisas que são ilegais. Há certas coisas que você simplesmente não pode fazer na sintaxe. Existem certos propósitos específicos do servidor de Tolkien . Então, como uma hashtag ou um sinal de número ou sinal de libra tem a regra muito específica de abrir um único, eu meio que digo lagoa. Posso dizer erro na Polônia. Claro. Quando posso dizer algo que eu versão, observe que estou recebendo essa linha vermelha na versão. Isso faz porque não é algo que está no vocabulário. Então, assim como com o inglês ou qualquer outro idioma que você fale, existem certas palavras que simplesmente não estão no vocabulário. Palavras que você não usa porque elas não estão separadas da linguagem da mesma forma quando estamos escrevendo C Sharp ou qualquer outra linguagem de programação para esse assunto. Se o idioma não detectar o que você está escrevendo como parte de sua sintaxe, você obterá esse tipo de linha vermelha. Vamos começar com o comentário. Um comentário é uma boa maneira de documentar o que está acontecendo em sua leitura fria. Assim, podemos escrever um comentário usando barra de barra. E então podemos ver esta linha imprime hello world. Portanto, essa é uma boa maneira de informar o que ganhou, lembrando a si mesmo o que o código faz ou informar a outra pessoa o que é suposto fazer. Se você tiver um parágrafo inteiro que deseja escrever. Então você pode ver barra e asterisco. Observe que tudo depois da barra e do asterisco ficou verde. Então essa é apenas a codificação de cores para mostrar que é um comentário. Mas então você pode fechá-lo com outro asterisco e outra barra. Eu não queria que você fizesse isso. Qualquer coisa que você leia entre os asteriscos seria visto como um comentário. Este é um comentário de parque inteiro em várias linhas. Então, é assim que você pode escrever como um parágrafo inteiro descrevendo o que está acontecendo em um bloco inteiro de código. Portanto, isso é para uma linha de cada vez, isso suporta várias linhas. Também temos o que você chama de declarações. Uma declaração seria uma expressão que termina com um ponto e vírgula. Assim, em inglês ou na maioria dos outros idiomas, a afirmação geralmente é a frase também composta por palavras que geralmente têm uma ordem específica ou resmunga. Então, em inglês, você diria o adjetivo antes do conhecido. Em espanhol, você vê o conhecido então o adjetivo. Mas o fato é que isso é porão. Uma declaração está escrita nesse idioma específico. No C-Sharp, esta declaração inteira está escrita e você sempre deve terminar com um ponto e vírgula, mesmo que em outro idioma você termine com uma parada completa. Se você tiver uma instrução declarando uma variável, por exemplo, e eu explicarei o que é uma variável. Bem, digamos que o nome var seja igual a variável é um espaço de armazenamento temporário para detalhes. E então eu posso ver meu nome. É isso. Essa é uma afirmação que a linha vermelha está dizendo: Bem, você precisa terminar sua declaração apropriadamente, então eu preciso de um ponto e vírgula. Então, uma maneira de saber quando você precisa de um ponto e vírgula é que, se você escrever a declaração e ver essa linha vermelha, provável que você precise de um ponto e vírgula no final dela se tudo estiver bem, mas você ainda obtém a linha vermelha. Verifique e veja se você precisa de um ponto e vírgula. Agora há outra construção chamada bloco. Um bloco seria semelhante ao que vimos no modelo C-sharp cinco, e é denotado por chaves abertas e fechadas. Então, esses são blocos. Um bloco seria como um parágrafo em nossa linguagem humana escrita. Blocos podem ser namespace, pode ser para nossa classe. Você também pode ser para o método. Eu não quis dizer isso à medida que você entra, você obtém blocos para instruções if e declarações de repetição fora daquelas que eles exemplos aqui com Aeneas, a classe e o método. Se eu fosse fazer uma declaração if, eu diria se o nome. Não se preocupe com isso. Vou passar por tudo isso. Só estou mostrando sintaxe mais uma vez. Então, aqui está uma comparação. Se o nome for equivalente a. E então aqui está me mostrando que estou perdendo alguma coisa. Portanto, essa é uma daquelas vezes que pode sugerir um ponto e vírgula, mas isso não é uma afirmação. Um ponto e vírgula não é o que está faltando. Então, preciso escrever a sintaxe do carrinho. Há momentos em que você pode dizer, por que eu tenho que fazer isso assim. Eu geralmente digo que não pergunte por que se o idioma diz que é assim que você faz isso, basta fazê-lo dessa maneira. Às vezes, quando nos fixamos no porquê isso bloqueia todo o fato de que isso é exatamente o jeito que é. Vou dizer que se o nome for igual a alguma coisa, obviamente isso não é verdade. Mas vou começar um novo bloco. Isso está dizendo que se isso for verdade, então eu quero executar esse bloco de código que é denotado mais uma vez por nossas chaves. Não. Você se lembra de que temos que importar o que chamamos de namespaces. Então eu posso ter dito bibliotecas, mas esta é uma biblioteca, é um namespace. Um namespace é realmente uma coleção de classes. C, namespace tem uma classe igual a várias classes. Esse é um namespace e aqueles que compilam esse namespace, ele se torna bibliotecas multicoloridas. As diferentes bibliotecas de classes diferentes que você está aproveitando. O console Soul é uma classe encontrada no namespace ou na biblioteca do sistema. Ninguém, C-sharp seis, você sempre pode adicionar, você está usando vapor e sabão usando o sistema. Você sempre pode fazer isso. E à medida que você avança, talvez seja necessário saber que está acinzentado porque já está implícito que é desnecessário. Mas eu tenho System.Out e então você tem coisas diferentes aqui. Então você poderia dizer System.Out detalhe, você pode ver isso e aquilo o que quer que seja. O fato é que, se você não estiver usando ativamente nossa classe, há referência codificada telefonada no namespace. Então, o Visual Studio meio cinza disse que não é relevante. Agora, há momentos em que você tem determinados namespaces que deseja usar em vários arquivos. Agora, nas versões mais antigas do C-sharp, você teria que realmente repetir isso toda vez. Então, para cada classe que vou usar no console, eu teria que ter isso usando o sistema, usando o sistema, usando um sistema. No C-Sharp six, temos a oportunidade de adicionar o que chamamos de arquivo de uso global. Então, na verdade, posso criar um novo arquivo. E fui chamá-lo de usos globais. Então clique com o botão direito no projeto. Observe vários projetos, mas eu queria dentro do nosso projeto C-sharp procura HelloWorld. Clique com o botão direito no projeto e vá para Adicionar. E então posso dizer novo item. E, em seguida, o novo item me permite adicionar um novo arquivo de classe ou outros tipos de arquivos. Então, desta vez, estou focando no nosso novo arquivo da classe C-Sharp. Estou chamando de global usando este ponto cs, e então posso adicioná-lo. E então, a partir daqui, eu não preciso de tudo é que eu não preciso de todas essas coisas. Eu posso limpá-lo disso. Mas não, posso adicionar todas as declarações de uso que sei que serão usadas globalmente em todo o meu aplicativo para fazê-lo. Então, vou dizer global na frente disso. Então, basta dizer global usando global, usando global usando não, eu não preciso adicioná-los manualmente usando instruções em arquivos 51015. Só tenho um, por favor. E então eu posso simplesmente manter meu arquivo de código limpo e dedicado ao meu código. Agora, vamos trazê-lo de volta um pouco mais perto de casa e olhar para algumas das melhores práticas quando estávamos apenas escrevendo nosso código. Uma coisa é o recuo. Quando temos blocos de código, queremos ter certeza de que estamos fazendo recuo porque você não quer ter tudo em uma linha e, em seguida, não sabe onde uma chave é aberta e fecha, certo? Então, sempre será bom. Sempre que tivermos um bloco de código, certifique-se de recuar. Outra coisa é que os aplicativos em cada linguagem de programação têm como objetivo três estruturas de controle. Temos sequência. Então temos decisões não necessariamente nessa ordem específica, mas temos seqüência, temos decisões. E então temos repetição. Sequência refere-se ao fato de que ele sempre vai na ordem em que você escreveu o código. Só sei que você me viu pegar essas duas linhas de código e colocá-las dentro de cada Stevens e depois recebemos um erro. Por quê? Porque estou verificando uma variável chamada name, que ainda não existe. A única maneira de escrever uma declaração if contra isso é se eu já fiz isso existir. Então essa é a sequência que tenho para garantir que ela exista, então eu posso fazer processos contra ela. Tudo bem, então isso é uma sequência. Ele sempre será executado a partir da primeira linha. Então, a última linha nessa ordem exata é boa quando você está trabalhando em seu algoritmo ou no fluxo de seu aplicativo, a lógica que você verá, eu preciso que isso aconteça então, então isso, então isso. E então você escreve o código nessa ordem exata. Etapa um, passo dois, passo três, etc. Nenhuma decisão também é chamada de declaração condicional. Isso significa que vou tomar essa ação caso essa condição seja verdadeira? Então, se essa condição for verdadeira e estaremos analisando as diferentes condições e como podemos escrevê-las. Mas se essa condição for verdadeira, então eu queria pegar este leilão. Qualquer código que esteja dentro desse bloco seria como o fino. Porque se estivéssemos vendo isso em inglês, diríamos que se estiver nublado, então eu queria fazer com essa ação. Então ele diria algo como outra coisa, fazia outra ação. Isso é tudo o que pensamos como seres humanos. E isso é exatamente um todo. Temos que escrever nossos aplicativos. Então, depois de dizer, se isso for verdade, então dentro desse bloco de código, defendo o que vou fazer. E então eu posso ver o outro, fazer outra coisa. Vamos olhar para isso mais tarde. E estou apenas mais uma vez dando a você uma ideia do que queremos dizer com decisão ou declarações condicionais. O próximo seria a repetição. Então, se você tem algo a fazer várias vezes que talvez imprima hello world 50 vezes, você tem a opção de apenas escrever isso 50 vezes, o que, claro, não é muito sustentável. Ou você pode fazer uma repetição. Então você poderia fazer algo como loop. E vou fazer um loop rápido aqui para explicar a sintaxe. No entanto, só estou mostrando o que você diria para algumas iterações. Tudo isso apenas define para ver muitas vezes que você quer que isso aconteça. Faça essa ação mais uma vez, você pode ver que ela está em um bloco. A recaptação, o interior desse bloco seria repetido por qualquer número de vezes que você definiu aqui. Tudo bem? Portanto, esses são alguns componentes-chave para escrever programas em geral. Mas, em seguida, a sintaxe C-sharp , é claro, ela a torna muito específica. Passe completamente usando o Visual Studio. Não vou me envolver demais em toda a sintaxe. O que vou fazer é deixar alguns comentários apenas para que possamos lembrar o que foi discutido aqui. E vou apagar qualquer coisa que não seja totalmente importante para este aplicativo Hello World. E vou dizer que existem três estruturas de controle na programação C-Sharp. Sequência. E acho que a sequência é a mais importante. Então, se houvesse uma sequência de ordem de precedência chamada suas primeiras decisões e repetição, essas são mais baseadas em sua necessidade. sequência de entrada definitivamente governa tudo porque sempre entra na artéria que você escreveu o código. É isso mesmo apenas para um amplo entendimento, visão ampla da sintaxe C Sharp. Quando voltarmos, vamos criar um novo projeto. Vamos ver como podemos escrever um programa real que interage com o usuário. 9. Programas de entrada e saída: Tudo bem pessoal, então estamos aprendendo C-sharp. Estamos nos familiarizando com o Visual Studio. Vamos escrever um programa real, certo? Então, vou criar um novo projeto para este novo programa, vou clicar com o botão direito do mouse ou solução, vá para Adicionar novo projeto. E então queremos outro projeto de aplicativo de console C Sharp. Vou chamar isso de entrada, saída. Saída de entrada Clinton. Em seguida, sabemos que precisamos trabalhar com dotnet six e depois criamos. Agora, é claro, se você estiver usando o Visual Studio Code, isso significa que você criaria uma nova pasta, criaria um novo programa de console dotnet e, em seguida, você estará no mesmo estágio que estamos, assim por diante. Este aplicativo sobre o que vamos fazer é apenas escrever comentários. Primeiro, declare o que chamamos de variável. Vamos reduzir a entrada do usuário e armazenar em uma variável. Em seguida, vamos imprimir o conteúdo de uma variável ou das entradas do usuário. Tudo bem? Portanto, ele não o visualiza sempre que você estiver usando um aplicativo, seja na área de trabalho do quadro branco, você geralmente, como o usuário colocaria em detalhes, pressionaria , Salvar ou algo assim. E depois apontar, você precisaria ver representado pelo programa ou salvo no ponto mililitro. Não estamos bem na parte em que vamos ver se é até amanhã. Mas, para null, podemos pelo menos ver como é que recebemos a entrada do usuário e, em seguida, enviá-la de volta. Então, normalmente, os computadores fazem três coisas. Eles aceitam entrada, o processo duplo e, em seguida, produzem uma saída. Esses são os três processos de qualquer computador. Marque entradas, processe-as e, em seguida, envie o processo de saída de volta , é claro, pode ser tão complicado quanto uma equação matemática, poderia ser outra coisa. Mas o que quer que façamos entre, tomar a entrada e produzir um opiáceo é chamado de processo. Tudo bem, vamos dar uma olhada em declarar uma variável. Agora, a C-Sharp tem tipos de dados diferentes. Um tipo de dados é praticamente parecido com um adjetivo que descreve a variável e define ou informa à variável que tipo de dados ela pode armazenar. Tipos de dados em. C Sharp pode ser. Deixe-me apenas esses tipos de dados podem ser e não estão necessariamente limitados a. Só estou mostrando os básicos. Isso será string. Seriam como palavras e números, como placas de licença, como um nome ou um número dividido de licença. Como eu disse, Nomes e Números. Tudo o que quiser contém letras. Ele pode conter números, pode conter caracteres especiais. Bem, isso é o que chamamos de fluxo. Também temos tipos de dados numéricos como inteiro, o que seria mais parecido com números inteiros, o que seria mais parecido com decimais, então você realmente tem barra flutuante dupla. Fez versões mais recentes C-sharp, você realmente tem decimal como um tipo de dados, mas eu vou ficar com as tradicionais apenas no caso em que em versões diferentes eles têm números inteiros, você tem um duplo flutuador. Você também tem como char. Char representa um quiroprático. Tudo bem, então pode ser uma carta. Poderia ser, quero dizer, isso é apenas um. Então esse é o exemplo disso. A letra E ou o número sete. É só uma coisa de cada vez. Pode ser um personagem especial. Esses são todos exemplos de caracteres. Tudo bem, deixe-me obter meus direitos ortográficos. Strings seriam meus blocos fora, pega esses blocos de textos, usaremos aspas duplas. Observe que o char usa uma única aspas. Em um exemplo anterior, você teria me visto usar meu nome. E no exemplo padrão você veria Hello World, que é uma string. Tudo bem? Você tem tipos de dados diferentes e vamos passar por outros. Só estou tentando não fornecer uma sobrecarga de informações, mas esses são exemplos típicos de tipos de dados diferentes. Então, como eu disse, é como um adjetivo descrevendo o que a variável pode armazenar. A variável é o ponto de armazenamento real. Então, para declarar uma variável após o tipo de dados, eu dou um nome a ela. Então, se eu quiser que o usuário insira seu nome, chamaria o nome da variável. Então, o problema é que você quer sempre ser o mais descritivo possível com o nome da sua variável. Você não quer dizer dores nas cordas. O que é x? Tudo bem, quando você tem que descrever para alguém que está olhando para o seu código ou até mesmo tentar lembrar para que x foi usado. Duas semanas depois, você não se lembrará quando vir algo como nome. É claro que se você quer a borda, você provavelmente gostaria de usar inteiro e C, H. Isso é claro. Se for algo que é mais do que, mais de uma palavra como talvez nome completo, você gostaria de ver algo como nome completo. Não perceba como eu escrevi este. Não há espécies. As espécies são ilegais em nomes de variáveis. Você pode usar caracteres especiais até um sublinhado, essa é a única cartilagem especial permitida. Você não pode usar um hífen, você não pode usar mais nada com um sublinhado, fará assim. Algumas pessoas gostam de usar sublinhados pessoalmente, não gosto de usá-los. Eles são ilegais. Eles não estão nada de errado com eles. Então, se você quiser usá-los, não há problema. No entanto, confio no que chamaremos de caixa de camelo, que é quando você faz a primeira letra aparecer e depois você capitaliza todas as outras palavras. Veja aqui um exemplo de Kamil no caso de quando nomeamos nossos projetos, teríamos usado o caso pasco. Se eu dissesse Hello World como uma variável e posso fertilizar o H e o w, então este será o invólucro Pascal. Tudo bem, então nós capitalizamos a primeira letra, bem como todas as AVD. Primeiro, isso está fora de cada palavra lá dentro. De um modo geral, quando você nomeia suas variáveis, você quer usar o invólucro de camelo porque melhora a legibilidade e qualquer pessoa que olhe para ela, você pode dizer que esta é uma variável projetada para armazenar o nome completo de qualquer coisa. Tudo bem, então é por isso que nomear é muito, muito importante. Então essa é nossa variável simples de verso. Tudo bem? Não, isso foi o número um, declare uma variável. Analisamos diferentes opções de tipo de dados com base nas informações que queremos obter. String é o melhor tipo de dados para essas informações. Certo? Agora precisamos permitir que eles insiram essa variável. Então, até agora sabemos como produzir, porque a linha de gravação de pontos do console é o que nos permite produzir. No entanto, precisamos inserir. Então, onde fazer para a direita, queremos ferramenta. Se você disse ler o caminhão de subscrição próximo, queremos leitura de ponto do console, linha. Vejo que eu sempre digo o prazo console.log. Na verdade, o console vai pausar e aguardar entradas porque não está lendo algo. Ao contrário de escrever terra onde ele vai imprimir algo. Tudo bem? Não é claro quando permitimos que o usuário insira qualquer que seja a linha de leitura que precisamos para armazená-la em algum lugar. Porque quando eles pressionam Enter após o tipo dentro dos imperadores entrar, a inflamação é enviada de volta ao programa. Mas enquanto a informação está acontecendo, é por isso que temos a variável. A variável aqui com a linha verde está reclamando que ela foi declarada, mas nunca, você nunca usou porque não a estamos usando para fazer nada. Acabamos de tê-lo lá. Portanto, a presença disso é importante. Claro. Mas não está fazendo nada. Então, queríamos ver quando você recebe a entrada do console, armazene-a dentro dessa variável. Fui ver um nome completo. Você obterá seu valor do que vier através do console. Tudo bem, então há várias maneiras de escrever esse código. Tudo bem, só estou tentando mostrar a maneira mais simples de se levantar e começar a trabalhar. Um garante que a variável exista para atribuir o valor à variável. Isso é chamado de atribuição em que o que estiver abaixo da direita vai para o que estiver à esquerda. Então, um exemplo de uma atribuição, fizemos um exemplo anteriormente, pude ver um nome completo de string. Estou atribuindo a você o valor padrão de talvez uma string vazia, ou você deve ter o valor padrão do meu nome. Tudo o que estou fazendo é ver criar uma variável e atribuir esse valor à variável definida. Se eu não colocar a atribuição, a variável existirá sem nada nela. Então é o que vamos chamar de nulo, que é como um receptor. Não havia nada lá dentro até fazermos uma tarefa como essa. Tudo bem, depois de atribuirmos o valor que o usuário insere em nosso nome completo, então eu posso imprimir console, ponto, escrever linha. Em seguida, o Visual Studio descobre que eu gostaria de imprimir o que está em nome completo. Então você viu escrever pontos do console e, em seguida, muitos fins de semana maravilhosos imprimem um valor literal como fizemos o Hello World. Nesse caso, não quero imprimir a string estática porque o usuário não entrou em helloworld. Não sei o que o usuário inseriu, seja qual for digitar o armazenado em nome completo. Isso é o que eu queria imprimir. Então, em vez de escrever todas essas aspas e aquelas. Esse bloco fora da corda. Vou apenas imprimir o conteúdo da minha variável string de volta para o console. No final deste aplicativo, mais uma vez, estamos criando um espaço na memória. Verbalmente é basicamente um espaço na memória, um espaço de armazenamento na memória para o tempo em que o aplicativo está sendo executado. Assim que o aplicativo parar de ser executado, essa variável não existe mais quando você começa a chegar ao topo, ela a cria. Então ele espera qual entrada? Em seguida, ele faz ciência e entrada para definir a variável, e depois a imprimimos. Então, vamos afirmar isso para dar uma volta. Saiba, você notará que o botão play up top students é Hello World. Isso significa que se pressionarmos sangramentos ainda vai executar o program.cs no HelloWorld, não queremos que ele execute o Hello World. Queríamos executar nosso programa de saída de entrada. Na verdade, podemos mudar isso alterando essa lista suspensa e escolhendo o programa que queremos ou projetar que queremos executar, que seria entrada-saída. Você também notará que quando você alterar o, o projeto que está sendo focado nesse ponto, ele é o único que recebe as letras em negrito no nome, certo? Então, se eu mudar de volta para Hello World, hello World é ousado. Se eu alterei a saída de entrada, entrada, a saída é ambas. Todo o caminho para fazer isso é diretamente o projeto em si. E clique em Definir como projeto de inicialização. Isso faz a mesma coisa que uma lista suspensa em cima aqui. Se eu quiser saída de entrada, clique com o botão direito em Definir um projeto de inicialização E não se concentrará na saída de entrada e o botão Reproduzir mostrará a mesma coisa. Quando pressiono o botão Reproduzir, observe que o console está na tela e está apenas piscando. Certo. Por que está apenas piscando? Não está imprimindo nada que não está prosseguindo desejado criado ou margem variável, mas também está aguardando a entrada. Saída, meu nome. Em seguida, pressione enter. Ele continuará a imprimir no console e, em seguida, você perceberá que ele parou. Deus, foi tudo o que eu disse para fazer. Estranho para você inserir impressão e linear feito. Esta segunda linha é o que está imprimindo. Foi isso que eu entrei. Agora isso não é muito intuitivo. Tenho certeza que você está vendo que não é muito intuitivo porque você acabou de fazer uma pausa para obter informações. Eu escrevi os aplicativos deles. Eu sei qual é a entrada de que ele está pausando ao esperar por você. Se você fosse pegar este aplicativo para si mesmo sem minha orientação, você realmente saberia que isso é o que ele queria? Você não faria, e isso não esperaria que nenhum usuário realmente saiba que viu o que você gostaria de fazer para esse tipo de aplicativo. Assim como qualquer outro aplicativo, se você está gastando muita forma, eles geralmente dizem o que querem na caixa de texto ou para essa entrada específica para que o usuário saiba o que você estão fazendo. Então você sempre quer que seu usuário saiba o que ele precisa fazer. Você sempre pode imprimir, guardar suas próprias mensagens na tela. Então aqui fui dizer linha de gravação de pontos do console. Fui lhe dar as instruções, insira seu nome completo. E vou colocar um pouco de dois pontos abaixo, claro, isso é o que está sendo impresso. Então esta é uma string literal sendo impressa na tela e diz que você queria ficar bonita e apresentável, as próprias instruções Nice. E então ele fará uma pausa para entrada. Então, o que está sendo impresso. Não sei o que está sendo impresso. Então eu poderia dizer algo como linha de gravação de pontos do console. Seu nome completo é e, em seguida, imprimimos na tela o que o usuário digitou. Tudo bem, então essas são as coisas que melhoram a forma como sua obrigação. Você tem. Gravação de pontos do console. Primeiro foi a gravação de pontos do console. A gravação de pontos do console irá imprimi-la em uma linha, enquanto a linha de gravação de pontos do console irá movê-la para a próxima linha automaticamente. Vamos tentar este. Então vá em frente e corra. Você vê aqui em nenhum lugar vendo insira seu nome completo. E como fizemos uma linha de gravação, ela foi automaticamente para a próxima linha para aguardar a entrada. Fui ver meu nome. Então, quando pressiono enter, seu nome completo é impresso em uma linha porque eu disse direito. Então, se eu quisesse um prompt em uma linha, eu diria certo em vez de uma, certo? E escreveremos linha automaticamente traz para o próximo slide. E isso é praticamente isso. Você vê? Não é tão difícil. Mais uma vez, a sequência é importante. Crie a variável, imprima e peça a entrada pessoal, depois pesou quatro entradas e, em seguida, você pode imprimir o que for depois. Tudo bem, então essa é uma saída de entrada simples. Ninguém refatorar rápido que eu gostaria de mostrar isso é que quando você está pedindo que os dados entrem na variável, é perfeitamente bom definir a variável e atribua-o ao mesmo tempo. Claro, você não pode ter duas tarefas verbais na tela. Se você, se você criar uma variável antes de fazer isso pela segunda vez. Mas aqui o que estou vendo é criar uma variável chamada nome completo e dar a ela o que vier do usuário. Então, na verdade, são menos linhas de código. Então, às vezes vale a pena criar um programa que use menos linhas de código. Às vezes, eles conseguem legibilidade, você quer isso como explícito. Então, vou deixá-lo assim para, para o seu consumo. Crie a variável, permita que o usuário insira o armazenamento em variável e imprima o conteúdo das entradas. 10. Tipos de dados e conversão de C#: Tudo bem pessoal, então, em nossa última aplicação, demos uma rápida olhada em como podemos declarar variáveis. Tivemos uma breve visão geral dos diferentes tipos de dados que essas variáveis podem ter. E então procuramos aceitar e imprimir informações do usuário. Agora vamos construir esses dois conceitos à medida que analisamos as variáveis e seus tipos de dados. Mais uma vez, se você fechar Visual Studio e precisar reiniciá-lo, você sempre pode simplesmente abrir, desculpe se fechar o Visual Studio, preciso relançar o projeto. Você sempre pode relançar o Visual Studio 2022. Você pode procurar a obrigação ou projeto recente em que você está trabalhando ou abrir um projeto ou solução. Navegue até onde você compensaria o local do projeto para estar. Encontre-o e inicie esse arquivo de solução. Você também pode fazer essa etapa a partir do próprio Explorer. Então, vamos prosseguir. Vamos criar um novo projeto. Então, estou apenas clicando na solução, entrar em novo projeto, consolo. E então este será variáveis e tipos de dados tendo em mente ou nomeação muito rigorosa, sugestões, espaços nulos e caracteres especiais e invólucro Pascal. Então, fazemos tudo isso. Em seguida, estamos usando dotnet six e, em seguida, podemos criar conhecimento em nosso novo arquivo program.cs. Quero que vejamos as diferentes variáveis que podemos usar. E estamos usando exemplos práticos, alguém para ver declarações e tipos de variáveis. Neste aplicativo, vamos criar um tipo real de formulário de entrada de dados de formulário para nosso usuário. Queremos nome, idade, talvez salário. Há gênero e se eles estão trabalhando ou não. Tudo bem, vamos fazer tudo isso. E ao fazer isso, vamos explorar o salão. Convertemos tipos de dados entre o que é entrada sobre o que é necessário com base no tipo de dados que selecionamos para a variável e como podemos imprimir tudo hoje, final dela. Já fizemos um exemplo com o nome completo. Então aqui eu posso ver um nome completo de string é igual a. Você geralmente quer ficar longe de Knowles. Nulo, o que significa que eu apenas digo nome completo da string. Há uma variável chamada nome completo, deixe estar, geralmente é desejada ficar longe disso. Isso funcionará. Mas quando você constrói aplicativos maiores, você quer ficar longe disso. Portanto, você geralmente quer dar a ele um valor padrão. Então, aqui está um padrão interno chamado ponto de string vazio. Às vezes você pode acabar vendo pessoas fazendo isso, mas isso é o que chamamos de corda mágica. E geralmente é discurso porque você poderia cometer um erro simples e não perceber e seria muito difícil descobrir isso mais tarde. Então, precisamos transmitir pontos vazios. Você deixará ver os fragmentos no valor para você. E será muito mais fácil de manter e no caminho certo, não. Vamos ver a idade. Então eu queria superar, vou usar um número inteiro porque as pessoas geralmente teriam 2021, não necessariamente 21,8 anos de idade. Eu gostaria de um número inteiro em vez de um duplo ou um flutuador porque não estou esperando um decimal para isso. Você também pode atribuir a este um valor padrão. Vou apenas definir 0. Há padrões aqui, mas você acabaria sendo int dot, max ou Min, que estaria em qualquer escala de bilhões. Tudo bem, So Min é menos 2 bilhões ou 2 trilhões ou algo assim. Quero dizer que mux é positivo, esse mesmo número. Então, aqui vou definir que o padrão é 0. Talvez um, talvez uma facilidade padrão faça mais sentido, certo? Mas ei, próxima parada, salário. Sem salário. Você poderia esperar que as casas decimais porque o salário representa dinheiro. Você poderia usar o dobro. Então, se você quiser tornar um padrão igual a 0, esse é o padrão. Você provavelmente também pode ver float faz que também leva números decimais, exceto que o valor padrão tem que parecer um pouco diferente. Então você teria que ver algo assim. 0 f. Só para lhe mostrar, estou apenas mostrando as nuances com diferentes tipos de dados, mas isso também é uma casa decimal é apenas dizer que você tem que colocar o F para representar isso é um flutuador e não apenas um duplo normal. Você também pode usar decimal. E se eu não me engano decimal, você só veria como 0. Você teria que colocar o sufixo m. Lá vamos nós. Mais uma vez, apenas mostrando as diferentes opções, nuances diferentes. Tudo bem, então vou manter isso simples. porta dupla é boa o suficiente. E posso dizer que saberemos que é um decimal, então 0 é o mesmo que 0. Sexo. Não, eu provavelmente gostaria que o usuário inserisse M para mim, F para mulheres. E então você gostaria de usar um personagem para isso. Então eu diria char. Observe que acabei de escrever acidentalmente uma capital C. Capital C char é diferente da CHR comum. Propósitos semelhantes, mas diferentes. Portanto, você sempre quer que eles sejam minúsculas quando você estiver definindo seus tipos de variáveis. Char e gênero. Posso inicializar essa ferramenta. Não pense que há um ponto char vazio. Temos valor mínimo e máximo, e você tem várias outras operações. Eles ainda não passarão por todas essas operações. Tudo bem, então aqui eu vou dizer que me dê o valor médio para o char. Então ele está pedindo aniversário. Não quero aniversário desta vez quero booleano. E você está trabalhando? Então, booleano aqui representa verdadeiro ou falso. Você já está, não é? Você está dentro ou fora do binário um ou 0. Bool representa essa decisão binária, esse valor binário um ou 0 verdadeiro ou falso. O trabalho ou não está funcionando. Aqui, eu só vou usar o padrão para false. Então você notará que falsa falsa são, na verdade, palavras-chave. Você pode dizer isso a partir de sua codificação de cores e o fato de que os resultados através dela estão realmente sugerindo esses valores no IntelliSense. Para mim. Mesmo com uma bala, se eu não atribuir um valor, o padrão será false. Então isso é algo que você pode ter em mente se você não der um valor, o padrão é falso. Se você não fornecer valores inteiros e duplos, seus padrões serão 0. Char que será padrão null da mesma forma que a string padrão será null. À medida que você pratica e fica mais confortável. Você saberá essas coisas. Estou apontando todos eles porque faço isso há anos para que eu possa exalar essa sabedoria por causa da experiência. Ambos estou cortando a sabedoria para que você possa tê-la no fundo de sua mente quando estiver passando por uma experiência. Então, essas são as variáveis com as quais queremos trabalhar para este exercício. Saiba o que eu queria fazer é solicitar o usuário insira cada um deles, e então eu queria armazená-lo nas variáveis. Vamos começar com o nome porque já fizemos isso antes. Então eu fui ver a linha de gravação de pontos do console. E eu vou dizer Por favor, insira seu nome. Vou fazer a gravação de pontos do console. Eu queria falar para imprimir em uma linha e, em seguida, ela vai pausar para entrada depois, ponto e vírgula. E então vou ver que o nome completo será igual a qualquer que o usuário insira, que seria a linha de leitura de pontos do console. Então lembre-se da última vez que analisamos o fato de que você só precisa atribuí-lo lá. Não. Não mencionei que você poderia definir uma variável aqui e fazer tudo uma vez. Para fins de legibilidade, às vezes é bom apenas definir todas as suas variáveis no topo e depois usá-las mais tarde. Então, pelo menos, você sabe o que precisa. Então você pode escrever código nosso próprio o que você já trabalhou antigo. Não é necessariamente um é melhor que o outro. É só que estou sugerindo esse tipo de fluxo de trabalho para que você possa colocar sua mente em ordem e ter sua estratégia para seu aplicativo pronta para quando precisar. Nesta seção, estou apenas solicitando a entrada do usuário. Sabe, eu vou basicamente copiar e colar isso e vou dizer, por favor, insira sua idade. Às vezes você tem que trabalhar de forma mais inteligente, não mais difícil. Você já tem a linha de gravação de pontos do console. Você sabe que precisa atribuir a variável que vou fazer é copiar e colar. Ele leva suas necessidades finais para mudar e, em seguida, usar a variável apropriada. Então aqui estou dizendo, dê-me a idade. Uau, sem média. O que é essa coisa de linha vermelha? Diz que representa pena, deixe-me passar o mouse sobre isso novamente. Ok, Então, às vezes, quando você passa o mouse sobre ele, você não vai ver o erro. Oh querida, isso é feito no final. Não é possível converter implicitamente a string de tipo em int. Então, por favor, você pode ver os detalhes do erro seria a lista de erros, o que geralmente é feito na parte inferior da sua interface não pode implicitamente converter string para int. E se você não vir lá, você sempre pode ir para a visualização. E você verá a lista de erros e você clica nela e ela aparecerá. Aqui. Está dizendo que eu tenho um número inteiro chamado idade. Mas a linha de leitura de pontos do console está realmente aceitando uma string do usuário, seja, não importa o que eu digite através do console, ela sempre a verá como uma string. Então lembre-se anteriormente quando eu discuti os diferentes tipos de dados, eu tinha dito que a string é realmente capaz de armazenar palavras, números, caracteres especiais, qualquer coisa, qualquer coisa que está no seu teclado, na verdade será processado como apenas um grande bloco de texto. Quando o colocamos na entrada do console, não é presumindo que, porque você coloca o numeral um, que você quer um inteiro r, você coloca uma letra que deseja um personagem, ou prêmio de idade realmente significava um Booleano. Sempre presumirá que você esteja inserindo uma string. Então, se você quiser que essa string seja armazenada como outra coisa, temos que fazer uma conversão manual. Para converter de string para int. Você tem a opção de usar convertidos, que é apenas outra classe interna. E posso dizer converter pontos. E posso ver dois em 32. Eu queria converter em 32. Este é um método, então eu tenho que abrir meu parêntese e perceber que ele está vendo depois de analisar esse valor de string que pretendo converter, o que estou convertendo essa entrada de string do usuário. Quando apenas dizemos converter em 32, qualquer entrada veio do usuário. E então toda vez que abro um breve então r bar e o SCC, preciso ter certeza de fechá-lo. Então este aqui é uma perda aberta para, para a linha vermelha, mas preciso fechar o 32. Lá vamos nós. Isso se livra todas as flechas. Espero que tenha sido claro. Se não estivesse claro, dobrou para ficar muito mais claro. Agora passamos para o salário. Então, estou apenas copiando e colando novamente. E então eu queria dizer Por favor, insira seu aipo. Então vou atribuir salário. Isso está se convertendo para 32. Eu não quero necessariamente 32 em salário porque o salário é um duplo. Não é um número inteiro. Então eu não quero que a pessoa ponha que ela fez US$210,05. Eu não quero apenas US $210. Quero que os cinco sétimos também digam que preciso da casa decimal. Bem, adivinha? Posso converter de string para o dobro de nossos dois decimais, estamos usando o dobro, então vou dizer para o dobro. Lá vamos nós. Tudo bem, então a entrada de string do usuário, converta-a em armazenamento duplo em vez de salário. Vindo bem. Vou apenas seguir em frente e duplicar essas linhas para gênero e trabalho e podemos descobri-las. Gênero sobre o gênero. E, em seguida, insira se você está trabalhando ou não. Observe as linhas vermelhas novamente. Este diz Gênero. Este diz que funciona. Deixe-me vê-lo. Status de trabalho. Deixe-me reformular isso. Você está trabalhando? Você está trabalhando? Tudo bem. Então por diante, agender, estamos usando um char. Eu sei que precisa dizer ao usuário watts entradas legítimas hora ou quais são as entradas que estou procurando. Então, vou ver dentro da mensagem de prompt M ou F, insira qualquer uma dessas letras. Em seguida, subiu para converter a string em caractere. O personagem é diferente de uma string porque isso pode ter vários caracteres em seu bloco contíguo versus um char, que é literalmente apenas um caractere de cada vez. Então eu saí para ver convertidos, pontos, ferramenta. E então eu pauso nessas entradas de string que espero ter apenas uma das escolhas que eu apresentei. E então eu vou guardar isso em gênero. Da mesma forma, você está trabalhando? O que espero que o usuário coloque dois? Espero que eles sejam verdadeiros ou falsos. Por quê? Porque eu só queria adicionar conversão direta da palavra true para o tipo de dados real. Isso é um bool, que é a palavra-chave true. Para nossa representação visual. Verdadeiro entre aspas. Isso é o que está chegando através da linha de leitura de pontos do console. Mas eu preciso de verdade. A palavra-chave, que é o que eu diria até booleano. Vamos fazer com essa ferramenta de conversão. Booleano. Tenho certeza que o Visual Studio está dando algumas boas sugestões porque ele está olhando contextualmente para o que você está tentando atribuir esse valor. Então, isso sugeriria a eles, porque claramente você está trabalhando com um booleano. É isso para solicitar nosso usuário e para os bastidores converter qualquer tipo da string padrão para o tipo de dados real que precisamos para nossos processos em tipo de dados real que precisamos segundo plano. Usar o tipo de dados correto é muito importante porque. Se você precisar dele para fazer contas com salário, você não pode fazer esse tipo de matemática com uma string. Você tem que tê-lo como um valor numérico para ver se é isso que você ganha por mês, então este é o seu ouvido, o salário, certo? Então, se pedirmos a eles para inserir seu salário anual, eu queria mostrar a eles o que eles ganham por mês teriam que obtê-lo como um número para fazer as contas. Tudo bem? Então essas são as coisas que você tem que considerar. No final disso, queremos imprimir as informações de volta para o usuário. Então, queríamos imprimir isso é o que você entrou, aqui está o que temos para você. Então, vou ver a linha de gravação de pontos do console. Sabemos que temos que fazer isso. Não, neste momento, posso fazer o que chamaremos de concatenação. Então fui ver o seu nome, é. Tenho duas escolhas. Não consigo ver que seu nome é e, em seguida, outra linha de gravação de pontos do console foi impressa o nome completo. Foi o que fizemos da última vez. Então isso acabará dobrando em cada declaração de impressão quando eu puder fazer isso em uma linha. Então seu nome é, e então eu vou fazer o que chamaremos de concatenação. Então vou dizer mais e depois dar a variável. O que isso faz. Diz, por favor, adicione este bloco de string. Isso é um literal porque eu, o programador digitado, é então isso nunca mudará. Além disso, o que veio através da variável porque eu não sei em que o usuário vai escrever. Isso é o que estamos fazendo lá. Outra maneira de escrever isso ou fazer esse tipo de concatenação, digamos que com EJW, se eu quisesse ver o seu ij está bem, eu posso realmente colocar um espaço reservado aqui. Então eu fui ver o suporte curly aberto 0, fechar a cinta encaracolada. E então vou colocar a variável que corresponde. Então eu posso ver que cada um sabe o que isso está fazendo é realmente criar o que chamamos de args. Então nossos argumentos que serão passados para a função. Então, os argumentos serão desossados às variáveis que entram em vê-lo ordem. Então, se eu tivesse vários argumentos são várias variáveis que precisavam imprimir, eu poderia realmente fazer 12. E então eu posso ver algum texto aqui porque estou escrevendo com uma frase inteira, mas partes dela precisam ser dinâmicas. Eu não fiz para cada um desses, vou chamá-los de espaços reservados. Eu forneceria uma variável na mesma ordem. 0 sempre vai primeiro. A primeira variável corresponde ao 0. A segunda variável, muito ainda é a outra, etcetera, etc. Tudo bem, então vou listar tantas variáveis quanto tenho espaços reservados. Então, são alguns outros . Vou manter este simples. E vamos ver que sua idade é, então, estamos usando espaço reservado e imprimindo cada um. Outra maneira de imprimir o que chamamos cadeia de concatenação seria ver seu salário é. E então eu colocaria a variável aqui. Em vez de ver por favor titular, eu veria cinta encaracolada e depois colocava as variáveis, então aipo, mas observe que tudo ainda é Laranja já na mesma cor que seja o seu representação literal de string é. O que falta aqui é o cifrão. Preciso de um cifrão antes de escrever a string. Então isso me permite usar chaves curly e super impor a variável em qualquer lugar daquele fluxo que eu quiser. Isso é chamado de interpolação. Então isso é concatenação. Isso é chamado de coleira entre puxar. A coisa com interpolação, porém, é que dentro dessa string é muito semelhante ao uso dos args. Mas, na verdade, posso apenas sprint as variáveis onde diremos que se eu escrever algo pega, eu não fiz, eu queria outra variável e depois mais texto. Então eu estou escrevendo tudo para uma corda de luvas de um bloco, mas em qualquer lugar que eu precise que seja dinâmico, eu apenas escrevo nessa variável de acordo. Imprime essa string. Ele só colocará esses valores onde quer que eu afirme que as variáveis deveriam estar. Tudo bem. Estou deixando alguns comentários. Eles estão cientes do que está acontecendo em cada ponto. Portanto, essas são todas as suas opções quando se trata de imprimir e interagir com uma string nas variáveis. C-sharp faz um bom trabalho mudando tudo para cordas. Então você tem que ser deliberado para transformá-los em qualquer tipo de dados, porque ele está indo da string, você tem que ser deliberado com o tipo de dados que está convertendo ferramenta. No entanto, você notaria que eu não estou convertendo mais nada em string aqui. Esta é uma corda e eu estou colocando um duplo dentro de um bloco de corda. A mesma coisa aqui com edge será o nome completo já é uma string. Então, aqui ele sempre converterá qualquer tipo de dados em string sem que você precise fazer mais nada. Mas se você precisasse, você sempre poderia dizer ponto variável toString, que também o converterá em strings. Então isso funciona, mas isso é meio redundante porque não é necessário. Porque C-sharp é tão azul. Só estou mostrando suas opções. Então deixe-me duplicar isso e ver que seu gênero é, e então eu posso apenas colocar em gênero. Então eu posso ver que você é Floyd Você está empregado ou está empregado? Desculpe, eu só estou sendo pego no altar, escreva isso, você está empregado e então eu vou ver trabalhando. Tudo bem, então ele irá convertê-lo automaticamente da string Bool para mim. Muitas vezes você me verá fazendo isso, mas depois veremos manipulação de cordas em um pouco mais detalhes. Então, estou apenas mostrando algumas opções aqui para que possamos passar por essa atividade. E mais tarde vamos nos aprofundar mais no que é possível quando se trata strings e diferentes tipos de dados. A partir daqui, se eu quisesse executar este aplicativo, mais uma vez, tenho que alterá-lo para aquele projeto com o qual estamos trabalhando, variáveis e tipos de dados. E então deixe-me executar. Então vamos começar a preencher isso. Então, esse será o nome do teste. Entre na borda da orelha, digamos 23. Qual é o seu salário? Isso é um C. Estou ganhando esse 0,35. Qual é o meu gênero? Fui declarar aqueles que me sugeriram que ficassem. Então, no meu trabalho, estou trabalhando verdade. Então, no final, você está recebendo seu nome, sua idade, seu salário, seu sexo e você está empregado. Sem aviso prévio, não há espaço aqui. Por que não há espaço lá? Porque eu tenho um dipolo, pois você pode corrigir esse erro de digitação e isso corrigiria essa impressão. Mas isso é realmente tudo o que eu quero que passemos neste exercício. Analisamos as diferentes variáveis, diferentes tipos de variáveis e o fim de semana inteiro damos a elas os valores padrão versus valores não padrão. Também analisamos o fato de que podemos ou precisamos, ao aceitar a entrada do console converte-se nosso tipo de dados específico com base no que precisamos. E também analisamos as diferentes maneiras pelas quais podemos lidar com impressão de texto estático antigo combinado com Takes vindo de nossa variável. 11. Técnicas de depuração de aplicativos: Tudo bem pessoal, então nesta lição eu quero discutir técnicas de depuração de aplicativos. Não, a depuração tem a ver com encontrar erros em seu código. Neste ponto, tenho um monte de outros projetos que passaremos um por um mais tarde. Portanto, não se envolva na diversão que tenho muitos projetos e você não nos deixa focar no projeto que acabamos de concluir, que estava analisando variáveis e tipos de dados. E eu queria mostrar como você pode tentar encontrar erros no código à medida que avançamos. Tudo bem, então temos diferentes tipos de erros que aparecerão em nosso código. O mais fácil de detectar é um erro de sintaxe. erro de sintaxe pode ser um tipo tão fácil ou você teria visto que eles escreveram algumas linhas erradas. Às vezes, se eu escrevesse console em vez de console, então o erro de sintaxe seria aparente através da própria prisão, a linha vermelha, já vimos isso antes. Você também notará que o Visual Studio meio que destacaria o leão à sua direita. E você verá aquele pequeno quadrado vermelho aqui em cima mostrando que há um erro nessa linha. Você também veria que tem esse pequeno x aqui e a lista de erros será preenchida. Portanto, há tantos indicadores quanto à ideia de um erro no seu código quando é um erro de sintaxe que é difícil não notar. Agora vamos dizer uma aventura de oração. Você não percebeu. E você tentou executar alguém para mudar meu projeto inicial aqui. Então eu tentei executar isso. Não notei que esse erro de sintaxe e tentei executar, então vou acabar com um erro como esse. Então, quando você corre, você terá duas opções. Você executou com depuração e executou sem depuração. Executar sem depuração significa que ele só vai construir, certifique-se de que tudo esteja bem. E então tentar lançar um programa escrito com o jogo de bola significa que ele vai funcionar, mas esteja atento ao fato de que você pode querer rastrear o que está acontecendo. Então, olhamos para isso em alguns. No entanto, nenhuma das opções funcionará quando, se você tiver um erro de sintaxe. Então, quando você recebe esse tipo de mensagem de erro dizendo que houve um erro com sua compilação. Você quer continuar com a última compilação bem-sucedida? Você não quer continuar com a última compilação bem-sucedida. Isso significa que você voltará para a boa versão do código, o que derrotaria o propósito de escrever um novo código que você pode testar. Você quer ver NOR. E então ele queria dar alguma atenção à sua lista de erros para que ela possa mostrar onde estão seus erros. Então, apenas clicando duas vezes aqui na área da cidade, na verdade, saltará para essa linha com os erros. Se você vai corrigi-lo, comentar ou o que quer que você faça, basta remover os erros de sintaxe. Portanto, esses são os erros mais fáceis de detectar. Saiba que o tipo de erro mais difícil de detectar é um erro lógico. Na lógica, o erro pode ser porque você não escreveu a coordenada maneira particular que você fez algo antes que ele deveria ter feito outra coisa. Lembre-se de que temos sequência, temos a posição dela e depois temos decisões. Se você for uma sequência estava incorreta, talvez você não obtenha os resultados desejados. Se você tomou uma decisão ruim, o que significa que escreveu uma condição de declaração incorretamente, então você pode obter resultados ruins lá também seu for-loop, etc Há várias coisas que podem lançar toda a lógica. Esses são erros lógicos que realmente se manifestam durante o tempo de execução. Uma das maneiras pelas quais você pode usar os valores do caminhão que estão sendo atribuídos é sentando no que chamamos de pontos de interrupção. Ponto de interrupção é digamos uma linha de código de marcador que diga ao compilador que, enquanto você estiver executando todo o código, quando você acerta esta linha, eu quero que você faça uma pausa. Deixe o ponto ponto registrar-se um pouco para obter esse ponto de interrupção. Se você olhar para a esquerda dos números de linha, então você tem o editor, então você tem seus números de linha, que quando você clica nele destaca todas as linhas que você me verá fazendo Isso é muito. Para obter o forro inteiro basta clicar no número da linha. Mas, na mais à esquerda, você verá que o cursor se inverte novamente. Então, aqui ocorre, então parece normal, apenas um ponteiro regular. E então, quando eu vou para os números de linha, ele se torna meio apontando invertido para a próxima direção, e então volta ao normal aqui. E então você verá esses pequenos pontos brancos aparecerem nas linhas de código. Quando você clica onde esses pontos aqui estão, ele fica vermelho. O ponto vermelho significa um ponto de interrupção e essa linha inteira fica vermelha. Assim, você pode ter vários pontos de interrupção. Jogue no seu código. Ao ativar os pontos de interrupção, basta clicar nele novamente. Clique para ativar ou desativar. Quando você está correndo. No modo de depuração, o que significa que você pressiona este botão de reprodução maior ou você aperta F5 no teclado, ele será executado. E esteja atento ao fato de que pode haver um ponto de interrupção. Então, quando atingir esse ponto de interrupção, vai pausar. Quando ele pausa, permite que você interaja com as variáveis e outros bits de código que o teriam precedido. Se você executar sem depuração, ela será executada. Não será curável nos pontos breves. Vamos correr com a depuração e analisar essa experiência. Aqui você vê isso. Vendo digitar nome para que saibamos o que estamos no 912, é aí que está esperando por baixo para entrar. Fui colocar meu nome, pressione Enter. Então ele passa e pergunta o que eles comem para que você saiba o que é isso? Sem esboço. 15. Está esperando na borda. Então, colocando uma vantagem e depois olhe para isso. Então ele imprimiu o prompt para uma linha 17. corpo não pode ir mais longe por causa do ponto de ruptura que tínhamos colocado na linha 18. Saiba que a obrigação está realmente interrompida, não importa o que eu faça, eu estou pressionando as teclas, e não importa o que eu faça, eu avance porque o compilador não me permite. Tudo bem, neste momento, se eu passar o mouse sobre essas variáveis anteriores, posso realmente ver quais valores entraram e posso ver que o nome completo atualmente tem um valor de Truvada. A idade de William atualmente tem um valor de 25 e está aguardando o salário para obter seu valor. E o salário atualmente tem um valor de 0. gênero tem o valor de 0 barra 0. Esse era o valor médio. E trabalhar por padrão tem um valor de false. Vê isso? Só pairando sobre eles, eu posso ver isso. Também posso ir até aqui onde estão algumas das barras de ferramentas adicionais e posso trazê-las para cima. Vou assistir, assistir, isso é pequeno. A seção de relógio me permite colocar uma variável em segundo lugar e assistir a variável de gênero. E estava me mostrando qual é o valor. Posso assistir o nome completo. E estava me mostrando qual é o valor. E também posso assistir aos salários. Então deixe-me assistir ao salário. Nenhum salário tem um valor de 0. Mas se eu pressionar F9 no meu teclado ou se você mora, e eu tenho que me certificar de pressionar F 11 porque f dez vai realmente parar a gravação para mim, a diferença entre f dez e se vivemos, é que, se dez, vamos ignorar um método, enquanto o FLM o levará para o método. Mais tarde, quando escrevermos código juntos, veremos isso funcionando. Mas para nulo, se dez ou 11 estiverem bem. Então, se eu pressionar F 11, ele seguirá a partir desse ponto de interrupção. E todos os números, esses são todos os números que eu estava colocando antes. Mas não, na verdade, está na linha 18 esperando que eu insira algo e pressione Enter. Então, se eu colocar 800, deixe-me apagar isso e basta colocar um número sensato e , em seguida, pressione enter. Ele passará para a próxima linha. Então você vê quando ela atinge a linha, ela a muda para amarelo. Quando atingiu o ponto de interrupção, ficou amarelo quando ele se mudou para a próxima linha. Não está me mostrando Isso é como sobre a próxima linha? Certo. Se eu for ao relógio ver o nariz dele me mostrando que o salário não é mais 0, não são 8 mil porque foi isso que entrei . Neste ponto. Eu tenho algumas opções porque ainda está esperando que eu vá linha por linha para que eu possa continuar fazendo F11 ou f1 até o final. O que quero dizer para um pequeno programa como este não seria um grande negócio. Mas às vezes você realmente queria desvalorizar o que acontece em uma determinada linha. Depois dessa linha em particular, você pode deixá-la continuar. Para deixá-lo continuar. Basta pressionar F5 ou clicar em Continuar para cima. E uma vez que você fizer isso, ele continuará com a execução do código como de costume. Então aqui eu posso colocar em m e você vê que não está pausando e me pedindo nada e continua até o final da execução. Mais uma vez, esses pontos de interrupção me permitem pausar a aplicação em seus caminhões. E posso dar uma olhada nas variáveis pode ser o que estava sendo definido estava incorreto, talvez o valor salarial tenha sido errado porque o cálculo está errado. Isso ajuda você a pausar seu aplicativo e dar uma olhada nos valores que estão aparecendo. E então você pode determinar isso, ok, talvez eu precise twittar isso ou modificá-lo à medida que você avança. E então ajuda você a seguir em frente. Aqui com aipo, acabei de desabilitar os pontos de verificação estão no ponto de interrupção, clicando no ponto vermelho e clicando nele. Você não pode ter vários. O ponto é que cada vez que você clicar em Continuar, ele irá até o próximo ponto de interrupção na linha nessa ordem. Então, se eu entrar no salário e ele fosse aqui e naquele pressionado continuar quando ele ensina a linha 20, ele continuaria, continuaria. E então ele faria tudo até o próximo ponto de interrupção onde ele pausa e espera por mim, o desenvolvedor para avaliar o que está acontecendo e, em seguida, continuar ou seguir linha a linha. Portanto, essa é uma orientação sobre a depuração em seu aplicativo. Isso será útil. Quando você acaba com erros. Talvez sua lógica não seja tão bem pensada nisso quanto você gostaria e isso acontece, somos todos humanos, certo? Às vezes você não acerta na primeira vez. É por isso que essas ferramentas existem para nos ajudar a refinar o que estamos fazendo. 12. Operadores de atribuição e atribuição: Nesta lição, vamos analisar os operadores de matemática, vamos criar um novo projeto. E vamos chamar isso de operadores matemáticos usando dotnet seis. E então podemos começar esse show. Não. Queremos ver talvez três categorias. Temos operadores básicos, somos operador de atribuição básica. Em vez disso, temos operadores aritméticos, operações. Então, talvez tenhamos operadores de atribuição compostos. Analisamos o operador de atribuição antes. Este tem a ver com a atribuição de um valor int num, temos uma variável. Legal. Quero dar um valor a ele. Vou dizer que num é igual a talvez cinco. Isso é chamado de tarefa. Em inglês regular ou matemática irregular, um ser humano, quando você vê o sinal de igual, significa que o que estiver à esquerda tem o mesmo valor que o que está à direita. No entanto, na programação, quando você vê um sinal de igual, significa que o que está à direita está sendo atribuído ao que está à esquerda. Portanto, essa é a nossa variável. Estamos atribuindo o numeral cinco à variável. Isso significa que o inverso não será verdade se eu escrever isso em código, só vou receber um erro porque não há como. Estou vendo que esses dois são equivalentes. Em inglês regular ou em linguagem humana regular. Isso provavelmente seria aceitável, mas não na programação. Já explorado todo, atribuímos valores, nossas variáveis. E se quiséssemos fazê-lo em uma linha, podemos facilmente dizer que int num é igual a esse valor. Por padrão, depois que a variável é criada, ela é criada com esse valor. Agora vamos dar uma olhada nas operações aritméticas. Operações aritméticas teriam a ver com a gente fazendo matemática. Vou fazer norm1, dar-lhe um valor de algo aleatório 11 e num2, vamos dar a ele um valor de 12. Obrigado. Visual Studio. Você vê aqui, ele é apenas um presente que continua dando. No entanto, isso não é o que eu quero desta vez. Quando queríamos fazer contas, temos a oportunidade de fazer o mesmo tipo de matemática que estamos acostumados em nossas vidas diárias regulares, certo? Então, se eu quisesse fazer adição, lembre-se que eu disse que você pode fazer operações diferentes. Podemos adicionar facilmente num1 mais num2. Matemática simples. Se eu perguntar a alguém se escrevi um programa para calcular e essa é uma boa atividade para você. Escreva um aplicativo que aceite dois números e faça adição. Você pediria que eles entrassem no núm um e o transformassem em número 2. E então você veria num1 mais num2. Então proprio tem outra variável, int sum é igual a num mais num1 mais num2. matemática é simples assim? Então, vou escrevê-los dentro dessa linha Console.WriteLine. Então, nós realmente os imprimimos de volta à tela e linhas úteis de código. Essa é uma boa atividade se você quisesse continuar direito, e uma calculadora depois dessa atividade, então isso seria uma boa prática para você. Escrevendo aplicativos de entrada, saída e processamento. Podemos fazer matemática, podemos fazer adição, podemos fazer subtração. Em vez de um sinal de mais. Temos um sinal de menos. Podemos fazer multiplicação. Então lembre-se de que estou duplicando as linhas usando o Control D no meu teclado ou CV de controle. Tudo bem, então a multiplicação é representada pelo asterisco, não pelo x. Tudo bem, então escrevemos um x quando estamos fazendo matemática, mas é um asterisco. Na divisão de programação, você não quer ter um símbolo de divisão no teclado, se quiser. Isso é no Microsoft Word, Isso é um símbolo especial, então usamos a barra. Então esse é um senso de divisão. A norma 1 está sendo dividida pela ferramenta dome. Se quisermos fazer módulo, usamos o sinal de porcentagem. módulo é basicamente a divisão ou o restante após a divisão. Então, vamos ver. Dois divididos por três. Dividido por três vai te dar algo como eu sinto muito, deixe-me ver. Cinco divididos por dois. Deixe-me fazer algo mais fácil. Cinco divididos por dois sairiam, entrariam em duas vezes, restavam um porque teria uma superinfecção. Bem, você obteria duas vezes restantes um, ferramenta tempos restantes um. Tudo bem. Agora, se você quisesse esse restante apenas um, então você diria cinco módulos dois. Isso retornará apenas o restante. Isso é o ponto do módulo. Então, se você nunca interagiu com mais detalhes antes, é isso que ele vê se você chegar a um aplicativo onde você precisa encontrar todos os números ímpares, colocar um número e descobrir se é estranho, então praticamente se o número, digamos que eu sinto muito. Acho que seria uma boa atividade para fazermos depois disso. Vou deixar isso até mais tarde. Mas se você tiver que descobrir se algo é um número ímpar, tudo o que você precisa fazer é fazer o número módulo dois. E se qualquer que seja o resultado, é um, então é um número ímpar, certo? Isso é tudo o módulo funciona. Então, vamos, em uma tentativa apenas para levar o ponto para casa, vou modificar o valor de núm um. Núm um. Seu novo valor é a norma um mais quatro. Tudo bem, então sou eu aumentando o valor do núm um. E então, se nós imprimirmos tudo isso e eu vou apenas adicionar um aqui para ver um novo valor de núm é qualquer norma que o OneNote tenha. Depois, você verá que essas foram as respostas originais. Modifiquei o valor da variável e, em seguida, obtemos esses novos valores depois. São operações matemáticas simples. Em seguida, você tem bibliotecas diferentes que permitem fazer operações mais complexas. Tangente, seno e cosseno, etc. Mas não vou entrar naqueles no B6 agora. Se eu executar este programa mais uma vez alterou o início do carro ou projeto para operações matemáticas são operadores iniciaram o projeto, ele deve apenas cuspir todos esses cálculos. Então, a tela do console. Lá vamos nós. Então, às vezes, o console vai fazer uma pausa. Você só precisa clicar. Se você clicar nele vai fazer uma pausa. Então, quando você pressiona enter , ele continuará. Então aqui temos a adição e subtração, multiplicação, divisão e módulo. Você vê aqui que disse que 12 não poderia entrar em 11, certo? Ou o que foi isso? Isso era normal que ele vive dividido por 12, então isso é 0 vezes acima do módulo é 11 porque o restante seria 11. Então vamos para o novo valor da norma um é 15, e então obtemos a adição, obtemos a subtração entrará em multiplicação. Sabe, 12 em 15 vão uma vez. Se o restante for três, módulo nos dá o restante. Tudo bem? É isso mesmo para operações aritméticas básicas. Os operadores de atribuição de compostos de nó seriam como uma versão abreviada de fazer algo como se eu quisesse modificar o valor de uma variável, mas eu queria adicionar ou subtrair do valor original. Nesse caso, eu aumentei em quatro. Então eu disse qualquer que seja o valor do núm um, certo? Não, devolva para mim e adicione quatro e depois atribua esse novo valor. Normalmente isso está instalado, eu aumentaria. Se eu quisesse diminuí-lo, faria o mesmo com um sinal de menos, etc. Se eu quisesse fazê-lo quatro vezes seu valor original, diria multiplicar. Agora, quando falamos sobre atribuições de componentes, seria uma versão abreviada de fazer esse tipo de operação. Então, se eu quisesse ver um a quatro aumentado, posso ver a norma um mais igual. Em seguida, dê o valor. Então isso não veria se acumular. Então, temos isso, isso é chamado de acumulador. Norma. Um aumenta em quatro. Isso é praticamente a mesma coisa que escrever o que fizemos em cima aqui. Eu só virei em adultos. mesma dinâmica. Tudo bem? E então com base no que você quer fazer, como eu disse, se você quisesse diminuir em quatro, será vê-lo. Eu digo núm um menos quatro. Se você quisesse multiplicá-lo, torne-o quatro vezes seu original válido. E serão as vezes. Se você quisesse torná-lo quatro vezes menor do que seu valor original, então ele será dividido, etc. Então, quando falamos de operações compostas, é isso que estamos fazendo. Operações de atribuição de compostos. O problema é que, com cada uma dessas operações, estamos realmente mudando o valor de núm um. Portanto, não é uma questão de apenas imprimir, este é o resultado da operação, na verdade está mudando. Então aqui estou vendo estranho para me lembrar de qual sequência. Então, núm um começa como 11. Passamos por tudo isso ou pelo sprinting, todo o resultado da operação. Não estamos atribuindo nada. Não estamos fazendo com que novas variáveis estejam atribuindo nenhum valor a qualquer variável, então eu vejo o aumento normal de um quatro atender que o novo valor, núm um neste momento não está mais vivo, agora é 15. Portanto, todas essas operações matemáticas são relativas a uma normal sendo 15 e num2 ainda sendo apenas 12, é por isso que vimos os diferentes conjuntos de resultados neste ponto normais e ainda é 15. Quando digo que mais é igual a quatro, não tenho aumento de 1519 causas neste momento já é 15, então estou adicionando quatro a 15. E então aqui eu vou dizer que volte 15, bem aqui. Fui ver se 15 vezes quatro é igual a 60. Saiba que ninguém tem um valor de 60. E então aqui vou dizer dividido por quatro, vou colocá-lo de volta para 15. E então vou dizer módulo quatro. Então isso significa 15. módulo quatro seria se minha matemática me servir certo três. Então, o que vamos fazer, apenas para testar se minha matemática ainda está no ponto. Vou fazer nossa linha de gravação de pontos do console. E vou imprimir o valor de núm um com cada operação. Então podemos comparar para ver se minha boca que eu tenho nos comentários estaria correta. Tudo bem, vamos executar este aplicativo novamente. Tudo bem, então agora é a sua hora de marcar minha tarefa de matemática. Então eu disse que o primeiro a Ockham será 19. Lá vamos nós. O segundo a o con seria 15, depois 60, depois de volta para 50, e então o módulo seria três. Portanto, não, cada vez que estamos mudando o valor de núm um. Isso é todo dele, você pode ir em frente e modificar variáveis. Se eu disse aumentar alguma coisa, aumentou todos os preços em cinco, então você sabe, você pode ver o preço vezes z igual a cinco. Ele faria isso automaticamente. 13. Declarações condicionais: Tudo bem pessoal, nesta lição vamos olhar para declarações condicionais. Já criei esse projeto. Até agora. Você deve estar familiarizado com a forma de criar um projeto. Então você pode simplesmente ir em frente, fazer pausa e ir em frente e criar esse projeto. Quando você tiver feito isso, continuaremos e analisaremos declarações condicionais. Mais uma vez, com declarações condicionais, é tudo sobre tomar uma decisão. Já discutimos que temos sequência, temos decisões, no entanto, repetição. Então, as decisões sobre declarações condicionais parecem. Portanto, temos basicamente três formas principais de tomar decisões na maioria dos idiomas de nível superior. Então, quando digo linguagens de alto nível, quero dizer C-Sharp, Java, C , C plus e linguagens como Python, Ruby, etc. Então, temos instruções if , temos instruções switch, então temos Turner operadores. A sintaxe fora do curso diferia, mas, de um modo geral, você declarações , instruções switch e operadores ternários. Todos eles parecem da mesma forma. Da mesma forma realmente no CC plus mais C-Sharp Java. Eles podem ter interpretações ligeiramente diferentes em Ruby e Python em certas outras linguagens. Mas uma vez que você entende a ideia geral, adotar outro idioma é realmente apenas uma pesquisa do Google de distância. Mesmo que eu esteja fazendo um curso C-afiado, eu só queria levá-lo aos pontos de realização de uma só vez. Você aprecia esses conceitos dentro do C-sharp, eles podem ser aplicados a qualquer outro idioma conforme você precisar. As declarações if geralmente fazem uso do que chamamos de operadores condicionais. Então, acabamos de examinar os operadores aritméticos e de atribuição. Analisamos os operadores condicionais. Operador condicional que já vimos um antes, está na forma de um sinal w igual. Isso significa equivalentes. Então, como eu disse, o sinal de igual único não significa que os dois lados sejam iguais. Significa que estou atribuindo o que está abaixo da direita ao que está à esquerda. No entanto, quando vemos o sinal de igual duplo, isso significa que o que está à esquerda é equivalente ao que está subscrito. É um operador de equivalência. Eles também têm menos que, temos maior que. Às vezes eu os confundo, então trabalhe comigo. Temos menos que um igual a. Temos maior que e igual a. Não temos igual a, o que não seria o símbolo de sinal igual. Esses geralmente são os operadores. E mais uma vez, eles estão na maioria dos idiomas que eu havia listado anteriormente. Então, uma vez que você entenda como usá-los, você pode aplicá-los em praticamente qualquer outro lugar. Então, vamos começar com um programa simples para ver como isso funciona. Vou dizer int num. Vou apenas solicitar a entrada do usuário. Então, vou dizer ponto do console, escrever linha, inserir, primeiro número. E então vemos que int num é igual aos convertidos. E vou escrever tudo nítido porque sabemos o que estamos fazendo. E até o Visual Studio está me ajudando. Então, ao ver seu primeiro número. E então vamos converter em 32, o que for que vier para o console. E estamos perdendo um ponto e vírgula nessa linha, é por isso que eu tinha aquela linha vermelha lá. Tudo bem, deixe-me ver. O Visual Studio vai precisar novamente. Não, esse não é o quadril que eu esperava por nós. Então deixe-me copiar esta linha. Fui chamar isso núm um. Não quero chamar esse número 2. E vou dizer Digite seu segundo número. Estamos pedindo ao usuário números de ferramentas. Agora, vamos ver algumas declarações condicionais que seriam sensatas. Então, e se eu quisesse saber se um entorpecido é maior que a ferramenta num? Eu começaria e diria se qual é uma palavra-chave. Mas observe que não é uma afirmação porque não preciso de um ponto e vírgula no final. Então eu vou dizer que está sugerindo que o núm um é equivalente à norma do que eu ainda não estou lá. Então eu queria ver se um normal é maior que o número 2. Depois fui iniciar um bloco de código. O que eu gostaria de fazer? Talvez eu gostaria de ver a linha de leitura do ponto do console. Você tem, você sabe, deixe-me, deixe-me fazer isso um pouco mais de contexto ou inserir o número de maçãs. Núm um representa uploads. Eu não fiz. Aqui está um exemplo de mim violando minha própria regra. Num um não me diz que isso está armazenando para cima um normal aqui diz o número um, o que estou pedindo por envios. Então, há uma desconexão aqui, então é melhor, eu chamaria de número de maçãs. Então, está claro. Agora, quando eu nomear uma variável e tenho que renomeá-la em vários lugares. Claro, posso simplesmente passar, copiar e colar ou simplesmente fazer controle e pontos. E então você verá a opção Renomear. Do nome antigo ao novo nome. Quando eu clico nisso, ele irá apenas passar e refatorar todas as partes para mim. Essa é uma boa dica de produtividade para você. Quero número de maçãs, número de laranjas. Fui chamar este número de laranjas. E então eu fui para o mesmo ponto de controle e renomeei NOW número de maçãs, número de laranjas. Se o número de maçãs for maior que um número de laranjas, então fui ver que você tem mais casais. Legal, agradável e simples. Tudo bem, essa é uma nova declaração. Mas o que acontece se eu tiver outra coisa que eu queria verificar? Como isso está apenas verificando as condições pontuais e está tomando uma ação, um a cinco mais laranja é do que eu tenho para cima. Então eu posso dizer o outro. Isso seria como se esse fosse o caso, então faça isso. Caso contrário, faça isso. Vou dizer que você tem mais laranjas. Se o número de maçãs for maior que o número de laranjas, então você tem mais maçãs, senão você tem mais laranjas. Mas isso pode não ser necessariamente o caso porque e se eles forem iguais? Porque certo sabe, estou apenas verificando uma condição, certo? E explicitamente, só estou vendo se o número de maçãs é maior do que isso, então isso não é uma suposição justa porque eu poderia ter o mesmo número ambos os lados teria que introduzir mais condições para este buraco. Se verificar, posso realmente ter outra construção chamada L, o que me permite verificar outra condição. Posso ver se este é o caso, que mais, se for esse o caso, então o número de laranjas é maior que, número de maçãs. Ou eu podia ver menos do que, então eu uso um maior do que já. Então, deixe-me ver. Número desligado. Opor é menor que o número de laranjas. Só estou mostrando como usar as declarações condicionais. Operadores, LLC. Se o número de maçãs for menor que o número de laranjas, então imprimimos que você tem mais laranjas. E se eles forem iguais? Posso fazer outro. Se o número de Uploads for equivalente ao número de laranjas, queremos escrever mais um código. Eu percebo que não é ilegal para você colocar o else se na mesma linha que uma cinta encaracolada. Eu sou, eu costumo falar o modelo porque quero essa distinção clara à medida a estranha começa em uma parada. Mas não é o LIGO escrever seu código assim. Se esse for o caso, então eu vou consolar isso. Você tem o deixe-me ver o mesmo número de maçãs e laranjas. Foi o que fui imprimir no console. É uma grande decisão. Então você vê que pode ter uma decisão simples. Você pode ter decisões complexas a tomar com base em duas variáveis diferentes e coisas diferentes que estão sendo lançadas em duas considerações diferentes e realmente se divertir. Isso é tudo grandes obrigações. Existem declarações de vocês? Se você fizer isso, então você obtém esse resultado. Isso é tudo o que eles são. Agora quer que toda uma empresa tenha criado o aplicativo pode parecer interface de usuário totalmente bonita e quão alto é o ticket. No final do dia, tudo se resume a um monte de declarações if. Se você pressionar este botão, o que eu faço? Se você colocar esse valor, o que eu faço? Isso é tudo o que é. Tudo bem? Então, no final de tudo isso, se nenhuma dessas condições for verdadeira, então você pode finalmente fazer uma grande declaração que veria entrada inválida ou não poderia calcular nossa ação direta. Você não quer algo assim. Quando você obtém, quando você coloca um determinado volume e um aplicativo, recebo algo a dizer que é um valor inválido. Isso significa que todas as declarações if que foram escritas não contabilizaram o que você realmente acabou colocando, ele se sentará mais. Não sei o que fazer. Não posso te ajudar. Tudo bem. O que há nessa situação? Provavelmente não precisamos ir tão longe, então vou removê-lo qualquer maneira porque acho que estamos cobrindo todos os resultados potenciais com base no que estamos pedindo aqui. O número será maior ou menor ou equivalente. Concedido, você poderia colocar em todos aqueles que eu criei um r igual ou menor que um igual, etc. Mas nós não vamos entrar em todos esses. Só saiba que essas são opções. E obviamente, se não for igual. Então, será maior que r, menor do que isso. Assim, você pode tomar decisões quando estiver no código que você pode tomar uma decisão sobre que tipo de decisão. Nossa lógica condicional que você precisa colocar para corresponder à situação com a qual está lidando. Você pode ir em frente e testar esse, se quiser. Você pode colocar o mesmo número, você pode colocar em dois números diferentes. E com base nos números que você colocou, certifique-se de que a instrução condicional esteja correndo o que você está esperando. Vou seguir em frente para mudar de instruções. Você pode clicar em Pausa, ir em frente e testar e experimentar, mas estou passando para mudar instruções. Então vamos ver que temos, hum, precisamos avaliar watts está em uma variável, e então, com base no que está na variável, precisamos tomar oxigênio. Tudo bem? Então, vou dar outro exemplo que acho prático. Vou pedir um acordo. Tudo bem. Fui ver entrar na nota final e vamos determinar se você passou ou não. Alguém para ver integrar é igual ao que for passado pelo console. Então, uma instrução switch começa literalmente com o switch de palavra-chave. Em seguida, colocamos a variável que vamos avaliar a nota. Isso não se limita a números inteiros. Isso pode ser com stringy, pode ser com carga, pode ser com qualquer coisa. Porque mesmo quando estamos aceitando o formulário e dissemos MRF, eu poderia facilmente ter colocado uma declaração de R&D if para ver se m, em seguida, imprimir refeição, se F, em seguida, imprimir fêmea ou mudar, semelhante ao que somos capazes de fazer. Então, só estou mostrando que não se limita a números inteiros. Só estou fazendo este quarto. Então eu posso dizer algo como o switch, posso especificar um caso CC ou Visual Studio está esperando que eu pegue. E contínuo posso dizer caso 0. O que eu quero fazer? Linha de gravação de pontos do console, você falhou. Mensagem agradável e simples. Então eu preciso terminar cada caso com surto. Praticamente é isso. Tudo bem. quer que você faça entre esses dois pontos e a quebra de palavras-chave é o que será executado se esse for realmente o caso, onde estamos analisando o valor da sua grade. Grid provavelmente não foi um bom exemplo porque o caso tem que ser muito específico. Então, ao contrário da declaração if em que eu poderia ver assim maior do que isso ou o script e é que eu tenho que ser específico com um valor. Então, só posso ver as chaves 0. Nesse caso, posso dizer chaves uma ou lata. E, claro, qualquer valor que eu use é relativo ao que estou verificando. Aqui eu diria Console.WriteLine, você tem dez marcas. Se o valor for dez, ele irá aqui. Se o valor for 0, ele irá para lá. Mas se não for dez, não é 0 e é válido que não é contabilizado nos casos, então gostaríamos de lhe dar esse padrão. Portanto, padrão significa que isso é o que vou fazer quando todos os outros campos. Tudo bem, então quebre, console.WriteLine, notas inválidas. Então, se entrássemos 1 mil I, não seguimos para o ponto 1 mil dentro de tudo isso, então iríamos apenas para o padrão que seria como a instrução else padrão, o catch-all. Nenhuma outra condição foi atendida, então faça isso por padrão. É isso que a palavra-chave está aqui. Se eu quisesse nosso alcance dentro das minhas instruções switch, o que atenderia mais sentido aqui, considerando que o grau geralmente está entre 0 e 60 para a falha e, em seguida, 6060 a 100 para a pausa. E, em seguida, o padrão representaria qualquer coisa fora de 0 a 100. Então você provavelmente gostaria de fazer algo como chaves, int. Basta escolher uma variável quando. Então você pode ver aqui é, vamos ver, ótimo hoje. Desculpe, menor ou igual ao valor de 60. Tudo bem. Este ponto que acabou de aumentar, certo? Tenho certeza que você já entende como você faz chaves contra um único valor. Se você quisesse verificar 102030406998, você só tem as chaves dez, certo? O que você quer escrever? Break, case 20, etcetera, etc. E você iria junto, se quisesse que eles compartilhassem o mesmo bloco, então você realmente apenas diria como chaves 101112 e Todos esses casos usariam esse bloco de código. Então, sim, está desbloqueado, mas não há parênteses abertos e fechados como você precisa mudar. É só o cólon. Então, todos eles realmente compartilhavam o que acontecer aqui antes desse intervalo. Essa é uma maneira de fazer com condições diferentes para valores diferentes compartilhem a mesma coisa. Claro, isso será tedioso se você estiver verificando entre 0 e 60, porque isso significaria que você tem que ter 60 casos. São 61 casos de 0 a 60 para verificar se há falhas. Isso não seria prático. O que estou mostrando agora é como você pode fazer como nosso intervalo para vários valores. Aqui vou ver o caso. E então int n. Então n é como na representação em processo do valor que estamos avaliando. E então você verá quando eu realmente acho que esses aparelhos são opcionais, se eles são int n, quando este n, o que quer que seja n, seja qual for esse valor e representa esse valor é menor que ou igual a 60, então você imprime, você falhou em qualquer valor. E uma vez menor ou igual a 60, então você campo. Para que agora eu possa verificar o caso int n. Quando n for maior que 60. Então podemos dizer que você passou. Isso faz sentido. Então 60 é a marca de aprovação, você acha que 61 é a senha, digamos maior ou igual a 59. Sim. Tudo bem. Veja se é maior ou igual a 59. Menor ou igual a 59, desculpe, isso significa que você falhou. No entanto, se for maior ou igual a 60, então você faz uma pausa. Então, 60 é a marca de passagem para cima. No entanto, se eu colocar milhares suficientes, isso não é um valor válido. Portanto, há outra situação que às vezes você precisa de várias condições em que às vezes você precisa de várias condições para parecer múltiplas condições lançadas na mesma decisão. Tudo bem, aqui temos que usar o que chamamos de operador e. E os operadores seriam, e eles também têm nossos operadores que seriam RR. Então, isso é, estes são canos e esses são ampersands. Tudo bem? Então, sempre que você quiser especificar duas ou mais condições dentro da mesma decisão, como neste caso, eu queria ter certeza de que é maior ou igual a 60. Também é menor ou igual a 100. Então eu posso ver quando n é maior ou igual a 60 é menor ou igual a 100. Eu não fiz inglês padrão. Isso seria como dizer entre 6100. Isso é o que os Andes, tudo bem, então quando é, como é mais de 60, mas também menos de 100, inclusive desses dois valores, então podemos trazer para você passado qualquer coisa fora disso é uma nota inválida. Então, meu desafio para você seria modificar isso para garantir que ele crie um diferente de zero. Não é negativo. Negativo seria convidado mais de mil é inválido. Então esse é o meu pequeno desafio para você com base neste exemplo, modifique esta declaração de caso para garantir que ela não seja inferior a 100. Como eu disse, você pode ter quantas declarações nesta seção forem necessárias. Então, se você quiser imprimir, você passa várias vezes, desde que faça isso antes de acertar o intervalo, então você não tem problema. Essa é outra maneira de tomar uma decisão dentro do nosso aplicativo C-Sharp. O último é um operador ternário, que é como uma versão de uma linha de uma instrução if simples. Digamos que eu queria determinar a mensagem a ser impressa com base na condição aqui. Eu poderia facilmente dizer algo como mensagem. Digamos que a mensagem var seja igual a. E então eu verifico a condição. Minha condição seria se o número de maçãs for maior que o número de laranjas, então eu quero fazer minha mensagem b. Você tem mais maçãs. Caso contrário, minha mensagem será que você tem mais laranjas. Há tantas maneiras de fazer isso. Este operador turner pode ser útil de muitas maneiras. Preciso apenas imprimir a mensagem em vez de ter a declaração if inteira aqui. Se e mais se você pudesse ter um burrito de desvio, sem desvantagem. Então, vou transformar nossas operações tão simples quanto é, é que geralmente é projetado para ter apenas uma condição para que não fique complexa como um todo. Se o bloco que pode lhe dar várias variações de diferentes colunas antigas, etc. Ele seria como, essa condição é verdadeira ou falsa? Se for verdadeiro, denotado pelo ponto de interrogação, esse é o valor que eu quero colocar dentro dessa variável. Se for falso denotado pelos dois pontos, então esse é o valor com o qual estou trabalhando. E isso praticamente funciona em qualquer lugar. Se eu quisesse um booleano, o que eu precisaria de um operador ternário para booleano. Essa é uma atividade para o tempo de Leto. Agora eu te dei um desafio para modificar isso para mostrar o alcance. Então, o que eu teria feito aqui, diremos int n, quando n for maior ou igual a 0, é menor ou igual a 59. E é isso realmente. Isso é entre 059, você falhou. Entre 100, você faz uma pausa. E então, como eu disse, você pode ter as chaves montadas. Então, vamos ver. Vou mostrar a você, deixá-lo com um exemplo de um caso simples. Digamos que k é 101, que vê o valor. E então eu vou dizer linha de gravação de pontos do console. Exemplo de caixa única. Se você fez casos 101, esse é um exemplo de caso único. Essa linha vermelha está lá porque preciso de uma pausa. Tudo bem, então todos os casos precisam ser seguidos por uma pausa. Você pode seguir em frente e executar este aplicativo. Seremos solicitados a inserir dois valores ou sinto muito, ainda estou sob o errado. Então, deixe-me alterá-lo para declarações condicionais e tentar isso novamente. Então temos que inserir o número de maçãs, alguém para dizer dez, e depois várias laranjas sobre o que você vê aos 20. E então estou recebendo a mensagem. Você tem mais laranjas porque o número de laranjas era realmente maior do que o número de arte era, o número de maçãs era realmente menor que o número de laranjas. Então, tenho mais laranjas certas. Agora, se eu entrar na nota, fui entrar 50, então você falhou e não sabia. Bem, essa é a mensagem do operador ternário. Deixe-me apenas comentar que deve evitar qualquer confusão. Mas vamos tentar isso de novo. Se eu entrar dez para maçãs e laranjas, 1010, você tem o mesmo número de maçãs e laranjas. Obrigado. E então, se eu digitar 101, ele vai dizer um exemplo de caso único. Mais um teste. Vou apenas comentar as operações de instrução if executadas sem depuração, então ela carrega um pouco mais rapidamente na nota final. Se eu inserir uma cai em algo maior do que então ela verá uma grade inválida. Não consegui atender a esse caso. Não conseguia atender a esse caso. Ele não precisava desse caso, então ele foi para o padrão. É praticamente assim que as declarações condicionais funcionam no C-Sharp. 14. Declarações de reação: Bem-vindo de volta pessoal. Nesta lição, veremos declarações de repetição em C Sharp. Nenhuma declaração de repetição geralmente vem de algumas formas. Temos um loop for-loop, temos um loop while. Você tem loop while. Você tem outros que eu não estou disposto a explorar nesta lição em particular, mas farei menções honrosas. E isso é, bem, antes de cada loop. Vamos nos concentrar naqueles que geralmente são predominantes na programação geral. Mais uma vez, estou sempre tentando mostrar a vocês como dar um todo brevemente para aplicar o que você está aprendendo aqui no C-Sharp em qualquer outro idioma. Para loops, enquanto os loops fazem while, eles estão disponíveis em todos os outros idiomas. O for-loop é o que chamamos de loop controlado por contador. Basicamente significa que vou fazer um loop para isso muitas vezes. Então, há um contador que surpreende quantas vezes você já correu e quantas vezes ele precisa ser executado. Então temos o que chamamos de loop controlado por condição. Este é uma pré-verificação, o que significa que verificará a condição. Então, acabamos de examinar as condições resolvidas ou em declarações condicionais. Então, ele vai verificar o Deshawn. E então, se essa condição não for verdadeira, ela seguirá em frente e fará o loop. E continuará verificando a condição até que seja verdade e então ela vai parar. E então temos o do-while, que é apenas um loop while invertido, realmente onde a verificação é feita no final. Então, ele fará isso pelo menos uma vez e depois verificará se a condição foi atendida e, em seguida, continuará. Para cada um, como eu disse, menção honrosa. Vamos apenas ver um exemplo rápido disso mais tarde. Vejamos uma sintaxe de quatro laços para que um loop for seja quatro e, em seguida, abra e feche parênteses. E então dizemos int. E, de um modo geral, na maioria dos exemplos que você verá na Internet, você vê que a variável que está sendo usada não tem relevância usando a letra i não tem relevância para o tribunal. Eu poderia ter usado norma, eu poderia ter usado o contador. Tudo o que é é um ponto de referência para a variável que vai acompanhar quantas vezes isso será executado. Acho que é a letra mais usada popularmente porque representa o incremento da palavra. Incrementos significa a cada vez. Portanto, posso ter certeza disso para incrementos. Mas também pode ser incremento igual a também ser um direito. Vou prosseguir com eu apenas porque é a variável mais usada, mas mais uma vez, não tem relevância sintática real. Então, definimos uma variável, geralmente um inteiro, damos um nome a ela e, em seguida, atribuímos a ela o valor de 0 no início. Observe que o Visual Studio está preenchendo automaticamente para mim, mas quero que entendamos cada componente desse código corretamente. Portanto, não vou preencher automaticamente com o tipo e explicar à medida que avançar. Então esse primeiro bloco define a variável que precisamos como incrementador. Observe que um ponto e vírgula termina. O segundo bloco no celular a ser digitado representa o valor que eu queria estar quando sairmos do loop. Então posso dizer que eu menos de cinco ou dez, seja qual for o valor que eu coloquei lá. Se eu quisesse correr cinco vezes, vejo menos de cinco. Não, por que isso arruinaria cinco vezes mesmo quando estou dizendo eu menos de cinco porque estou iniciando meu contato 0. Então, se você fosse fazer isso em seus dedos, eu vou ler aqui para que possamos vê-lo o mais claramente possível. 012345, isto é 123456 vezes. Você vê que se eu começar a contar a partir de 0 e então eu subir para o número cinco, isso é, na verdade, seis. Então é por isso que eu digo que deve ser inferior a cinco. Então, no momento em que ele atinge cinco significa que estou excedendo meu número de corridas. Então 010 é um, isso é dois, são três, são quatro, são cinco. Quando os incrementos que alteram os cinco, perceberá que cinco não são mais do que cinco. Vê o que estou vendo? Naquele momento eu queria sair. Portanto, esta é a condição de saída para o loop. Eu queria correr de 0 a quatro, o que seria 12345 vezes. Então, se eu quisesse que ele funcionasse dez vezes, será entre 0 e eu menos de dez. Só para que você possa apreciar por que estamos começando em 0 e que estamos vendo menos do que o número desejado. Existem diferentes maneiras de escrever isso, mas, de um modo geral, é assim que você verá escrito. Então, estou explicando isso facilmente. Entenda por que ele começa em 0, nossa seta branca em vez de menor que o número. Tudo bem? Não, o próximo bloco. É o nosso incremento onde tudo o que temos a dizer é eu mais plus. Então, anteriormente, analisamos os operadores de atribuição de compostos. Esses são acumuladores, o que significa que você está realmente adicionando qualquer valor à origem do valor e colocando de volta em uma variável. Este é um incrementador que, por padrão, apenas vê mais um. Isso é quase o mesmo que ver, é suposto ser igual a eu mais um, que se estivermos usando nossa técnica de acumulador seria eu é mais igual a um, o que também poderia ser escrito mais igual a um sinal de igual, que também pode ser escrito como um plus plus. Isso é tudo o que estamos fazendo. Estamos apenas aumentando em um a cada vez. Então é por isso que eu disse que é um cones são controlados. Agora isso poderia ser eu mais dois. Sinto muito, se eu quisesse, aumentou em dois. Eu teria que dizer que eu mais é igual a dois. Isso aumentaria em dois. Então, se você quisesse pular em dois como um contado de 0 a dez, então arruinaria 0, depois dois, depois quatro, depois seis, então, no momento em que seria quantitativo, ele saltaria. Então estou apenas mostrando as diferentes iterações, mas em um nível muito básico, eu mais, mais, mais uma vez, eu não sou tão importante. Isso pode ser uma norma, isso pode ser contra. E se eu dissesse variável de trânsito de cólon aqui, isso significa que tudo o que eu tinha como iodixanol em relação ao contador de palavras. Assim, um loop for parece na maioria dos idiomas de alto nível. Tudo bem, vou continuar com I. Se eu fizer a linha console.log dentro disso, posso imprimir isso , você sabe, eu em um loop. Então, estou correndo a linha em que estou. A expectativa é que isso seja impresso por quantas vezes eu defini, que seria entre 0 a dez ou 00 a nove, o que seria dez vezes o que eu coloquei dentro deste bloco, seria repetido por quantas vezes nós definimos aqui. Isso significa que se eu quiser fazer algo depois do loop, eu tenho que colocá-lo fora desse bloco de loops. Aqui eu posso ver a linha de leitura de pontos do console e vamos apenas imprimir uma linha em branco não colocando nada lá, só vai imprimir uma linha em branco. E então, nesta linha, vou dizer que um loop for terminado. Eu queria imprimir essa linha dez vezes. E então, no final, vamos dizer que um loop for terminado. Então, altere seus projetos , é claro, e vamos executar. E então, quando for preciso acusar, você vê aqui 12345678910 vezes, e então o loop está terminado. Então é isso que a repetição traz, porque se eu quisesse imprimir isso dez vezes, teria que escrever o telefone fixo do console dez vezes, que não é prático. Se eu quisesse aumentá-lo, eu teria que voltar e escrever isso muitas vezes mais em um loop for-loop, eu posso simplesmente mudar isso para 20. Ele arruinou 20 vezes 25 para fazê-lo funcionar 25 vezes, cinco vezes para fazê-lo funcionar e menos vezes, certo? Então, só para mais alguns contextos, vou mostrar qual é o valor. Então, vou carregar o console para imprimir o valor do contador. Eu queria dizer o valor do contador dois pontos. E então eu só vou interpolar ou eu variável, que é o nosso contador. Portanto, lembre-se de que cada vez que isso tiver o aumento e então ele voltará e verificará. O aumento me fez exceder o número? Caso contrário, execute qualquer comentário, Buck, tenha um número excedido. Null vem caixa. Então, cada vez que ele estraga ele incrementa e verifica, incrementa e treme. Então você verá que ele é executado entre o valor inicial de 0 e o valor de quatro, porque às cinco isso violaria isso. Vamos tentar isso. Tudo bem, então eu estou correndo de 0 a cinco agora você vê que a primeira linha precisa de 0, então ela foi em frente. A segunda corrida é 0, sinto muito, 1D e 2D e 3D e 4D. E no momento em que você aumentaria para cinco, ele saltou para fora e depois foi para o resto do código. E isso é praticamente tudo o que nosso for-loop faz. Sempre que você tiver algo que deseja repetir por um número específico de vezes, o loop for é sua melhor parte. Tudo bem, alguém para comentar isso por enquanto. E então vamos pular para o loop while. O loop while terá uma sintaxe ligeiramente diferente. Número um, fui querer dar-lhe alguma forma de contador. Portanto, há um número de aplicativos para o loop while. Deixe-me começar com a sintaxe. Em primeiro lugar, você vê um tempo, depois dá uma condição. Então, já analisamos uma condição, esse mesmo tipo de declaração de condição com menor que, maior do que etcetera que você usaria em uma instrução if é a mesma condição que você usaria dentro do enquanto. Posso ver enquanto alguma variável chamada n é menor que cinco. É por isso que eu estava dizendo que eu lhe daria o balcão porque há momentos em que você queria fazer algo por um número fixo de vezes, você precisará caminhar do que o número de vezes que você tem que ir manualmente e criar uma variável. É que você está usando um contador 0. Então você vai dar a uma condição. É quase como o que fizemos entre essas duas partes. E então teríamos que fazer essa parte fora da pequena seção do loop. Então, vamos em frente. Vou mostrar as duas maneiras. Vou apenas mostrar-lhe um quando ele atender a condição com base em certos elementos versus um, temos que fazê-lo de uma forma contra-controlada. Digamos que eu quero uma linha de gravação de pontos do console. E eu queria ver, me dar um número, número de entrada. Tudo bem, então vou deixar n obter esse valor vindo da linha de leitura do console. Tudo bem. Estou pedindo ao usuário um valor. Estou tomando a entrada. E então eu vou imprimir no final que você entrou. Você inseriu qualquer número que você inseriu, que é n, colocou no cifrão. Então, temos uma interpolação de entrada funcionando. Esta não é uma situação contra-controlada. Esta é uma situação em que está verificando se n é menor que cinco. Embora essa condição seja verdadeira, execute o loop. Egn começa em 0. Então, quando ele faz essa verificação, vai dizer, bem, ok, eu fui executar esse código. Se n ainda atender à condição depois que a impressão informou a tela, então eu fui executá-la novamente e ela continuará executando até que essa condição seja atendida. Portanto, essa não é uma situação contra-controlada. Porque se eu inserir 100 números que são todos menores que cinco, esse loop será executado continuamente até que eu insira algo maior que cinco. Então, isso é um loop controlado por condição. Pode haver momentos em que você precisa que ele seja contra-controle. E nesse ponto para o médico realmente colocar seu passo manual para aumentar seu contador de acordo. É aqui que vou aumentar o teste do cólon de acordo. Só para ter certeza, é claro que eu não estaria recebendo a entrada do usuário. Então deixe-me apenas manter que a situação de controle de condição e vamos testar. Aqui estamos vendo que as entradas são números. Lembre-se do que isso vai ser executado enquanto estiver neste E15 e começou em 0. E se eu te colocar em um, vai dizer que você entrou em um, mas ele verificou novamente e vê que, ok, eu ainda estou em um loop. Digite outro número dois. E então, para quantos números eu digitar que são menores que cinco, ele sempre continuará em loop e se sentará. Nunca me deixará fazer algo que viole a condição em que foi codificada. No momento em que eu entrar em dez, ele sairá. Aqui. Posso ver enquanto o loop terminou porque finalmente inseri algo que trouxe a condição. Tudo bem, isso é praticamente isso para o loop while. Então, o loop while realmente se manteria em um loop infinito. Não sei se você já ouviu essa expressão antes. Um loop infinito, você provavelmente já ouviu isso em um filme antes. Mas isso é o que é. while mal construído pode acabar em um loop infinito onde esse loop nunca pararia e poderia até ter sérias conseqüências em seu sistema. A longo prazo. Você sempre quer se certificar de que atende a essa condição. Ou melhor, você escreve a condição de uma forma que ela possa ser atendida para deixar o loop sair. Esta é uma condição de saída. Agora vamos olhar para o do-while, que eu não mencionei é apenas uma versão invertida do loop while, mas ele faz a verificação no final, certo? Então eu vou aceitar, pegar nossa variável chamada n, reinicializá-la para 0. E então eu vou ver, eles abrem um bloco? Tudo bem, então é aqui que a sintaxe é diferente. Dizemos para abrir o bloco e depois dizemos enquanto eu, então temos a condição n é menor que cinco. Isso é praticamente segurar. Deixe-me comentar isso por enquanto. Então, temos uma variável e da mesma forma que tivemos que pegar a variável e obter o condicionamento. Temos que fazer a mesma coisa aqui, exceto que a condição está no final, o que significa que ela sempre fará essa parte primeiro, independentemente da condição se for nós METAR, ele fará isso em pelo menos uma vez. Então é isso que chamaremos de verificação de postagem. Está verificando depois. Se usarmos o mesmo código que o do-while, enquanto, desculpe, dentro do “do-while” vai fazer isso. Então, depois, ele vai verificar se n ainda era menor que cinco. Então, vamos experimentá-lo. Um. Você vê aqui, está pulando para cima. Está me pedindo um número. Se eu digitar dez, que é maior que cinco, ele vai imprimir e então ele vai verificar e ver que eu excedi o. Então, não faça mais. Isso é praticamente tudo o que existe. Digamos que se eu tivesse definido esse valor para dez inicialmente, o que obviamente violaria essa condição e uma flecha. E ainda vai me pedir um valor para n. Porque, no que diz respeito, ele precisa fazer isso pelo menos uma vez. Eu não fiz. Se eu mudar isso para dois, ele ainda estará no loop porque agora n é menor que cinco. Se eu mudar para quatro e ele vai continuar me dando um loop até que eu exceda a condição. Isso é um “fazer enquanto”? Não, nós olhamos para o loop do-while, o while e o for. O para cada loop seria algo parecido com isso, mas isso geralmente é usado para listas são coleções que veremos mais tarde. Mas basicamente dizendo para cada item ou cada parcela ou cada objeto dentro de nossa coleção, isso é o que eu queria fazer. Portanto, isso é útil quando você não sabe necessariamente quantas vezes você quer fazê-lo e você não tem necessariamente uma condição para parar. Você pode apenas usar o para cada um dizer apenas passar por cada um em vez da coleção e fazer isso, mas veremos isso mais tarde. Então eu não sou como eu disse, foi realmente apenas uma menção honrosa. Sabe, eu mencionei isso para cada loop muito rapidamente, só sei usando Visual Studios, dicas de código e sugestões. O problema é que, na verdade, você pode rapidamente começar a digitar e, em seguida, pressionar Tab duas vezes. Ele gerará esse bloco de código para você. A mesma coisa para fazer, a mesma coisa por um tempo. Sou praticamente que funciona para cada bloco. Se eu disse se Tab duas vezes, ele traz essa instrução IF, se eu disser alternar toque duas vezes, ele faz isso. Então eu estou te mostrando que depois do fato porque eu realmente queria ter a prática de digitar, ele disse do zero, você pode apreciar. E alguns desses atalhos acham que eles não funcionam tão bem no Visual Studio Code. Portanto, ainda é bom entender todo o tipo ou a sintaxe independentemente. Tudo bem. Neste ponto, vou colocar o último console em vez de depois do “do-while”, como fiz durante o tempo e os quatro. E é isso para aprender sobre declarações de repetição. 15. Métodos - Void: Ei pessoal, bem-vindos de volta. Nesta lição, veremos métodos ou funções. Então, usarei ambas as palavras de forma intercambiável porque elas representam o mesmo tipo de construção que temos disponíveis para nós no C-Sharp e em muitas outras linguagens de programação. Neste ponto, eu já criei o novo projeto para que você possa clicar em Pausar, ir em frente e adicionar o novo projeto de console, e estamos chamando de métodos. Então, uma vez que você tenha feito esse fim de semana, continue. Portanto, temos dois tipos de funções na maioria, se não em todas as linguagens de programação, e elas são funções nulas e funções de retorno de valor. Portanto, evite que a forma mostrada basicamente complete uma tarefa e depois se move ao longo de nossas saídas. Em seguida, o retorno de valor conclui uma tarefa. Sim, o que é isso também garante que ele retorne um resultado. Você sempre pode continuar recebendo algo de volta da função de retorno de valor. A função void não retorna nada, você apenas faz alguma coisa e se move. Na definição de funções, você pode acabar com três partes e novos contextos BSN você pode não necessariamente precisar de um. Você acabaria com um protótipo, que basicamente define que a função é um cabeçalho de função para ver o tipo, seja vazio ou valor retornando, e o nome e os parâmetros a serem esperados. Tudo bem, isso é o que o protótipo tem. Então você tem a definição, que geralmente tem o código. Ele contém o bloco de código para a espuma mostrada. O que a função está fazendo? Está executando alguma coisa. Então, dentro do código, teríamos a chamada de função. Este é o código real que faz uma função ser executada. Porque nossa função ficará lá e a qualidade não fará nada. Então, isso é realmente o que os colegas de função. Então, temos o protótipo que é como uma definição, que, que é uma espécie de opcional, você pode nem necessariamente ter que fazer um protótipo, mas você sempre tem uma definição e você sempre tenha uma chamada de função. E esta é a parte chave. Agora temos interagido com algumas funções para saber em nosso código, onde escrevemos Hello World e tudo, nossa linha de escrita, que é uma função. Tudo bem, então quando você diz que a linha de gravação de pontos do console é uma função. O nome da função é linha correta. E acho que, por definição , seria realmente uma função vazia porque não está retornando nada para a linha de gravação de pontos do console. E, em seguida, as funções geralmente são caracterizadas pelos parênteses abertos e fechados. Pelo menos isso é uma chamada de função. Então, isso é o que chamamos essa função. Sua definição está em algum lugar dentro desse arquivo de código. E se olharmos para ele, você verá que é realmente uma função vazia. Tudo bem, então você vê que tudo isso vem junto. Portanto, o WriteLine é, na verdade uma função vazia em oposição à linha de leitura, que é outra função no arquivo de código, que usa parâmetros. Claro, mas este é realmente um valor retornando, que está retornando uma string. Quando falamos sobre o tipo, ele é vazio ou tem um tipo de dados. Como cientistas, conhecemos os tipos de dados. Ele pode retornar um valor de um tipo de dados específico depois ter feito sua função como o que a linha vermelha faz. Ou pode ser nulo onde ele apenas faz alguma coisa, não envia de volta nenhum valor. Você estaria se perguntando, ok, então por que precisamos de funções? Bem, as funções são uma boa maneira empacotar código ou código repetível que precisamos repetir. Tudo bem, então um dos fundamentos da programação é seco. Isso é um princípio. Quando falamos sobre o princípio DRY. Isso significa que não se repita. Em uma tentativa de não se repetir quando você descobre que precisa escrever o mesmo bloco de código para fazer uma coisa específica mais de uma vez, então você acabaria criando uma função. Então, em vez de escrever as quatro ou cinco linhas repetidamente em diferentes partes do aplicativo. Você acabou de colocá-lo dentro de uma função e a chamada quando necessário. Então foi exatamente o que eles fizeram com a linha de gravação de pontos do console. linha de gravação de pontos do console provavelmente tem algumas linhas de código nela. Em vez de pedir que você escreva essas cinco linhas de código todas as vezes, eles apenas dizem a você, chame essa função sempre que precisar dessa funcionalidade. Vamos começar com um exemplo de uma função vazia. E se eu quisesse uma espuma mostrada que basicamente apenas trazendo meu joelho para definir a função uma. Mais uma vez, preciso desse tipo. Neste caso, estou apenas imprimindo o nome, então eu só preciso de vazio. Vazio é o tipo. E então vou dar o nome, o nome da impressão. Eu não fiz, preciso dizer quais parâmetros esperar. Portanto, os parâmetros estão listados. Dentro dos parênteses. Se eu não tiver nenhum parâmetro que estou passando, então não preciso colocar nada dentro dos parênteses, mas além e doenças não são opcionais. Então, ao ver o nome de impressão vazio aberto em direção a ele sabe que esta é uma função e depois abro e fecho minhas chaves encaracoladas, o que me dá a capacidade de começar a escrever, assistir. E em vez dessa função, digamos que eu queria mantê-lo simples e estou imprimindo meu nome, então estou imprimindo Trivago Williams. Isso é tudo o que eu quero que essa função faça. Então imagine que eu tinha que imprimir vários lugares verdadeiros ou Williams. Tudo bem, justo o suficiente. Mas e se eu quisesse imprimir todo o meu nome completo ou apenas meu primeiro nome? Isso significa que em cada um desses vários lugares eu teria que ir e mudar essa linha de código várias vezes. Ou posso saber, diga o nome de impressão que posso chamar essa função em qualquer lugar do meu aplicativo. E então, se eu precisasse mudar a forma como ele opera, eu apenas vou para a função e altero o código, por favor. Repita você mesmo. Se eu ligar para isso dez vezes, não importa. Tudo o que ele vai fazer é ir para a função em Conheça a chamada. Se você tentou fazer uma chamada de função para uma função que não existe, é claro que você receberá um erro. Tudo bem, bem, você sempre pode ter uma função que existe e ela nunca é chamada. Então eles compartilharão essa linha verde, que está apenas dizendo que ela está lá, mas nunca é usada. Tem certeza de que precisa disso? Tudo bem. Há outro princípio. Você não vai precisar dele, ou YAGNI para abreviar. Você não vai precisar disso. Nesse princípio. Basicamente, digamos, não escreva código que você não precisa. Se você não tem nenhum propósito para essa função, não a escreva, não a tem lá. Obstruindo seu arquivo de código porque você o usará. Tudo bem, então vamos voltar ao filme que Shaun custa. Então, temos a função aqui. A chamada de função chamará apenas o nome da função ao lado dos parênteses com quaisquer parâmetros, conforme necessário. Nesse caso, não tenho parâmetros definidos, portanto, não são obrigatórios quando fiz essa chamada. Tudo bem, eu não preciso traçar a passagem de nenhum valor aqui, assim como Console.WriteLine, há momentos em que nova linha de gravação de pontos do console sem nenhum valor sendo passado. E tende quando consolamos essa linha vermelha com um valor sendo passado. Tudo bem, então este é um que t experimental. Este é um que não usa parâmetros. Nós olhamos para isso em alguns. Então, se eu executar este aplicativo, ele deve ir em frente e chamar minha função de nome de impressão. Lá vamos nós. Então este é o arquivo de código principal, seja lá o que escrevermos aqui, sim, mas qualquer método que coloquemos aqui que só vai obter esse bloco de código uma vez que for função suficiente em R, uma vez que é um definição de uma função, só é executada quando há uma chamada de função. É por isso que estamos vendo camarão ou imprimimos. No entanto, se eu fosse remover essa chamada de função e tentar novamente, nada aconteceria. Literalmente, nada aconteceria porque não há nada para acontecer. Existe uma função que nunca foi chamada. Não há muito código a ser executado em qualquer lugar. Isso é todo o que você chama ou interrompe com sua função. Tudo bem, então vou deixar os exemplos de métodos vazios são funções vazias aqui. Realmente e verdadeiramente. Mais uma vez, está apenas fazendo alguma coisa. Não está retornando um valor. Então, se você quisesse, digamos, uma função vazia para fazer alguma matemática, como números ímpares, então você tem situação em que gostaria de passar um parâmetro. Tudo bem, então vamos dizer que você gostaria de ver a audição. Estávamos falando sobre o potencial de fazer uma calculadora antes. E se você adicionar adição vazia e, em seguida, você quisesse adicionar dois números para adicionar dois números poder colocar parâmetros e reiniciar. Vamos Allah parâmetro é uma variável que você está definindo dentro dos parênteses na definição da função. E o valor que é passado será atribuído a esse valor na mesma ordem definida. Deixe-me fazer isso em um exemplo de código. Digamos que tenhamos que pegar dois números. Estou tomando int num1, int num2. Então eu quero imprimir na tela a soma. Então olhe, oh, nós podemos apenas fazer com que pareça lindos e profissionais. Então eu fui usar a interpolação e coloquei uma normal. E a ferramenta norma é, então eu posso simplesmente colocar a matemática número 1 mais num2. Portanto, não estamos retornando um valor. Vou chamar a função, dar-lhe dois valores, e então ela vai fazer o processo e imprimir a tela, mas não está retornando nada para chamar isso, Não, eu diria adição. E passando dois valores. E observe agora que estou colocando isso na dica, colocando um valor para um lado, faça isso e pressione vírgula. E depois vendo colocar um valor para a ferramenta num, eu faço isso e continuo. E então D2L eu chamaria isso se fôssemos reforçar isso um pouco, sem entrada de usuário antigo para num1 e num2. E o que vou fazer é saltar de volta para um de nossos exemplos anteriores, onde pedimos duas entradas. Acredito que você fez isso em nosso OK. O que você acha que declarações condicionais pediram número de laranjas e número de maçãs? Só estou tentando trabalhar de forma mais inteligente, não mais difícil, certo? Então insira o número, vou simplesmente mantê-lo simples. Número um e número dois. Então estamos chamando esse número um, número dois. Então estou fazendo tudo isso deliberadamente com minha nomeação porque estou pegando variáveis, estou tirando valores do usuário. Estou começando a número um. Número dois, defini na minha função que está tomando num1, num2. No entanto, tudo o que tenho que fazer é passar o valor para número um como o primeiro verbo e dedicado ao normal para o segundo verbal. Então isso só vai mostrar que a nomeação aqui não tem correlação com o que está aqui, porque eu posso passar os valores literais um para o número 12, para num2, eu posso passar na minha variável. Isso eu recebi do usuário para o número um e a variável para o número dois. O fato é que, no momento em que ela faz essa chamada e passa por cima, que quer que tenha sido o primeiro na lista passa em vez de primeiro nesse parente ou um segundo nas bandas da lista com o que está doente na lista. Em seguida, o método void vai seguir em frente e executar. Agora estamos aprendendo sobre um, fazendo métodos vazios para defini-los e chamá-los, e depois três, escrevendo em nossos parâmetros. Então, se eu executar este aplicativo, sim, ele vai imprimir para VOR porque temos o nome da impressão. Claro. Então, ele faz isso. Eles notariam que continua com o resto do programa. Então ele foi, chamou a função, a função e disse, em seguida, voltou e, em seguida, continuou o nó para ver Digite o número um. Vou dizer dez e depois inserir o número para 20. Então ele vai conhecer a tosse do Photoshop, onde eu adiciono passar para um t de ponta a ponta então a soma de estanho e duplo T é a matemática. Então ele alegou que Buck percebe que não há mais nada e então eles podem consertá-lo. É assim que as funções funcionam. Então imagine que você tinha que escrever esse tipo de lógica em vários lugares. Você não quer ter que escrever isso toda vez. Eles perguntaram um número 1, num2, num1, num2, num1 num2. Você escreve o método. Sim, você pode solicitar o usuário e tudo o que você faz é ligar. Se você estiver escrevendo uma calculadora, você pode criar um método por operação que faria algo muito semelhante a isso. E você chamou a Operação de acordo. 16. Métodos - Retorno do valor: Tudo bem pessoal, então estamos continuando nossa aventura em métodos e realizando seu trabalho. Já analisamos a função void, então ela ensinará uma que não usa parâmetros e analisamos outra que usa parâmetros. A principal coisa sobre as funções vazias é que elas simplesmente não estavam em operação e depois terminam. Então, se quiséssemos saber o fim dessa operação, nós simplesmente talvez escreveríamos Console.WriteLine e C e off void função. Então, quando pressionamos Iniciar, ele vai para o IIT sendo o compilador, vai na ordem em que o código foi escrito. Isso verá que essa é a definição de um método. Não faça nada aqui. Esta é a definição de um método não fazer nada lá dentro. No entanto, a primeira linha de código que preciso executar é uma chamada de função, o que significa que preciso encontrar essa função. Eu já teria visto sua definição. Faça o que diz que devo fazer. E então esse é o fim dessa função. Em seguida, passamos a obter dois números como entrada. Depois que o usuário tiver fornecido, eles seguirão em frente e vemos que essa é outra chamada de função. Está pedindo esses dois números. Então ele faz uma pausa, vai, ele descobre que a função faz uma pausa em dois números. Aqueles o que é suposto fazer. E então esse seria o fim dessa chamada de função também. Tudo bem, então isso é tudo que as funções vazias funcionam. Não, vamos dar uma olhada nas funções de retorno de valor. Não se incomoda retornar funções faz exatamente o que o nome sugere. Eles retornam um valor, algo é retornado no final. Muitas vezes, operação. Digamos que quiséssemos encontrar o maior de três números. Então, o maior fora dos três. Então, vou apresentar um outro prompt aqui para um terceiro número. Então, pegamos o número um, o número dois, então descobrimos qual é a soma do número 12 ou é o que a soma deles é. Mas vamos ter uma terceira variável aqui que levará nosso terceiro número no final desta operação ou no momento em que ela atingir isso. Agora devemos ter três números. Agora eu quero saber qual é o maior número. Vou criar um método que levará esses três números e retornará o maior. Quando falamos sobre retorno de valor, você precisa começar com o tipo de dados. Que tipo de valor estou retornando? Bem, neste caso, se eu estiver comparando três inteiros, então a expectativa é que eu tenha retornado o maior dos três inteiros. Então, meu tipo de retorno será um número inteiro. Se eu estivesse retornando a palavra ou um nome, seriam strings. Então, da mesma forma que você considera qual tipo de dados você deve usar para sua variável é a mesma. Consideramos o tipo de dados que você usa para o tipo de devolução do seu método. Vou dizer int. E então eu fui ligar para esse número maior. E regras de nomenclatura muito semelhantes se aplicam aos métodos, exceto que tendemos a usar o caso pasco para métodos em oposição ao CamelCase. Então lembre-se plus Co case significa que você capitaliza a primeira letra, bem como todas as outras, primeiro das outras palavras nesse bloco de texto, essa é a sua digitação. Tudo bem? Então, int maior número. Então eu vou dizer que ele precisa tomar três parâmetros aqui, Visual Studio sugerindo que IT num1, num2, ambos os botões int foram introduzir um terceiro, int num três, porque eu queria tomar três números e quantos números você precisar listar o máximo, é claro. Não, você verá que eu já tenho fila aqui. Preciso ver que nem todos os caminhos de código retornam um valor. Então eu gosto de explicar o que esses erros diferentes significam porque às vezes não é muito óbvio, aqui, ETC. E que temos um método que ele viu é um valor retornando, mas não vê nada sendo retornado. Tudo bem, então isso significa que precisamos uma palavra-chave e essa palavra-chave é retornada. Após o retorno, precisamos ficar no que estamos retornando. Então aqui vou mostrar a você se eu disser retornar 0, é satisfeito porque 0 é um valor inteiro, um valor inteiro, e ele tem a instrução return para o inteiro. Então, está esperando que eu retorne um número inteiro. Tenho essa afirmação vendo que estou retornando um número inteiro. Se eu colocá-lo em uma string como meu nome, então eu receberia um erro porque isso não é um número inteiro. Portanto, é bom ver que você não pode converter implicitamente string de tipo em int y. Esta é uma string, mas espera que um número inteiro seja retornado. Essas são pequenas coisas que você precisa procurar ao procurar ao lidar com funções de retorno de valor. Então, vamos passar por um exercício rápido aqui. Vou mostrar outra coisa chamada aninhamento, que é onde temos uma estrutura de controle dentro de outra. Então R1 digite off construct dentro de outro significado. Aqui temos um método, mas vou colocar uma declaração if porque a única maneira de saber qual o maior número aqui é usar uma declaração if ou alguma forma de lógica de decisão. Fui começar vendo que o maior número é igual a um. Isso é apenas uma suposição porque um deles deve ser o maior. Então eu vou supor que ninguém é o maior, mas então eu preciso testar se o maior número é realmente maior que o núm dois, núm três, então se qualquer um deles for maior que, isso será o novo maior número. Então eu fui dizer, se da mesma forma que eu disse, se maior, vamos ver se o maior é menor que o num2, que obviamente o maior precisa ser igual a m2 porque o maior número não pode ser menor que o nome 2. Se for menor que, então eu preciso reatribuir. Know num2 assume o papel de maior número. Então posso dizer se novamente, se o maior número for menor que o número três, então o Visual Studio vai me ajudar novamente e me avisar que o coordenador é que o maior número não é igual a núm três. Observe que tenho duas declarações. Eu não usei se mais, se ou o que quer que seja porque eu precisava fazer essa comparação. E então essa comparação, se eu fizesse um if else, a única maneira de ir para essa comparação é se esta não fosse verdade, você vai querer ser muito cuidadoso e muito deliberado com aqueles tipos de coisas. Se mais isso significa que vou fazer qualquer um ou. Então, se este for verdade, então eu não preciso olhar para isso porque este era verdade. No entanto, se eu fizer declarações if completamente diferentes e individuais, ele verificará isso. Se for verdade, ele entrará no corpo. Em seguida, ele verificará isso. E se for verdade, ele entrará no corpo. Então isso está dizendo que, se o normal começar como cinco, e então ele testa para ver se o ponto cinco, que é o maior, esse é o valor cinco, é menor que num2. E digamos que num2 era 105 é nada menos que 105 é menor que dez, isso é verdade. Então, nenhum maior obtém o valor de dez. Então ele seguirá para dizer, verifique se dez é menor que, digamos três. Se não for inferior a três, isso não será executado, pois isso não era verdade. Então precisamos retornar. Se você disse maior, então você está definitivamente correto. Precisamos retornar esse valor. Portanto, isso está retornando um número inteiro que é considerado o maior número. Então, o método que você o nomeia acordo com o que você sabe que deve fazer. Sim. Bem, você sempre tem que se certificar de que qualquer lógica que você esteja delineando lá corresponda à operação pretendida e qualquer valor retornado corresponde ao ícone esperado. Então você pode imaginar que você escreveu um método para calcular o imposto de alguém e , em seguida, você errou o cálculo. Então, toda vez que você chama esse método fiscal calculado, ele estava retornando o valor errado e você está tomando muito imposto dessa pessoa, isso não seria bom. Portanto, é sempre bom entender qual lógica aqui está colocando em relação à operação em questão. E sim, posso sentar aqui e mostrar exemplos onde você tem que praticar. É assim que você fica melhor nisso. Então você fica melhor em tomar essas decisões. Determinamos qual é o maior número e depois o devolvemos nulo. Posso fazer uma chamada de função para o maior número. Depois de obter os três números. Não posso simplesmente dizer o maior número e depois passar o número um. Número dois, número três. Tudo bem? Não, quando eu passar isso , o que acontece? Vou chamar esse método. Ele retorna o maior. E então o que acontece? Sabemos que sem um console.WriteLine, nada está sendo impresso na tela através da linha de leitura do console, nada está sendo retirado da tela pois é toneladas quando ele atinge esse método, É bom subir períodos, ir para as margens dos números que vão fazer isso. Ele vai retornar a maior roda de água. Temos que reforçar isso um pouco mais. Eu tenho que realmente colocar isso dentro de uma variável. Então eu posso saber que C cria uma variável chamada, neste caso resultado, e será igual aos resultados dessa chamada de função. Da mesma forma que temos feito a mesma coisa aqui quando pedimos informações. Dizemos linha de leitura do ponto do console, ou dissemos que o nome da string é igual à linha de leitura de pontos do console. Ele está chamando um método e, em seguida, está atribuindo-o a este lado. No caso do software, temos que fazer conversão, converter para em 32, ou seja, uma função de retorno de valor. Tudo o que está fazendo é retornar um número inteiro, certo? A mesma coisa para converter o char e bool, etc. É apenas retornando qualquer tipo de dados que ele disse que retornará. É por isso que a atribuição ou a variabilidade à qual está sendo atribuída é muito importante. Então int número dois é igual a converter em 32, Isso é chamada de método um. Mas em onde passar outro método aqui isso vai. Dê-nos o valor que será convertido e, em seguida, nossa ciência. Então é a mesma coisa aqui, exceto onde querer escrever seu próprio método. Desta vez, estou vendo que cria uma variável do tipo inteiro chamada resultado e atribuída a ela o que for retornado desse método chamado maior número, que está retornando um número inteiro. Tudo bem? Então, quando passamos nesses três números, subamos, encontremos a comparação, retornamos o que for o maior. E então, quando retornamos, isso é armazenado dentro do resultado. Então, não, posso ver que o maior número é. Vou usar a interpolação aqui e ver os resultados. Interpolação significa que coloquei o cifrão na frente do fluxo. Lá vamos nós. Tudo bem, então ninguém vai imprimir o maior número é resultado. Não. Vou te mostrar outra maneira que você poderia ter feito isso. Para usar menos linhas. Você poderia realmente apenas imprimir isso. Tudo bem, vamos ver. Poderíamos dizer ponto do console, escrever linha. Esse bloco de string é e, em seguida, colocar essa chamada de função dentro da seção interpolada. Isso significa que ele irá atender à chamada de função. O valor é retornado e esse valor é o que será impresso dentro dessa seção. Então, só estou te mostrando, sempre vou mostrar suas opções. Você poderia fazer isso em duas linhas como esta, ou você poderia fazê-lo em uma linha como esta. Eu costumo preferir usar duas linhas porque esse formulário MY aumenta a legibilidade. Posso ver claramente que isso é uma variável. É assim que está sendo definido. E então isso está sempre sendo usado em oposição a um pedaço de texto mais longo, onde eu tenho colocar boas lentes para ver que esta é uma função chamada acontecendo dentro de uma string interpolada, dentro disso, dentro disso, por que ainda estava funcionando. Você também precisa considerar a legibilidade do seu código porque você pode estar escrevendo para si mesmo. Ninguém parece legal. Talvez faça uma pausa e volte e você seria como, o que eu escrevi aqui? Por que eu escrevi assim? Ou outra pessoa pode ter que olhar para o seu código. E eles não estavam pensando do jeito que você estava pensando quando escreveu o código. Portanto, é difícil para eles pegarem. Então você sempre precisa considerar essas possibilidades quando está escrevendo seu código. Então, às vezes as coisas podiam ser feitas em uma linha, mas eu dividi todas elas só para vê-lo porque torna mais fácil digerir e ler. Tudo bem, então vamos testar isso. Vou correr sem depuração. Então vamos colocar mais de três números. Então eu fui colocar em 1056 e vai dizer que o maior número é dez. Segure não. Porque a maior norma. maior obteve o número dez inicialmente, certo? Esse era o meu normal. Então disse, se dez é menor que cinco, o que não é. Então, ele pulou isso. E ele disse, se dez é menor que seis, acho que dentro dele não é. Então, ele pulou isso. Então ele retornou dez e depois armazenou lata em vez de resultados, que foi o que foi impresso na tela. Esse é todo o seu trabalho de métodos de retorno de valor. 17. Funções de manipulação de caracteres: Tudo bem pessoal, então estamos meio que saindo do caminho mais conhecido de explorar o B6 do desenvolvimento C-sharp e entrar em alguns conceitos mais avançados. E uma delas é uma manipulação de string com uma string em manipulações de tempo D8 porque esses dois tipos de dados, como aparência deme perfeita, podem causar muitos problemas se não forem tratados corretamente. Vamos analisar algumas das maneiras pelas quais podemos manipular cordas. Temos feito isso para nós, até certo ponto, sabermos, mas estaremos olhando para alguns outros. E também vamos dar uma olhada valores de tempo dy dt e manter esses podem ser manipulados também. Vamos começar rapidamente. Sabemos como imprimir, então sabemos como imprimir a string. Devo dizer imprimir na tela aqui, desculpe, que é a linha de gravação de pontos do console. Se eu for imprimir uma coisa que acabei de ver, a única variável, neste caso, o Visual Studio está realmente me ajudando com a concatenação. Então esse é, na verdade, o código para o segundo. Se eu quisesse apenas imprimir o primeiro tema que sabemos o que acabamos de dizer, linha console.log, por favor na string ou na variável, ou é um fluxo estático que passamos. Qualquer que funcione quando for uma variável de string, bem, francamente, ele pode lidar com quase todas as variáveis até onde vimos, todos os tipos primitivos simples pelo menos. Portanto, essas são suas opções para imprimir tela. Agora, quando se trata de concatenação, sabemos que podemos usar nosso sinal de mais. Então aqui estou vendo Console.WriteLine, o valor que está em FirstName, espaço no meio e, em seguida, outra variável. Também sabemos que nós, se quiséssemos uma string estática mais a variável, veríamos que meu nome completo é. E então seríamos capazes de concatenar a variável. E então, quantas outras variáveis precisaríamos, apenas fluímos com o espaço vazio. Então, a relevância da espécie que imprime, vai imprimir exatamente o que vê. A impressão do meu espaço, o espaço total, namespace é o espaço, depois o LastName, depois o espaço novamente, depois o primeiro nome. Então essa é a importância de ter esse pouco espaço lá dentro. Tudo bem? Não, embora como olhamos para fazer concatenação fosse usar interpolação onde, em vez de usar os sinais de mais, podemos usar nossos aparelhos encaracolados. Nós apenas corremos um bloco de cordas. Mas é claro que você percebe que eu uso variáveis aqui, mas elas ainda são laranja. Preciso do cifrão na frente. Vou tomar nota de que é uma string interpolada saiba que, de qualquer maneira, vê as chaves encaracoladas, que deveria ser um verbo lá dentro. Tudo bem, então esta é outra maneira porque agora está correndo meu espaço. espaço de nome completo é então o espaço do sobrenome, o primeiro nome, o sobrenome, o nome próprio. Normalmente você teria como uma vírgula, então seria coma de Williams para VOR. Veja isso mesmo que eu esteja digitando entre as duas variáveis aqui e a string interpolada. Vai vê-lo como um bloco contíguo, apenas vai super impor as variáveis que ele sabe que precisa, precisa estar lá. De um modo geral, estes são os mais comuns que você encontrará na água e C-afiada. Mas então a alternativa, é claro, como tínhamos visto era usar espaços reservados. Portanto, não estamos usando nenhuma interpolação. Em vez disso, estamos usando 12 e quantas outras pastas policiais forem necessárias. E então acabamos de colocar as variáveis que correspondem nessa ordem. Então, o primeiro nome, depois o sobrenome, o sobrenome aqui, muito por favor deter 0, nome próprio, tanto como espaço reservado um. Essas são maneiras pelas quais podemos lidar com concatenação em cordas. Não, há momentos em que você pode querer saber que é quantas letras estão no primeiro tema, por exemplo, se eu quisesse fazer isso, eu gostaria de encontrar o comprimento da string. Então eu poderia dizer int, digamos que o comprimento seja igual a. E então eu posso chamar a variável. E, em seguida, veja se o Visual Studio é preenchido automaticamente contextualmente nessa fórmula. Então, vai dizer, me dê a variável, olhe para o valor nela e me dizendo o comprimento. Meu nome tem sete letras, isso só retornaria sete. Esta é uma propriedade nessa string chamada length. Quando entramos em aulas e objetos, Yolanda, hora semelhante você compra uma propriedade. Portanto, não se preocupe com isso. O uso dessa palavra-chave ainda. É isso. Então você veria o comprimento de uma string. Se você quisesse imprimir esse curso difícil, você diria algo como a linha de gravação de pontos do console usei apenas digamos comprimento ou deixe-me deixá-lo um pouco mais claro. Alguém para usar o estilo mais antigo fora da concatenação. Isso estaria vendo seu nome é. Certo. Deixe-me transformar isso em uma frase inteira. Então isso seria interpolado. Deixe-me torná-lo poluído. Seu nome é, e eu posso colocar muitas letras longas. Feche o fluxo e pronto. Então está imprimindo uma frase inteira com uma variável smack dab no meio de uma string literal. Agora, vamos passar para outra coisa. E se quiséssemos substituir as letras? Então vamos dizer que eu queria um novo nome ou queria ver como seria meu nome. Se eu substituísse todos os t pela chave de letra. Posso ver um primeiro nome, pontos. Então, se você fizer o ponto, verá um número do que chamaremos de métodos. Já analisamos os métodos. Assim como podemos dizer, ponto do console, linha de gravação é o nosso método. Você pode realmente em qualquer variável de string c, ponto variável e, em seguida, você verá vários métodos. Alguns deles são úteis, outros não. Só para vê-lo semana e ter essa propriedade. Então, se eu disser Substituir, então você vai realmente ver que há um método que eles são chamados ela, por favor. E quer duas coisas. Ele quer o velho char ou personagem, quer um novo personagem. Eu pude ver o caractere t. Lembro-me de caracteres usarem aspas simples e apenas um valor pode ir em vez de uma única aspas. Tudo bem? Então esse é o personagem dele. E eu quero substituí-lo por um novo caractere de k. Isso vai avaliar automaticamente essa string e passar e encontrar todos os T e substituí-los por K. Tudo bem, eu fui fazer uma pausa aqui e faça alguns testes. Então, vamos mudar sobre nosso projeto é através da manipulação. Espero que você já tenha feito isso. Sinto muito, eu não apontei que ele disse anteriormente, mas crie sua manipulação de clustering de projeto. Ou talvez você já o tenha criado com um nome diferente. Esses não são realmente os grandes pontos. Apenas certifique-se de que você está executando em um novo método, em um novo projeto. Então vamos correr. Então, aqui está a impressão. Então, temos uma corda percorrida sendo impressa. Aí está ele. Sei que temos todas as maneiras diferentes que fizemos concatenações de corte escurecidas e ele terá seu nome com sete letras. E então fizemos a substituição por novo nome o que eu não fiz um sprint os resultados finais que alguém para ver seu novo nome é, e então eu vou ver o novo nome. Então, é a Austrália. Isso de novo, certo. Então aqui temos seu novo nome é Chris. Oh, eu não gosto do som desse. Certo. Mas agora você vê o que parece. Então, mesmo que eu quisesse remover a ninhada, vamos ver o olho. Então meu nome é bastante único porque é realmente trivial. O que há olhos lá dentro? E é grego e significa reservatório de força. Tanto muitas pessoas, quando as chamam pelo nome, elas apenas me chamam de problemas. Eu realmente não faço um grande negócio com isso, mas tudo bem. Digamos que eu disse novo nome, um é o primeiroNome, substitua a letra I, o personagem i por nada. Eu pude vê-lo com um espaço. Porque realmente e verdadeiramente um personagem não pode estar vazio assim. É por isso que você está recebendo essa linha verde, essa linha vermelha. Você não pode ter um caractere literal vazio. E não há ponto de carro vazio como mais velho é um ponto de fluxo mt, não é? Não, não há torre. Então vamos ver, vou substituí-lo por um espaço, então uma espécie, na verdade um personagem. Tudo bem, e então eu fui ver seu novo nome é um novo nome. Então, vamos ver o que isso traria à tona. Aí está ele. Então, não, tem aquele espaço onde me disseram que a operação de substituição funciona. Tudo bem, então vamos seguir em frente. O próximo seria acrescentar a outra variável de string realmente e verdadeiramente que se pareceria exatamente essa concatenação aqui ou qualquer uma delas. Porque vemos que você pode apenas combiná-los, certo? Então eu poderia realmente ver var, desculpe, string listening fica tão var, string name completo é igual a uma variável combinada com outra variável. E é isso. Ou se eu só quisesse combiná-los sem nada entre si mesmo para C plus, tudo bem, então, uma vez que você colocar um sinal de mais entre uma corda ou entre duas cordas, seria que as cordas literais de ar sejam variáveis de string ou um verbo que sob string literal, no entanto, a combinação, você só usa esse sinal de mais. Então isso não me daria meu nome completo, o que eu posso imprimir. Seu nome completo, é um funcionário até o nome completo lá. Agora, a próxima opção seria dividir o fluxo. E você pode ver aqui que comecei a escrever o código teria um erro. E o erro está dizendo que ele não pode converter implicitamente string de tipo com essas caixas, com essas são duas cordas regulares de ferramentas de colchetes. Então, em outras palavras, isso realmente me daria uma coleção de cordas. Então aqui estou vendo o nome completo. Isso vai ser atravessado pelo espaço Williams e dividi-lo. Onde quer que haja um v. Como muitos vistos podem aparecer em um bloco de string, ele irá dividi-lo de acordo. Então, se houver três V's, então ele vai dividi-lo à esquerda de um dos V, para os tumultos daquele V e para a baixa do próximo V, isso é praticamente o que ele vai fazer . Então, em Trevarthen Williams, há um VC acabaria com esse lado. E este lado como duas cordas ou dois blocos de corda. Então, não posso armazenar dois blocos de string em uma string, é por isso que eu disse que precisa dos colchetes, que significa que ainda não estamos prontos para áreas. Não estamos prontos. Vamos explorá-lo com mais detalhes. Mas fui mostrar qual é o resultado dessa operação independentemente, a melhor maneira de iterar através uma matriz é usar um loop for-loop. Então, geralmente diga como quatro. E então já passamos por um loop for. Para int i, que é meu contador, é igual a 0. Eu tenho menos do que o comprimento, ou seja, quantas vezes você quer que ele passe? E então eu mais, mais. Nesse caso, não sei quantos blocos de string vou conseguir. Eu realmente não sei porque não sei qual será o nome completo. O nome completo poderia ter sido a entrada do usuário onde a pessoa Internet transmite sem v's nele. Portanto, não há nada para dividir igual a 053 V's nele. Então, R5, eu não sei. Para a variável de comprimento, eu não gostaria de colocar dez porque depois fui dez vezes e talvez só precisasse fazer duas vezes. E então isso realmente causará um problema. Mais uma vez, não estou entrando em detalhes demais com o Ari ainda. No entanto, uma maneira fácil de navegar por isso seria pegar essa matriz de strings c. Em vez de nos dar um número específico, fui ver o comprimento do ponto IRI, qualquer tamanho, qualquer número de elementos estão bloqueados. Portanto, o Stream sair dessa operação será armazenado aqui. E cada um chamará o Windows um. Cada bloco será um bloco dentro dessa coleção de cordas. Estou dizendo que me dê o número de blocos na coleção de cordas, e esse é o número de vezes que eu quero que você faça loop. Vamos nos aprofundar mais sobre isso mais tarde, então não se preocupe com isso. Mas agora eu só queria mostrar a linha certa do console. Tudo o que eu teria que fazer é dizer, me dê o valor do nome dividido por subscrito que está em I. Certo? Só vou imprimir isso. E então, quando eu olhei para ele no modo de depuração, eu vou ver bandeja e, em seguida, ou William, isso está realmente imprimindo aqui porque esse v seria os pontos de divisão. Então, qual é o elevador do V? O que está à direita do v? Mais, V é mais divisões. Então foi o que eu disse. Não sabemos quantas divisões obteríamos, é por isso que tentamos mantê-lo dinâmico. Mais uma vez, estaremos olhando para isso. O Conceito de Ironia é mais tarde. Vamos passar para as comparações de string. Uma comparação de string me ocorre quando você deseja comparar algo que é um usuário inserido com uma opção potencial, ou você quer comparar dois valores com variáveis. Há vários motivos pelos quais você precisa comparar strings. Portanto, uma comparação muito comum que você pode acabar fazendo é verificar se algo está vazio ou padrão. Porque, como eu disse desde o início, quando defini a string, digamos variável, variável de teste. Lembre-se, defini a string e não lhe dei o valor neste momento, é o que você chama de nulo. Tudo bem? Esse é outro ponto. Você pode ter dado isso. Isso. Não é nulo, mas não tem valor. Portanto, não é, não, só está vazio. Só não é da mesma forma. Isso será a mesma coisa que ver o ponto de string vazio. Tudo bem, então esses dois realmente equivalem ao mesmo tema. Deixe-me colocar isso como um comentário lá para mostrar que isso significa ponto de fluxo vazio. Tudo bem? E em outras, em algumas situações, você não sabe se o usuário realmente colocou algo válido ou fulano, você tem que verificar se é verdade, se o nulo, desculpe, se a string é nula ou se está vazia . Há um método interno em que, quando você digita a string do tipo de dados e, em seguida, vê uma parada completa, você realmente obtém um monte de métodos também analisados para isso. Você tem o molar vazio e você tem Ismail, nosso espaço em branco. Espaço em branco seria mais assim, onde você acabou de colocar um espaço lá dentro. Não há nada lá. Eu queria dizer corda nula. Isso está nessas cordas. Este é um vazio. String, então este espaço em branco, reto, só para que estejamos claros o que cada um representa. Em vez disso, verei você na variável de teste. Você pode ver que é nulo ou vazio, o que dirá sim ou não. Isso retornará uma função de retorno de valor booleano que está retornando true. Não é vazio ou nulo, não é o conhecimento não está vazio. Então eles precisam analisar a corda. Então você não pode ver nenhuma string aqui se ela estiver nula ou vazia. E é aí que você diria, bem, eu tenho um ISI aqui. Não posso prosseguir. E, na verdade, quando você olha para isso, então em C-Sharp, em versões posteriores do C Sharp, isso está realmente me impedindo de usar isso sem primeiro atribuir um valor c. Eu teria que ver explicitamente aqui que é nulo para que ele prossiga, que você poderia simplesmente atribuí-lo como nulo, não atribuindo-o. O compilador não vai aceitar nenhum palpite e dizer: Oh, não é, não se limita a isso. Então você tem que dizer explicitamente que não é. Como eu estava dizendo, você poderia realmente, se for menor, vazio e não for nulo, você poderia tomar oxigênio. Essas são considerações que você tem que conhecer. Outro fácil que você provavelmente iria querer. Deixe-me dividir em nosso console bem aqui. Então eles agora vêem que a string é nula, um alerta de cidadão vazio. Então vamos ver que não é. A razão pela qual você gostaria de comparar strings é se você quisesse comparar duas delas. Portanto, o mesmo tipo de equivalência que você provavelmente aplicaria a uma operação matemática pode se aplicar a duas variáveis. Então, eu poderia ver se FirstName é equivalente a LastName. Em seguida, tome alguma opção. Os nomes são iguais. Isso é algo que você poderia fazer. Você também pode ver se eles não são iguais. Eu não sou igual seria sinal de exclamação igual, não igual a c. Os nomes não são iguais. Então, essas são outras coisas que você gostaria fazer mais uma semana e comparar duas strings é ver se então string tem um método ponto com peer nele. Então ele pode política e as cordas que você quer comparar. Então, aqui está mostrando que você tem algumas opções. Você tem nove sobrecargas. Estamos olhando para sobrecargas em algumas balas. Posso passar uma string número um e número dois, que é o sobrenome. E então ele vai retornar, se eles estiverem, desculpe, na verdade, isso está retornando um número inteiro. Então deixe-me tentar isso de novo. Então, eu realmente diria que os resultados da comparação int são iguais ao computador de string. Isso é inteiro. Então ele diz que um valor menor que 0 mostra que na verdade são válidos, que não são 0, mostra que eles são diferentes. Praticamente resultados ou qualquer valor variável que você obtenha dessa comparação. Se for equivalente a 0, então isso mostra que os nomes são iguais e eu posso simplesmente fazer um outro. Os nomes não são iguais. Então, esta é outra maneira que você pode verificar se existem várias maneiras que eu não posso esgotar todos os métodos aqui e posso garantir que você avança em seu profissional ou mesmo recreativo perseguições, você vai encontrar maneiras diferentes, necessidades diferentes de comparações de string que não podem ser abordadas em um único curso. Portanto, é prática audível e exposição. Em seguida, vamos ver como convertemos valores. Então, cordas. Normalmente falando, sempre que você quiser que algo seja uma string, você daria à variável o tipo de dados. Hum, vamos ver, converter, valor convertido, string convertida, é chamado de string convertida, é igual a ponto de string vazio. Estou apenas inicializá-lo para transmitir ponto mt. Saiba se eu tenho um número que eu quero como uma string. Esse número pode ser um número específico que eu queria digitar assim. Ou pode estar em uma variável. O número Int é igual a esse valor. E eu queria que esse valor fosse armazenado dentro dessa variável. Não posso simplesmente dizer que converter essa string é igual a número. Nós esgotamos isso. Não podemos simplesmente pegar alguns números na polícia dentro de uma corda. Faz uma palavra que nós, em vez disso, temos que convertê-lo da mesma forma. Teremos que converter a ferramenta em 32 de strings e ver o que temos que converter para String de qualquer outro tipo de dados. C-sharp torna isso muito fácil porque existe um método em todas as variáveis com o qual você interagirá com a chamada string. É tão legal que mesmo o próprio numeral que você teria digitado, você poderia ver um ponto para encadear no final dele. Então, apenas digitando esse numeral eu e depois colocando pontos. Então, string, você realmente o converteria em string para você. Qualquer variável, seja um booleano, um número, um duplo, seja lá o que for, você também pode convertê-la em uma string. Mas lembre-se de que quando é uma string, o sinal de mais funcionará completamente diferente de como funcionaria se fosse um número, certo? Então lembre-se que sinais de mais quando estamos lidando com a concatenação de cordas. Enquanto sinais de mais quando você está lidando com matemática, realmente farão contas reais e adicionarão os números. Portanto, tenha muito cuidado e consciente disso. Mas para a norma foi pausar com manipulações de cordas. Você pode passar, experimentar, ver quais outros métodos existem. Outros legais, como você, podem ver superior e inferior, você pode fazer junções. Você pode criar. Se você acabou de escrever string1, pressione pontos, você pode pular e ver os outros métodos disponíveis para você na própria variável. Você pode nos deixar dizer fullname e eu vejo. Na verdade, posso ver dois superiores se quisesse que tudo fosse maiúsculo. Eu poderia realmente dizer para baixo, se eu quisesse que tudo fosse teclas mais baixas. Existem vários métodos que existem para ajudá-lo a manipular uma string sem muito trabalho envolvido. Então eu fui deixá-lo para experimentar e explorar. 18. Funções de manipulação DateTime: Tudo bem pessoal, bem-vindos de volta para nossas próprias ferramentas. Então Gondwana era tudo sobre cordas. Eu pretendia fazer as duas strings MD time, mas você verá que as atividades para atravessar para outra lição. Então está tudo bem. Podemos alcançar aqui. Então, ainda não criei o projeto. Vá em frente e faça isso. Você pode acompanhar comigo ou fazer uma pausa e fazer isso sozinho. Então, é claro que você precisa criar nosso novo projeto. Vamos com manipulações de data e hora. Em seguida, apertamos Criar. Então, agora que temos nosso novo projeto, vamos ver quais tarefas existem para manipulação de dados. Aqui estão as tarefas pelas quais vamos passar. Muito parecido com a manipulação de cordas e a manipulação de dados é muito profunda, muito extensa e muito situacional. Então, há certas coisas que você quer dizer que nunca acabam fazendo no futuro previsível. E há certas coisas que você pode querer fazer que eu não vou necessariamente vistoso neste tempo-espaço. Vamos apenas trabalhar com isso. Vou variar em algumas dessas coisas. Podemos mais tempo. Desculpe. Podemos apenas trabalhar com isso e ver a melhor forma que podemos ao sol. Em primeiro lugar, uma data e hora representa um tipo de dados em C-Sharp e parece um tipo de dados primitivo. Então, quando falamos de tipos de dados primitivos, estávamos falando sobre int double stream, a data, hora ou um tipo de dados mais complexo seria uma combinação de tipos de dados diferentes que amplia a funcionalidade um pouco mais. Quando falamos de datas e horas, conversando em barcos, um tipo de dados literalmente chamado de hora. Então damos um nome a ele. Então eu fui chamá-lo. Então, geralmente você quer inicializar isso. E inicializamos isso é dizendo que eu sabia o tempo, entre parênteses abertos e fechados. Então, essa é a maneira como você inicializaria um objeto de data e hora, não variável, qual objeto? Vamos para o reino das aulas. Então note que é meio que esse ciano cerceta. Não tenho certeza de qual cor é essa, qual é a mesma cor que o console é. Portanto, o Console é uma classe. Datetime também é uma classe, e nós faremos string é azul, int char, todos eles são azuis, eles não são da mesma cor. Essas não são aulas. É isso. Então você inicializa uma data e hora vazia. Agora vamos ver como você criaria um. Então vamos dizer que eu queria criar minha data de nascimento. Eu pude ver que uma data, hora ou data de nascimento é igual a um novo objeto de data e hora. E então eu posso realmente passar valores que eu gostaria. Então, se você olhar, verá que você tem várias opções. Aqui está o que eu quero. Posso passar em um ano inteiro, um mês inteiro, inteiro d, o ano em que nasci, digamos que nasci 1980. O mês digamos que eu nasci em dezembro. Esse é o 12º, certo? E então hoje Let's nasceu no dia 35. Então, é claro que não há 35º. Mas isso não vai me dar um erro aqui até que eu tente executá-lo e isso me dê um problema. Então eu fui fazer uma linha de gravação de pontos do console. Estou tentando imprimir a data de nascimento e perceber que posso simplesmente passá-la para a linha certa porque aceita objetos mais complexos também têm os tipos primitivos com os quais temos trabalhado. Meu D OB é que vou usar meu sinal de mais aqui. Se eu tentasse executar isso, deixe-me alterá-lo até as manipulações e tentar executar. Então, uau, estamos vendo que temos essas exceções. Uma exceção é um erro que geralmente ocorre em nosso programa e mata o programa praticamente. Se você estiver usando o Google Chrome ou até mesmo Visual Studio e obtém uma dessas áreas, até o Windows. E você tem aquela tela azul da morte, tudo o que está fazendo é acertar uma exceção. Uma exceção é uma daquelas flechas irreversíveis que o auxiliam não contabilizou. Nesse caso, é dizer que estes não são representáveis na hora de dormir os valores que eu apresentei. Então, sim, a área está boa, o momento está bom, mas isso não está bem. Então, se eu colocá-lo no dia 31 e tentar novamente, então eu deveria pegar esses adultos impressos. Portanto, observe que apenas passando esse objeto datetime é igual a capaz de imprimir o 12º para o 31º e 1980. Isso é o que é minha data de nascimento. Tudo bem. Bom e simples. Agora, e se eu quisesse o carimbo de data/hora atual para poder ver um tempo morto. Vamos chamá-lo de não. Eu queria saber qual é a hora, certo? Não. Então, literalmente, posso ver uma data, hora, pontos nulos que irão para o seu sistema, obtém o carimbo de data/hora como no momento em que o código foi executado. E então isso será armazenado dentro desse objeto chamado nulo. Então a hora é agora, e então eu vou simplesmente imprimir não, Deixe-me tentar esse. Como no momento em que o código foi executado, a hora era a data, era que o tempo era que estou usando é meu tempo no meu sistema. Isso refletirá qual é a hora do sistema, até mesmo o layout do formato de data. Tudo isso é afetado pelas configurações do sistema que você tem quando a escola é executada. Portanto, se você estiver em Normas Britânicas ou quatro meses, pode parecer um pouco diferente em termos de Uso de Montfort em vez de mês, dia, ano. E se você não estiver usando o tempo armado, então seu tempo será diferente. Essas são coisas a serem conscientes quando se trata de imprimir sua data-hora. Saiba o que se quiséssemos criar a DateTime a partir de uma string. Então, para fazer isso, significa que eu teria esse tipo de representação de cordas que acabou de ser impresso. E estou usando isso para fazer engenharia. Eu fiz valor temporal. Então eu posso ver data e hora e direi que a string é igual a. Posso fazer uma análise de data e hora. Assim como cordas. Existem vários métodos envolvidos. Mas ele quer a corda. O que é, qual é o fluxo que se supõe à parte? Então, e se eu dissesse uma barra 31 barra 2221? Isso deve ser 31 de janeiro de 2021. Isso vê o que eu quero partes de outros parâmetros que você adicionaria como parâmetros para que ela saiba essa cultura na íntegra. Deixe-me ver se me lembro de como digitar isso na cultura variante. Portanto, existem diferentes parâmetros que você coloca para informá-lo. Não seja específico para a cultura. Aqui. Acabei de adicionar essa declaração usando para este. Na verdade, é uma classe estática como console ou LN. Então eu estou dizendo cultura na íntegra, em muito inculto. Então diz que a cultura é, é independente, é independente da cultura porque, como eu disse, o formato às vezes diferirá com base na sua cultura. Então, apenas fazendo isso, podemos torná-lo independência. Não, fiz algo e não expliquei enquanto digitava toda a sua cultura na íntegra. Udot viu a linha vermelha, que significa que estou tentando usar um método que vem de uma biblioteca que não está incluída. Lembre-se que temos que adicionar estão usando instruções sempre que quisermos usar métodos de, de bibliotecas que ainda não estão incluídas. Então eu tive que fazer pontos de controle. E a sugestão era que eu posso adicionar a instrução using. Então, ao fazer isso, ele automaticamente foi adiante e adicionou-o para mim. Sei que posso acessar esse método. Só estou mostrando mais uma vez variáveis diferentes. Vou ver a hora. A escritura da string é que vou imprimir o ID da string. Vamos dar uma olhada nesse. Tudo bem, então, fazendo isso realmente e verdadeiramente, ele o analisou durante o dia e, em seguida, ele realmente apenas repostá-lo de volta em uma string. Tudo bem, então isso é apenas um exemplo de como você pode converter da string real para aquela data e hora real. Datetime é um tipo de dados real que você precisa estar atento quando você está lidando especialmente com um banco de dados. Como você aceitaria a entrada de string de seus usuários se eles a inserissem através do console, vamos armazená-la em um banco de dados. Você teria que tê-lo como data e hora. Então essa é uma das outras razões pelas quais você gostaria de ter cuidado. Agora, e se quiséssemos ver o que é uma hora da hora atual, certo? Então eu já sei. E se eu quisesse adicionar uma hora para ver que horas seriam? Sempre posso dizer que não há pontos. Você tem opções para adicionar horas. Você pode IDs, você pode adicionar milissegundos, minutos, meses. Ele pode adicionar quase qualquer construção de tempo. Variável de data e hora existente. Então não consigo ver nenhum OA estranho. Então, se eu só quisesse ver daqui a uma hora é uma hora de null is, então não posso ver nenhum ponto adicionar horas de ameixa disse Não. Já subiu no topo aqui. Ele sabe que horas são, não. E então ele vai calcular, bem, o que é daqui a uma hora? Eu pude ver que um d de AGORA não é dias de adição de pontos. Mais uma vez, exploração. Então, vamos ver o que isso parece. Quando conseguimos isso, vemos que nulo é 1241900 horas. Uma hora do nó seria 20. $100,1 dia será o 25º com o mesmo carimbo de data/hora que era. Não. Tudo bem, então todos esses cálculos são trazidos para nós cortesia desses métodos. Agora, o próximo na programação é tempo morto de ticks. Mas acho que fui invertê-lo e vamos apenas dizer carrapatos desde o momento que eu tomar. Ou ticks basicamente representam o número de ticks de relógio desde o tempo, digamos calculados como neste momento, se eu disser digamos calculados como neste momento, pontos de console, certo. Um numeral de tempo, praticamente se você fosse dar um valor numeral na época, ele estaria na forma de Dijkstra é que eu poderia dizer que não há ticks de ponto. Ele obtém o número de coisas que representam a data e a hora de folga. Essa instância, neste momento, houve tantos ticks às horas desde que começamos a calcular o tempo. Isso é praticamente o que carrapatos seriam. Antes de testar isso leva, vamos apenas entrar em dados e tempo apenas. Então data somente e hora apenas nossas novas construções e estanho C-afiado onde há momentos em que você não desejaria necessariamente o tempo nele. Porque aqui, o nascimento não seria necessariamente sobre o tempo. As datas de nascimento são apenas o ano, o mês. A direita. Claro, você pode adicionar os segundos, minutos e horas, se quiser. Mas não queremos necessariamente fazer isso porque você vê aqui se eu continuar digitando, você vai começar a ver que ele não fez hora em minutos e segundos. Então é quando você fala sobre data e hora. Isso seria na verdade os anos 80, o 12 de 31 de dezembro de 1988, horas de um minuto e 35 segundos. Tende a ser tão preciso. Tudo bem. Na verdade, pude ver que uma data é igual à data de nascimento. Digamos que D, é só fora do nascimento. Só para que possamos como algumas características distintivas, data de nascimento. E então vou pegar um objeto de data e hora existente, essa data de nascimento. E C, quero apenas o D. Eu vejo, de fato, isso me traria de volta exatamente isso na verdade. Na verdade, não, data apenas pontos a partir da data-hora. Lá vamos nós. Peço desculpas. Esta é uma construção bastante nova, então me perdoe. Tudo bem. Então dot ds realmente lhe daria sobre as datas, certo? Deixe-me, deixe-me colocar esse aqui em cima. Na verdade, apenas cortaria os zeros que teriam sido vistos após toda a data e hora aqui. Tudo bem. Então isso deve me dar apenas sobre a ação. Então a data única construção vai me devolver d Não se importa no momento. Mas se eu tiver uma data e hora, posso dizer que me dê a data somente a partir da data e hora e lhe dê esse valor de data e hora. De forma semelhante, só consigo ver o tempo. Deixe-me começar a derramar bem apenas na hora. E eu só vou dizer tempo. Só o tempo é igual a, e eu posso fazer esse tempo somente a partir do momento. Vamos experimentá-lo sem motivo, sei que ele terá um tempo real anexado a ele, dado que é um carimbo de data/hora. Então, vamos tentar todos esses juntos. Aqui. Estou vendo que, embora eu tenha dito que ainda vai me devolver o deet ainda acima do componente de tempo à direita. O que não fizemos um sprint estes, então deixe-me adicionar apenas o sprint. Deixe-me apenas adicioná-los rapidamente. E isso será d dt de nascimento. E então misture este. Então deixe-me consertar isso um pouco. Vamos dizer que o tempo só é tempo. Depois de colocar no console. Vamos tentar isso novamente. Não. Mais uma vez, mesmo que eu tenha dito datas de nascimento, dê-me a data e hora completa e em seguida, dê-me o ponto de data e hora d t. Você pode ver que os carimbos de hora ainda estão tentando ser adicionados. Passou pelo carimbo de data/hora, passou por adicionar uma hora, e esses são os carrapatos. Então, como neste momento, seja qual for esse número, se você quiser tentar chamá-lo, você pode me informar qual é esse valor, qual é esse o número de ticks que eu passei desde começamos a calcular o tempo. Em seguida, a data somente aqui representa apenas a data. Então, esta é literalmente a data de nascimento, não a data, a hora do nascimento. Tudo bem. E então, se eu quisesse apenas um tempo, é a hora de que levou o carimbo de data/hora e me dê apenas a hora, não a data e a hora. Portanto, essas são algumas maneiras pelas quais você pode manipular datas e horas d ou vantagem. Posso garantir que, uma vez que você estiver colocando uma funcionalidade que tem que lidar com Dietz e carimbos de data/hora e coisas particulares em determinados pontos no tempo, você definitivamente terá que se tornar familiarizado com algumas dessas funções. Mais uma vez, não consigo ver potencialmente cada um deles. Há coisas que você precisa explorar, como experimentar. Eles também são coisas como retornar o ano. E se eu quisesse saber em que dia eu nasci? Eu poderia dizer data de nascimento ponto d fora da semana. Então isso vai me devolver se for 1234567, dia da semana, ele lhes dará o tempo de folga D que me dará o dia do ano, certo? Portanto, há 365 ou 366 dias no ano. Que dia do ano foi esse? Se eu disser me dê apenas sobre o D, é o número inteiro do D, certo? Então, dia de folga, o dia é diferente da semana de folga porque D é óbvio. Sabemos que é o 31º, no entanto, o dia da semana que foi o 31º em 19981980, não sabemos necessariamente que d de fraco é outra construção. Você tem outras coisas como eu acabei de adicioná-las. Então, a semana de folga, dia do seu tempo fora do carrapato, o número de carrapatos. Quando eu nasci, e do tipo, certo? Então, se eu apenas mais uma execução só para ver o que é impresso para todos esses valores em relação à data de nascimento. Você vê isso? Eu nasci. Sei que está lá. Foi o 366º dia do ano, então esse foi um ano bissexto. Então você pode ter isso em mente ao tentar calcular anos bissextos. Você pode ver o tempo fora do, bem, eu não especifiquei uma hora, então a hora do dia realmente me daria algo semelhante ao tempo apenas. Isso foi um número de carrapatos, certo? Então, se eu fizesse algumas contas e dissesse esse número de carrapatos, esse número de carrapatos, eu realmente obteria o número de carrapatos entre as duas vezes NÃO e a data de nascimento. O tipo aqui está especificado. Então, tipo de, na verdade, se é UTC ou ESD ou algum horário local, praticamente não fiz nenhum local específico para assistir carimbo de data/hora ou fuso horário. Isso foi tão gentil não especificado. Então essas são algumas ideias quando ele vem para a manipulação. 19. Manejo de exceção: Ei pessoal, bem-vindos de volta. Nesta lição, vamos analisar o tratamento de exceções. Analisamos o tratamento de exceções anteriormente. Encontramos uma exceção mais cedo quando estávamos olhando para nossos objetos de data e hora. E se você se lembrar, quando criamos um único desses objetos, colocamos um valor inválido. E então o programa nos deu um erro. Ele nos deu um bloco de texto que tenho certeza que se eu não o lesse e explicasse para você, não teria feito mais sentido. Isso geralmente é o que é uma exceção. Uma exceção é um erro fatal que ocorreria em seu programa. Geralmente dá um erro muito desagradável. E não é necessariamente algo que você gostaria que seus usuários vissem. Então, basta voltar em suas memórias e pensar sempre que você vê o Google Chrome falhando com uma mensagem que não faz sentido. Ou essa tela azul da morte em você está no Windows ou algum erro que você encontra em um aplicativo onde esse aplicativo e mostra um erro. E então, quando você tenta navegar para longe, o aplicativo pode falhar. Também há momentos que esse aplicativo não falha, mas ele entra em um estado mais de erro, permitindo que você continue sua operação. Não, isso é o que chamamos de tratamento de exceções. O erro em si é uma exceção. Então, a forma como ele é tratado é o que chamamos de manuseio. No C-Sharp e na maioria dos outros idiomas, tratamento de exceções é feito por meio do que chamaremos de bloco try-catch. Uma tentativa ou a parte da viagem do try-catch basicamente tentará a operação. Tudo bem, então é bom tentar completar alguma coisa, concluir uma tarefa. Eles capturam a seção de todo esse bloco, detectarão qualquer erro fatal ou exceção que possa ocorrer ao tentar a operação. Então, geralmente você verá, ou às vezes você verá outro bloco chamado Finalmente, o que significa se, seja o trie ou o, a captura foi bem-sucedida. Faça isso no final de tentar, talvez pegar, fazer isso. Se você tentar e for pego, então ainda faça isso. Isso é praticamente o que esse achado que ele faz. E, em seguida, outra palavra-chave que você costuma ver no tratamento de exceções é verdadeira, o que significa a execução do programa com o erro. Tudo bem, vamos passar por um pequeno exercício aqui onde vamos explorar em que circunstâncias pode haver erros. Watts que podemos fazer quando há erros e por que gostaríamos de fazer essas coisas, certo? Então eu comecei com um aplicativo muito simples. Vou reutilizar uma dessas operações que temos antes. Isso não pegou emprestado algum código de um de nossos exemplos anteriores. Você pode simplesmente clicar em Pausar e replicar isso, mas estou apenas dizendo insira o primeiro número, armazenando-o em números núm 1 segundo durante o genoma para acertar a pausa replicada. Não, de um modo geral, você gostaria de fazer alguma forma de operação aqui. Você gostaria de dizer, vamos, por exemplo, dizer que o quociente num1 e num2 geralmente será num1 dividido por num2. Matemática simples, num um dividido por número 2. Então você gostaria de escrever que o quociente é qualquer que seja esse valor, os resultados são. Então vou concatenar isso. Tudo bem? Então esse é um exemplo matemático típico. Fui. Em primeiro lugar, execute esta operação. E já criei o projeto. Claro, como você pode ver, eu chamo isso de tratamento de exceção. exceções. Vamos correr para o primeiro número que é dez dividido por um. O resultado é dez. Certo, direto. Vamos tentar novamente. Se eu fizer a mesma coisa com 100. Meu olhar para isso. No Visual Studio. Estou recebendo essa flecha amarela. Ninguém já passou por depuração. Sabemos que essa seta amarela geralmente indica em qual linha você está, especialmente depois de colocar nosso ponto de interrupção para saber, tenho certeza de que você não codificou nosso ponto de interrupção para saber, tenho certeza de que você não codificou essa seta amarela surgindo de sua própria vontade. Além disso, você não teria visto este X vermelho com a mensagem exceções em não manipulado. Então aqui está dizendo que temos um sistema.Out divide por 0, exceção, tentou dividir por 0. Portanto, há certas coisas que não podem parar de dividir por 0 é uma delas. E o sistema, sendo o sistema seu computador, sendo computadores em geral, não pode lidar com uma operação em que você está pedindo que ele divida outro número por 0. Então, isso é o que causa uma exceção. E então esse tipo de exceção é o que travaria seu programa porque você vê que ele simplesmente parou de funcionar. E agora estou recebendo esse erro desagradável no console dizendo exceção não tratada, então isso significa realmente, quero dizer, provavelmente não significa nada para você como iniciante. E tudo bem. Já vi o suficiente disso ao longo da minha carreira para entender o que é, vendo. Qual o ponto é que você não gostaria de exibir esse bloco de texto ou qualquer coisa aqui para o nosso usuário porque isso não faz sentido para o usuário. Então imagine como você se sente quando vê Google Chrome ou qualquer aplicativo que eu continue usando o Chrome porque Sita permite noivo com o que eles lidam com isso bem, mas às vezes mostram alguns erros obscuros . Acho que eles têm se saído muito melhor com isso nos últimos tempos. Mas às vezes você vê esse erro obscuro. Portanto, essas são as exceções que acontecem dentro do aplicativo. E é por isso que os aplicativos tendem a dizer, você quer fazer esse programa de feedback onde quando eles encontram uma exceção, você realmente envia a mensagem de volta para eles. Então eles recebem esse tipo de mensagem em seu e-mail dizendo que isso aconteceu com um usuário, é por isso que você recebe atualizações. Nenhuma aplicação é perfeita. Todos eles têm flechas em algum lugar de alguma forma. É por isso que você continua recebendo atualizações porque elas entrariam no código e corrigiam isso. Então, vamos consertar este. Essa é uma exceção que não contabilizamos. Vamos consertá-lo. Então podemos envolver isso dentro de um try-catch. Como eu disse, o trie representa a operação que você está tentando. Posso dizer tente e apenas escrevendo tendência pressionando Tab duas vezes, ele gerará todo esse bloco try-catch para mim, esse bloco é o que tentaríamos. Quero dizer, não poderia ser tantas linhas quanto você precisa é a operação que você é treinado. Porque às vezes você tem 235 etapas em uma operação e qualquer uma dessas etapas pode lançar uma exceção. Então, quando lançamos uma exceção, por exemplo, ou operação de divisão seria o que estamos tentando. Se isso lançar uma exceção , temos esse bloco catch. Observe que diz exceção catch. Exceção é o tipo de dados geral usado para identificar quando ocorreu um erro. São todas apenas exceções mesmo que você tenha outras específicas. Eles estão todos na base de exceções. Você pega a exceção. E então você pode realmente armazenar essa exceção em vez de uma variável ou um objeto. Assim, podemos dar a ele um objeto II ou III ovos ou chamá-lo de exceção com todas as minúsculas que fui deixá-lo como lei EX. Então, basicamente, estamos dizendo tente esta operação, pegue qualquer exceção ou erro e armazenamos a exceção de deslocamento de detalhes ou erro dentro dessa variável chamada EAX. Então você notará que você também tem essa palavra-chave chamada throw. Throwable é o que realmente mata o programa. Então, se eu fosse remover o arremesso, você continuaria a executar. Então, quando tentamos e ele pega a exceção, se eu não passar. Então aqui é onde eu provavelmente enviaria um e-mail ou escreveria em um log em algum lugar onde ainda lá. Mas estou apenas dando as ideias porque usamos aplicativos todos os dias. Essas são coisas que vemos alguma coisa lá. Mas só estou mostrando que está realmente chegando a esses pequenos pedaços de código. Aqui é onde esse aplicativo mostrará a caixa de diálogo e dirá, ei, você sabe, nós procuramos você, encontramos um erro. Gostaria de enviar um relatório para nossos desenvolvedores? Você diz sim, então o que eles pegaram mostrando o diálogo. Se você disser que sim, envie o erro que foi capturado dentro desse objeto. Isso é tudo o que está acontecendo. Em seguida, no final da operação seria impressa ou se não podemos imprimir porque essa variável existe dentro desse escopo. Este é um bom lugar para falar sobre escopo. Se você definir uma variável entre duas chaves, essa variável só permanecerá enquanto ela atingir essa linha e essa chave termina. Isso mergulhe um pouco. É por isso que não consigo imprimir quociente fora do try catch porque essa variável só existe dentro desse bloco try. Então eu posso fazer qualquer coisa que eu queira cautelar dentro daqui. Como se eu pudesse imprimi-lo dentro da bandeja. Uma vez que eu não consigo interagir com ele, quer tentar está pronto. É por isso que não posso imprimir fora do farol da bandeja tentando fazer inicialmente. Essas são coisas que devem estar atentas. Vamos continuar agora, se eu disser jogar, então acabaria com o mesmo tipo de situação em que acabou de terminar a execução por completo. Você não quer necessariamente jogar, a menos que tenha certeza absoluta de que esse é o efeito desejado. Se você quiser matar o programa, quando essas áreas específicas estiverem em concerto, então você quer jogar. Então, vamos ver que dividir por 0 não é o tipo de erro que você deseja lançar. No entanto, se você pegar qualquer outro tipo de exceção e quiser lançar, você deseja reações diferentes a diferentes tipos de exceções. Bem, você pode realmente ter várias capturas. Você pode pegar um específico, digamos dividido por 0 exceção. E então você pode decidir quando é uma exceção de divisão por 0. Quero ver uma operação ilegal. Apenas diga operação ilegal. E então eu poderia realmente colocar essa mensagem de exceção dentro de seu próprio objeto também. Então, vamos chamá-lo de EX. Então, se você pegar essa exceção, estou armazenando ela não acionou EAX dentro desse bloco catch. E vou imprimir a mensagem que veio com exceções para que eu possa ver pontos EX. Em seguida, vemos a mensagem. Quando eu fizer isso por ponto e vírgula no final, vou pegar esse tipo de exceção. Caso contrário, qualquer outro tipo de exceção talvez envie um e-mail para a equipe de desenvolvimento e jogue matar o programa porque eu não estou preparado para continuar depois disso. Tudo bem? E então eu vou apenas dizer finalmente. Então, no bloco finalmente, podemos apenas Console.WriteLine. Só vou dizer que este é o bloco finalmente. Então isso é ruim. Vamos tentar isso novamente. Este é o bloco finalmente. Lá vamos nós. Então, o que queríamos fazer no final disso é se fomos bem-sucedidos ou chamamos de divisão por 0. Queremos salvar isso como o bloco finalmente. Ou vamos apenas dizer que este é o fim do programa. Fora do programa. Vamos experimentá-lo. Um tratamento de exceção, execute-o. E depois vou fazer uma divisão adequada. Então, vou fazer 105 e depois recebo dois. E você vê que este é o fim do programa. Então tentou, não pegou exceções e depois fez o finalmente. Tudo bem, então vamos tentar isso mais uma vez. E desta vez vou tentar obter essa divisão por 0 exceção. Vamos ver que ele ainda foi saltado para o finalmente e continuar com a exceção. Então, se eu disser dez divididos por 0, dirá operação ilegal dois pontos. Essa é minha string estática que eu digitei. Tudo bem. E então a mensagem de ponto EX seria a tentativa de dividir por 0. Assim, todos os erros que teríamos visto anteriormente quando ele lançaria a exceção teria sido uma série de partes diferentes de informações, todas envolvidas neste objeto ou variável chamada EAX, que incorpora toda a exceção e tudo o que deu errado. Então, um desenvolvedor gostaria de ver isso porque você veria todo o escopo do erro e melhor seria capaz de corrigi-lo. No entanto, de um modo geral, você receberá uma boa mensagem que é mais legível por humanos e amigável para os seres humanos, que é o que você gostaria de apresentar ao usuário, porque então o usuário teria uma ideia que tudo bem, o que eu fiz de errado. No entanto, eles não estão recebendo o shebang completo no número da linha e todos os tipos de detalhes sobre o código que a propriedade não precisa que nosso não deveria estar vendo, certo? Além disso, você não quer necessariamente usuários. Você não sabe quem está usando seu aplicativo. Você não quer que eles saibam necessariamente que essa linha número 20 está fazendo isso, etc. Portanto, essas são maneiras que você pode usar para lidar com possíveis erros em seu código. Porque não somos perfeitos. Às vezes, você escreve código e não percebemos que estamos fazendo coisas que podem falhar, especialmente quando você começa a escrever aplicativos maiores que têm outras dependências que ícone um banco de dados ou na conexão com a Internet. Se você tentar se conectar à Internet, a Internet não está ligada, então você terá que pegar a exceção e lidar com ela de uma maneira que o usuário não sinta seu programa não está escrito corretamente. 20. Arrays: Bem vindos de volta pessoal. Nesta lição, veremos matrizes. Assim, você pode começar criando o projeto que precisamos. Eu chamo isso de arrays e então podemos começar a trabalhar. Eu adicionei alguns comentários apenas servem como guias o que discutiremos nesta lição. Portanto, uma matriz representa uma coleção de valores. Então, tivemos uma pequena exposição a um array mais cedo quando estávamos analisando nossas operações de manipulação de cordas. E se você se lembrar quando eu estava mostrando a vocês a divisão, lá vamos nós. Moodle viu esses aparelhos quadrados ou colchetes. E eu disse que isso significava que era uma coleção de blocos de cordas e tivemos que navegar por ele e voltagem neste momento porque discutiríamos isso. Bem, chegou a hora. Então deixe-me fechar todas as guias que não são absolutamente necessárias. E apenas ao clicar no meio na guia, ela fechará. Então, não sei se mostrei a vocês antes de ninguém. Se você tiver uma guia, abra nosso bloco de código aberto e você deseja fechá-lo. Você pode clicar na semana XES e também clicar no meio da guia, ela será fechada. Vamos começar com nossa definição de um array. Uma matriz é uma coleção de valores. Por exemplo, se quiséssemos coletar, ver as notas ou cinco alunos, então normalmente teríamos que acabar vendo Edens verde. Um é igual e , em seguida, temos que fazer no segundo grau e no grau 345, etc. Isso não é muito eficiente. E se a aula for para dez, então temos que voltar ao nosso programa e fazer dez novamente. O ponto é que não é muito eficiente quando temos que ter variáveis diferentes como essa para armazenar esses valores. Então, o que acontece é que uma matriz seria uma coleção de valores em direção a um objetivo. Se eu souber que quero notas, posso criar um tipo de coleção para notas. E então o que falamos, tamanho fixo, significa que eu sei exatamente quantas grades eu quero. Porque se estiver em todas as cinco, então eu quero uma coleção de cinco grades. Para definir esse tipo de construção. Eu primeiro defenderia o tipo de dados desta coleção. E, de um modo geral, você pode usar qualquer tipo de dados se você quisesse uma coleção de nomes, seria uma matriz de string, assim como vimos, temos a string em uma manipulação de string. Ouça. Pode ser uma coleção dupla de salários, etc. Então as notas são apenas um exemplo, int, e então você usa suas chaves quadradas, então você dá um nome a ele. Então esta é minha colega, Norma Ari. Estou chamando grades. E então eu posso ver z igual a new int. E, em seguida, usando chaves quadradas, eu diria que valor eu daria a você C Visual Studio sugerindo Maxwell, isso não é o que eu quero. Eu não quero o máximo de colegas porque isso pode travar seu computador. Mas eu disse que queria cinco, então vou colocar cinco ponto-e-vírgula. Isso significa que ele vai entrar na memória e reservar cinco espaços para mim. Tudo bem, cinco endereços de espaço serão reservados na memória, todos chamados de grades. E então o que acontecerá é que cada um teria um número associado a eles. Como o espaço das grades, um espaço de grade também. Mas então a numeração para RAs geralmente começa a partir de 0. Então lembre-se da Guerra Mundial durante o for-loop, dissemos que começamos de 0 e subindo para um a menos do que o número de saída. Portanto, se o tamanho da matriz for cinco, a coisa do cone será 0. Então 1234. E é isso porque isso é 12345 espécies na memória. Tudo bem, então essa é uma parte das artérias que pode ser confusa. Mas quando você se acostumar a entender, mais uma vez, o tamanho é cinco, estamos reservando espécies de fase. Mas cada um terá um endereço de 0 até um menor que esse número. Então, se eu ver isso como uma equação matemática, se n for o tamanho da matriz, então sua matriz tem endereços de 0, Tooele menos um. Sou eu tentando soar como um gênio da matemática ali mesmo. Tudo bem. Portanto, cinco endereços espaciais lhe dariam de 0 a n menos um, que é quatro. É isso para nossos ys. Se eu dissesse dez, então seria 010 menos um. Então, 0 a nove lhe dariam os endereços. Agora, a coisa com isso é que eu tenho que cobrir e mudar o valor aqui. É muito fácil. Quero dizer, se eu quisesse maior, faça 15. Se eu quiser menor, faça cinco. Seja qual for. Chega de espécies que eu solicito aqui. Quando o programa for executado, ele reservará muitos para mim na memória. Agora vamos falar sobre adicionar valores ao IRI. Então eu não disse que você teria assinantes são o que você chama de assinantes. Os assinantes representam esses números que representam os endereços. Se eu quisesse adicionar a primeira grade, vou ter que dizer que é chamado de matriz pelo nome. Em seguida, adicione meus colchetes e, em seguida, chame o endereço por valor. Portanto, a primeira série seria 0, que é o primeiro endereço reservado para mim. E então eu daria o valor da grade. Então eu posso fazer isso de novo. Upgrades para um seriam dois, etc., etc. Então, o Visual Studio está apenas fazendo sugestões. Esses não são necessariamente os valores porque, obviamente, estes são ótimos. Então talvez você tenha pontuado 25, talvez os alunos três tenham ao quadrado 38, e talvez o aluno quatro tenha pontuado 45. Observe que este é o Estudante quatro porque este é um, isso é dois, são três, e então são quatro. Mesmo que os endereços sejam 0123 e acho que temos esgotado até 12, não há direito de entrar nas notas para todos os alunos. Eu acabaria com filas, podemos deixar esse aluno 12345, todos os cinco alunos e eles terão suas notas. Mas posso ver que isso é um pouco tedioso. Se você acha que isso é tedioso, eu concordo, porque se eu aumentar isso para 25 e você tivesse que escrever 25 linhas como esta, não seria muito eficiente. Além disso, vamos dar uma olhada no que aconteceria se eu adicionasse a quinta série. Então, se eu dissesse que as grades subscreveram cinco ou sexta série, eu disse que você tem 60 anos. Se eu tentei executar este aplicativo para que você possa mudar para áreas enquanto seu projeto de inicialização aperta seu botão e, em seguida, olhar para a exceção não tratada que acabamos de passar, exceto no manuseio. Agora estou recebendo uma exceção não tratada. E esse tipo de exceção é exceção System.out index fora do intervalo. Preciso ver que o índice estava fora dos ossos da matriz. Então isso é basicamente me dizer que você tem cinco espécies. Você me pediu cinco espécies. Por que você está tentando colocar um sexto valor em algo que só tem espaço para cinco, esse índice fora da matriz de ossos. Basicamente, vendo que você está tentando acessar um espaço que não existe dentro dos ossos da matriz. Tudo bem, então é por isso que é muito importante apreciar que os números vão de 0 a n menos um. Se n for o tamanho da matriz, isso é muito ilegal. Saiba que outra maneira que eu poderia ter atribuído esses valores estaria em uma linha como esta. Se eu dissesse que as grades seriam iguais a um novo int. E, em seguida, forneceu chaves encaracoladas e, em seguida, procedeu a colocar esses valores. Então, um mod 2538, **** 4554. E isso será um bom forro para atribuir valores. Então, eu não precisaria de seis linhas. Eu poderia ter feito tudo em uma linha porque, é claro, só tenho que inicializar a matriz aqui. Vamos apenas comentar isso apenas fingir que eu poderia ter inicializado para ter esse número de espécies. Não. Digamos que não sabemos que as notas de frentes estavam escrevendo um aplicativo, que provavelmente será a situação em que escrever um aplicativo para permitir que os usuários nos forneçam essas grades. Então, eu quero dizer, normalmente você não gostaria, como pessoa de TI, escrever um programa e, em seguida, até que você use todos esses, venha me dizer quais são os graus eu possa inseri-los para você. Você não quer dar a eles o poder entrar nas grades, alguém para entrar. Então vamos olhar para o todo. Podemos escrever um programa que permita que o usuário passe e insira cada um deles. Então, vamos usar loops de forma mais prática. Não, não apenas um exemplo de maneira. Então, nós realmente fizemos algo assim em mais uma vez, nosso exercício de manipulação de cordas, onde tínhamos o IRI e você queria percorrer nossa matriz. Lembra disso? Queria fazer um loop através da matriz. Podemos fazer algo muito parecido com isso. Então eu vou ver para o top tub int I, lembre-se que eu é apenas meu balcão é igual a 0. Então, aqui está um ponto muito importante novamente. Por que iniciamos o cone para 0, porque nossa matriz começará em 0. À medida que consideramos a relevância. O próximo. É que você sempre pode ver qualquer número. Mas então, codificando o número como este, você não sabe se amanhã isso vai precisar de 15 ou 55. Então, quando você codificar o número que você precisa lembrar que toda vez que você pode acabar alterando o tamanho da matriz, você tem que alterar o loop for-, que você pode esquecer. Somos todos humanos. É por isso que provavelmente gostaríamos usar o comprimento do ponto da matriz, seja qual for o comprimento que acabe sendo. Só teremos esse comprimento durante o tempo de execução. E sabemos que vamos para N menos um desse comprimento. E então temos nosso incrementador. Saiba depois que escrevermos todo esse código, solicitaremos que o usuário insira as notas. Então eu fui dizer readline de ponto do console. Cada vez que o loop circula, quero solicitar ou os usuários inserirem ganância. E eu vou apenas fazer a gravação de pontos do console para que não, não queria linha. E então posso dizer grades com o subscrito de qualquer valor de eu. Tudo bem, então deixe isso mergulhar um pouco. Lembre-se que inicialmente eu poderia dizer me dê esse endereço exato e eu posso colocar o número. Tudo bem. Não, quero que seja um pouco mais dinâmico. Eu não quero codificá-lo. Quero que seja dinâmico. Então eu já sei que esse loop está começando a partir de 0 e ele vai adicionar menos um de qualquer coisa. Por muito grande que seja o Ari. Então eu posso confiar como um, como um contador para ir de 0 até o final da matriz, um por um, apenas indo para 0, depois um, depois dois, depois três, depois quatro. Vimos isso com os trabalhos for-loop. Esse é o contador nas obras for-loop. Aqui. Eu só vou dizer, me dê grades para o subscrito de I. Certo? Nisso eu gostaria de armazenar, não quero dizer converter para int 32 e obter o valor do console do usuário. Linha de leitura de pontos do console. Estou vendo cada vez que você passa por cada subscrito, vá e me obtenha o valor da entrada do usuário, convertê-lo em um int e armazenamento em vez do meu array. Parece simples e direto o suficiente, não é? Vamos ver como isso funcionaria. Então, quando eu executo e pulo para o meu console, você vê aqui que ele está pausando. Só está esperando que eu entre na grade. Portanto, isso estaria inserindo a grade em notas subscritas 0, já que é a primeira execução. E na primeira série que tive foi uma olhada no que acontece quando pressiono Enter em loop. Ele foi para a ferramenta, foi até ela incrementou o contador. Sei que está no segundo espaço subscrito aguardando esse valor da grade. Então, isso será 2538 e depois 45 e depois 54. E então olhe lá, ele pediu era 001234 espécies. O IRI, se eu aumentar isso ainda 150 até um a um a menos do que o espaço da íris. Bom e simples. Saiba que coletamos os valores. Vamos olhar para espera, apresentá-los de volta ao usuário. Então eu estou supondo, espero que você perceba agora que a maneira mais fácil de atravessar uma matriz é usar um loop for. Então, vou colocar mais impressão em torno desses exercícios. Então, insira todas as grades. Isso é apenas o aquecimento para ver onde entrar em todas as grades. E então este verá que as notas que você inseriu são as notas que você inseriu, se você inseriu. Então vamos imprimi-los abaixo. Mais uma vez, avançando para o loop FOR, apenas para o tablet superior , gerou esse stub. Vamos seguir o comprimento da matriz. Então, comprimento do ponto do nome da matriz. E então vamos ver pontos de console, certo? Vamos simplesmente imprimir grades. O subscrito de I. Um vai preenchê-lo em um só vai regurgitá-lo para a tela. Este é um rato pousa. Nós os veremos um por um. Então deixe-me testar esse velho com você. Vemos a grade Inter. Vou colocar alguns valores de grade aleatórios. Então, depois de entrar neles, ele puxa. Os Estados Unidos concordam que você inseriu nosso 1020 para enviar o mesmo pedido que eu os inseri. Este é o mesmo pedido. Eles são impressos porque é uma coleção estruturada. Ele sabe o que foi primeiro, o que estava doente, o que era o terceiro. Se eu quisesse imprimir um específico. Eu poderia facilmente dizer linha de gravação de pontos do console e notas C com um subscrito de C. Three. Isso me dará os quartos elementos, não importa o que aconteça, ele sempre será o quarto elemento, porque é assim que posso acessá-lo facilmente se eu executar este aplicativo novamente, não imprimiria todos os degrados. Sim, você imprimirá a primeira grade para entrar e, em seguida, ela imprimirá o hit Enter da quarta série, depois o segundo grader Enter e ainda a quarta série. Porque em vez de ser dinâmico com o endereço, estou sempre olhando para o endereço número três. Tudo bem, então é assim que as matrizes funcionam. Então, quando passamos para matrizes de tamanho variável, Não, é quando estamos falando de uma situação em que você pode não saber necessariamente quantas grades devem ser inseridas. Então eu também posso definir uma artéria do tamanho local. Vamos começar dando a ele um valor padrão. Então, se eu disse int grids, Digamos que se eu sei concorda apenas para que possamos mudar o nome. Então, int grades finais em suporte quadrado, grades finais ou você sabe o que? Deixe-me tentar um tipo de dados diferente para que tenhamos alguma cobertura. Vamos tentar uma string desta vez. Portanto, os nomes dos alunos de string são iguais a saber. Lembre-se, se eu disser uma nova matriz de cordas de cinco e bloqueá-la em um tamanho. Tudo bem? A coisa com eles é que eles sempre têm que ter um tamanho. Eles não são dinâmicos. Você tem outros tipos de coleção dinâmicos. O botão não é tão dinâmico. Você sempre tem que dizer o tamanho. Então, mesmo que eu tenha dito tamanho variável, não é realmente um tamanho variável no verdadeiro sentido. Em vez disso, o que aconteceria aqui é que eu teria que ver nova string RE, não lhe dar esse tamanho definido. Você verá que estou chegando lá. A linha representa a maioria de nós tamanho ou um inicializador de matriz. Então, posso usar esse método de inicialização que mostrei aqui. Agora, o que acontece é que ele tomará seu tamanho com base em quais valores são o número de valores que estão sendo colocados. Então eu posso ver um teste, um aluno, etc. Então, neste momento, nomes dos alunos são uma matriz que tem apenas um tamanho 4123. Portanto, pode haver momentos em que você está inicializando uma matriz e você pode estar olhando para a lista, mas você não sabe o número a ser visto. Certo, tenho cinco aqui. Pode ser 20, talvez 21, pode ser 70. Para escrever algum número que você não conseguiria calcular apenas olhando para a lista. Então é aqui que esse tipo de declaração realmente seria útil. Então o que aconteceria é que você simplesmente vá em frente e liste-os assim. E então, quando o programa for executado, ele não saberia disso. Ok, tenho três são 72 espaços aqui. Preciso de 72 espaços na memória para meus nomes de alunos já chamados. Não, no que diz respeito à interação com esse RE, é realmente o mesmo princípio. Será a mesma impressão em toda a costura. Interagindo na inserção de valores. Realmente e verdadeiramente, não vou lançar a repetição de passar por isso. Você já tem esses exemplos de código. Você pode, aqui está um exercício para você ver como você realmente imprimiria os valores nos valores dessa RA e como você os imprimiria. Tudo bem, então espero que você tenha aceitado o desafio. Se não, então aqui está. Se você quisesse tentar e ela fizesse uma pausa, não olhe para o que estou prestes a explicar e experimentar você mesmo. Mas praticamente eu teria apenas replicado isso para vê-lo por loop. Então aqui eu disse insira tudo o que deveria ser nomes. Literalmente, copiei e colei digitar todos os nomes. E então, para cada um, desculpe, para int I é igual a 0. Eu sou menor que o comprimento do ponto dos nomes dos alunos. E então entramos no nome e, em seguida, nomes dos alunos com um subscrito que eu é igual, porque esta é uma string, eu não preciso converter nada. Então eu posso dizer ponto do console, ler, linha. Da mesma forma, quando estou imprimindo, eu só tenho o mesmo tipo de loop for-loop e estou apenas fazendo uma linha de leitura de console nos nomes dos alunos com um I. Então é realmente isso para arrays. Quando voltarmos, veremos listas, que é uma lista dinâmica ou tipo de coleção aqui no C-Sharp. 21. Listas: Tudo bem pessoal. Então, estamos saindo dos calcanhares discutindo áreas e acabei aprender a fazer uma recapitulação rápida para que possamos olhar para trás para o que elas são. Minha definição pessoal de uma matriz é uma coleta contígua e homogênea de dados. Significando contíguo que eles são, eles estão lado a lado. Então você tem RESP S1 são como, Bem, eu estou escrevendo esses tubos ao lado um outro na memória lá. Tudo bem, ao lado um do outro, praticamente. Só descendo a linha assim. Portanto, seus dados são armazenados em uma cadeia como essa, isso é contíguo. E então homogêneo, o que significa que você só pode ter um ícone aqua de tipos de dados para ter uma matriz armazenando strings e números inteiros. Então, ou vai estar dentro ou vai ser strings, etc. Ou seja , o que é uma matriz não é uma das limitações de uma matriz é que ela sempre precisa saber seu tamanho. Portanto, é difícil ser dinâmico em uma instituição onde você não sabe o tamanho antecipadamente. Porque você vai defini-lo com um espaço grande o suficiente para cobrir todos os cenários. Mas então você reservará 255 espécies na memória quando você pode usar apenas dez. Isso não é muito eficiente. Isso é todo o computador ter guerra, sem falha de tempo sob carga pesada de programas por causa de decisões que esses, a alternativa seria que você não sabe o tamanho da frente, mas com base em os dados que você está fornecendo, você pode inferir que ainda não é muito eficiente porque você precisa ter tudo inserido muito eficiente porque você precisa ter tudo inserido desde o início até começar a usá-lo. O que queremos fazer agora é olhar tipo de coleção dinâmica chamado lista, e isso está disponível para nós no C-Sharp. Então, vou pular, criar esses novos projetos, novo console e vou chamar essa lista de coleções. É claro que estamos usando dotnet six e criamos este novo aplicativo de console. Quando falamos de listas, a sintaxe se parecerá com essa. Definimos que queremos listar. E então eu digo que queria pelo menos desligar o tipo de dados, o tipo de dados aqui, assim como com o array, pode ser qualquer coisa. Pode ser pelo menos uma string, pode ser uma lista de números inteiros, etc. Então, vamos fazer strings. E vou chamar isso de nomes. Então fui inicializá-lo para uma nova lista de strings. Você começará a ver que estamos lidando com tipos muito mais complexos do que apenas intensos, porque você está começando a ver que temos que ver novo design igual que quando vamos para o objeto exercícios orientados, você começará a apreciar por que algumas declarações de variáveis têm que se parecer com isso , ao contrário de quando vemos que a string é igual a isso. Estamos ficando um pouco mais complexos, mas os passos do bebê, mas isso é tudo o que declaramos uma lista. Como eu disse, esta é mais uma vez uma coleção homogênea contígua, exceto que não está fixada para nós como inicialmente. Então, em vez de ter uma variável chamada nome, estamos criando uma lista de nomes em potencial. Vejamos como adicionamos valores à nossa lista. Em vez de áreas semelhantes que você tinha que usar o ponto fixo porque invariavelmente posso dizer que nomes com o nome do índice 0 devem ter o valor aqui. Não posso fazer isso. As listas permitem que você faça isso porque realmente a entrada será pelo menos construída sobre a construção geral que é um IRI. Então é como, aqui está uma palavra grande nem uma extensão de uma matriz. Então eles viram as limitações com a área, então eles fizeram uma extensão dela. Mas na base que ainda podemos fazer certas coisas que permitiriam que você faça. Mas então eles também fizeram outras funcionalidades para você. Então você viu que o Visual Studio estava sugerindo para mim que eu vejo nomes de ponto adicionar nome ou adicionar quaisquer valores que eu pudesse adicionar esse valor do meu nome. Então, essas são duas maneiras. Saiba que a diferença entre esses dois está aqui que tenho que saber o endereço exato que estou adicionando a ferramenta de nome, que não consigo saber durante tempo de execução enquanto o aplicativo está em execução. Não sei se 50 nomes já entraram são apenas dez. Eu não sei. Então, ao tentar acessar um endereço, eu posso encontrar o problema de acessar um que ainda não existe porque é apenas dez e estou tentando colocá-lo no espaço 50, ou vou colocá-lo no espaço 50 e em seguida, acabe com espaços vazios entre 10501149 estarão vazios. Mais uma vez, não é eficiente. Então, gostaríamos de confiar no programa, no método, desculpe, que nos foi fornecido chamado ponto AD. Vemos o nome da lista, que é nomes, nomes, ponto add. E então nós lhe damos o valor, saberemos que ele deve colocá-lo neste espaço porque esse espaço é o próximo na linha. Se um for removido, tudo será reordenado automaticamente. Assim, você pode realmente remover e adicionar quantas coisas quiser. Posso remover o Trevor. A partir disso, sinto muito por isso. Eu posso remover problemas ou disso apenas vendo o Dr. se mover para onde quer que seja trivial ou usando a lista de datas que a primeira estrela a ficar no nosso terceiro, ele irá em frente e removê-lo e depois reordenar tudo para que o endereço 0 até o comprimento menos um esteja sempre intacto. Portanto, as listas são muito mais dinâmicas que as matrizes. Se você tentar remover ou MTO DSPS em um array, estamos fazendo tempo de execução, ele simplesmente não funcionará. Certo? Tudo bem, vamos ver como adicionaríamos valores corpos mais dinâmicos. Então, vou escrever um pequeno console. E eu só vou dizer digitar nomes. Tudo bem? E então aqui vou usar mais como um loop while. Por que estou usando um loop while-loop? Porque não sei o número de itens que eu quero. Então, não posso ir ao nosso balcão. Se eu escrevi este programa para uma escola, qualquer um dos programadores não pode assumir que a escola só tem 100 alunos. Eles podem ter dez e eles podem ter mil. Portanto, não posso usar um loop for-para dizer, passar e fazer isso por isso muitas vezes porque o comprimento aqui será determinado pelo número de coisas que acontecem. Um loop while seria melhor porque então eu posso uma condição através da qual eles podem sair dessa operação. Então lembre-se de que o loop while ou até mesmo o loop do-while, esses são loops controlados por condição, certo? Então eu posso ver enquanto nome, digamos nome, então temos o nome da string. Você já pode redefini-lo. Muito curioso se você o tivesse apagado. E vamos inicializar o ponto de string vazio em vez da string vazia manualmente. E então eu fui dizer enquanto o nome não é igual ao valor menos um. Tudo bem, então vou mostrar agora como escrevemos programas usando loops controlados por condições. Você sempre tem essa condição de saída e pode escrever isso de várias maneiras. Você poderia escrever o nome não é igual a menos um. Você também tem que escrever esse ponto de nome igual. Há um filme igual Shaun em uma corda que eles podem usar quando você quiser compará-lo com outra string. Tudo bem, acho que não mencionei isso com a comparação de string anteriormente. Então você poderia dizer que o nome é igual ao que você queria quando não é. Então você pode ver, não está bem. Você pode ver que é equivalente a false. Oh, há tantas maneiras de escrever código, mais uma vez, metade para explorar. Tudo bem, então essa é uma maneira de escrevê-lo. Vou mostrar-lhe todas as maneiras de escrevê-lo. Então você também pode simplesmente ver não essa explicação dizendo não apenas que não é igual. Só estou dizendo que enquanto isso avalia como falso, embora não seja igual a menos um, então continue. Deixe-me deixar aqueles para codificar alguns blues lá para sua referência mais tarde. Vou prosseguir com este. Então, enquanto o ponto do nome é igual, isso não é verdade. Isso é o que esse sinal de exclamação significa. Então, queríamos continuar em loop. Fui pedir o nome ao usuário. Vou ver o ponto do console escrever digitar o nome. E então vou dizer que o nome é igual à linha de leitura de pontos do console. Então eu carrego o usuário para inserir o nome. E então eu vou ver nome, pontos, Desculpe, nomes que não conseguem listar pontos adicionados. Lá vamos nós. E estamos adicionando o nome que foi inserido, o que, claro, é uma string. Então eu posso adicionar esse nome, pois é uma string. Isso diz saber que é um possível nulo. Isso significa que, se a pessoa não inseriu nada, você realmente quer inserir uma string vazia ou algo na área de nomes é a lista de nomes. Então aqui é onde vou colocar uma declaração if. Então saiba que você vê que isso está ficando mais complexo à medida que nosso programa, medida que expandimos nossos horizontes, estamos começando a ver como colocamos uma declaração if dentro de um loop while e como estamos interagindo com essa lista. Isso é o que chamamos de aninhamento quando você tem uma estrutura de controle constante dentro de outra declaração if em vez de um tempo é um aninhamento. Tudo bem, posso ver se uma string é um nome nulo ou vazio. Então, vamos fazer isso. Se não for nulo ou vazio, veja este nó e não for igual a menos um. Bom e complexo, se a declaração tiver chegado, então podemos adicioná-la. Vamos do topo. Embora nosso nome não seja igual a menos um, o que não será porque o inicializamos para uma string vazia. Então, está vazio. E isto é, esse pré-cheque vai passar porque não será menos um antes de chegar aqui com base na forma como escrevemos ou programamos. Então vou dizer digite o nome, aceite a entrada do usuário. Então, somente se a entrada do usuário não for nula ou vazia e a entrada do usuário não for igual a menos uma. Dessa vez, devemos adicioná-lo. Isso significa que, se estiver vazio, ele não executará esse bloco se for, ele falhará nessa condição e, em seguida, ele voltará e verificará. Mas então isso ainda não é menos um, então ele voltará ao loop run novamente. Se eu inserir menos um, então ele falhará nessa verificação porque agora é menos um, então ele ainda não entrará, voltará e então ele sairá. Tudo bem, então é assim que usaríamos um loop while para pedir nomes ao usuário até que eles terminem. Porque quando eu terminar, posso colocar em menos um. Então, isso é o que chamamos de critérios de saída. E geralmente é um valor obscuro em relação ao contexto que o usuário nunca colocaria por padrão, quero dizer, quem coloca um monte de nomes, entradas em menos um. Então, vamos tentar esse. Portanto, essas são coleções de listas. Vamos começar. Tudo bem, então aqui estamos sendo solicitados a digitar o nome. Então, vou entrar no tropo ou fui entrar no teste. Fui entrar em Matthew. Fui entrar no John. Todos esses valores. Observe que ele continua em andamento. Vou continuar digitando e pressionando Enter. Não cura. Só está aceitando os valores. E então, quando eu pessoalmente negativo um, é quando ele sai, Essa é a alma. Não, você realmente seria capaz de inserir valores para que o usuário esteja satisfeito. Se você quiser, você pode colocar outro pequeno aviso aqui para saber quando o valor foi inserido versus quando ele não foi inserido. Porque se ele for inserido e você puder ver que o nome foi inserido. Então, não posso simplesmente interpolar essa string. Em seguida, basta ver que o valor do nome foi inserido com sucesso. Adicionado, bem-sucedido. Deixe-me ver, eu adicionei. Tudo bem. Então, o usuário receberia algum feedback. Sim, você colocou esse nome, ele foi adicionado com sucesso. Ou melhor, você colocaria isso depois que ele foi realmente adicionado. Ele foi adicionado com sucesso. Então é assim que preenchemos nossa lista com valores. Agora, como imprimimos nossos valores dessa lista? Então imprima valores na lista. Bem, temos mais uma vez algumas opções. Poderíamos reutilizar o tempo. Acho que é preciso muita coordenação para usar o tempo. Então, vou pular o exemplo while, mas já temos uma maneira de fazer isso na forma do for-loop. É. Portanto, lembre-se de que as listas são construídas sobre a construção de uma RA. Na verdade, eu poderia escrever um for-loop que vai de 0 ao comprimento da nossa lista. Então a lista é chamada de nomes e posso ver nomes, pensamentos, cones. Este não tem comprimento, mas tem cones. Cones obtém o número de elementos. Se você vir a direita lá em cima do Visual Studio, obtém o número de elementos contidos na lista. Tudo bem, então, como eu disse, às vezes o que você quer não é necessariamente apresentado ou você pode ignorá-lo. Às vezes eu acabo rolando para alguns, elimino alguma propriedade ou algum método se parece com o que eu quero. O Visual Studio nos tempos mais recentes estrelou os métodos e propriedades mais usados, e você os verá na parte superior. Mesmo sendo ordenado em ordem alfabética, você veria alguns na parte superior. Então, como os cones estão no topo porque eu acho, bem, as pessoas geralmente querem saber o número de coisas em nossa lista. Dot colon t, então você entende. Está lá para você com, eu levanto seu comprimento de ponto com listas. Pensa-se que cones parecem esse efeito. Vamos de 0 para o cone para menos um. Então eu poderia facilmente dizer ponto do console, escrever, imprimir, buck cada nome chamado nome de bytes da lista e, em seguida, dar a ele o subscrito de I, na verdade, iterará através dessa lista para tantos itens quanto estamos inseridos. Porque lembre-se, aberto não sabia, ainda não sabemos quantos itens esperar. Esse é o primeiro que você pode fazer isso. Então, isso seria impressão. Deixe-me apenas fazer gravação de pontos do console, impressão de linha. Deixe-me obter meus direitos de derramamento. Imprimindo nomes via loop FOR. Isso é o que este primeiro faz. Agora, a razão pela qual estou especificando for-loop é que você também pode usar outro tipo de loop e um especialmente projetado para esse tipo de situação, que realmente recebeu uma menção honrosa quando estávamos olhando para declarações de repetição, mas eu não entrei nisso porque a hora não era certa. E esse é o para cada loop. Agora sabemos como, ou em nenhum lugar vai ver como o loop para cada, certo? Então, vou dizer console. Vou apenas duplicar este slide aqui. E isso seria um loop foreach. Agora, para cada loop, você começa a digitar para cada um e, em seguida, pressiona Tab duas vezes e ele gera esse stub para você. Então, para cada um, e você verá que está vendo var. Nós olhamos para o que var é mais tarde. O que vou ser fortemente digitado aqui e dizer string porque é uma coleção de cordas. String. Em seguida, vemos o item. O que é a coleção? Temos que chamar a coleção pelo nome, a coleção aqui que ele acabou pelo menos, que são nomes. É basicamente dizer para cada entrada desta coleção, para cada item na coleção de nomes, poderia ser uma densidade mais específica para cada nome na coleção de nomes, mas não posso fazer isso porque eu já tenho uma variável chamada nome, então isso causaria confusão. Tudo bem. Vou deixá-lo como item. Meu ponto é que isso vai passar por qualquer número de itens nessa coleção, seja 110105 mil, passará por cada um. Armazene-o aqui para o tempo de execução do loop. E então, cada vez que ele é executado, ele recebe o novo. Você pode fazer o que quiser fazer com o novo. Como eu disse, queríamos imprimi-los. Eu só vou dizer ponto do console, escrever linha. E tudo o que vou fazer é imprimir o item. Tudo bem, isso é tudo o que realmente está fazendo. Isso é um loop para cada. O para cada loop é perfeito. Não preciso me preocupar com os cones. Não preciso me preocupar com um critério de saída. Tudo o que preciso fazer é dizer para cada uma das variáveis nesta coleção, fazer o que precisar fazer. Bom e simples. Tudo bem, então vamos dar uma olhada no que isso renderá. Fui inserir alguns nomes aqui, então vemos o nó visto ********* adicionado com sucesso. Comprei eu fiz uma gravação de pontos do console em vez da linha direita do console R. É por isso que está imprimindo tudo isso, mas acho que já saberíamos disso. Então, não vou enfatizar esse. Estou apenas inserindo alguns nomes. Depois de inserir todos esses nomes, quando eu pressionar menos um, você verá que ele passou pelo loop for-loop, impresso. E então ele passou pelo loop for-each e imprimi-lo diretamente. Para mim. O loop foreach é muito mais fácil de formular porque é preciso um pouco menos de coordenação. Mas há situações em que você não precisaria de um loop for-loop com a lista, mas o contexto determina sua execução na maioria das vezes é bom conhecer as ferramentas que você tem em mãos. Mas o que usar quando geralmente é determinado por suas necessidades no momento. É isso de mim no tópico de listas. Quero que você experimente, tente listas com outros tipos de dados, como matrizes com outros tipos de dados, e escreva outros programas para aceitar valores. Tente escrever um programa que aceite vários arrays. Ou pelo menos você poderia ter nomes, nomes de alunos e as grades. E então você escreve um loop para inserir os dois e, em seguida, imprime todos de volta, é criativo e explora. 22. Introdução aos cursos e objetos: Ei pessoal, nesta lição vamos começar a discutir programação orientada a objetos. Não, eu disse antes que o C-sharp é uma linguagem de programação orientada a objetos. E há alguns deles por aí. O Java é muito popular. Python, Ruby, C plus, plus. Todos eles também são orientados a objetos em linguagens de programação. Portanto, a diferença entre linguagens de programação orientadas a objetos e outras linguagens de programação serão as linguagens de programação orientadas a objetos nos permitem criar nossos próprios tipos de dados. E fazemos isso através da definição do que chamaremos de classe. Para começar, vamos criar um novo projeto e estamos chamando isso de classes e objetos. Então vá em frente e clique em Pause, criou o projeto. E podemos começar a ver o que é a classe. Interagimos com as aulas sobre para saber que o Console é uma classe. E eu teria apontado que com base na codificação de cores, você veria que existem aulas, certo? Portanto, o Console é uma classe. Quando olhamos pelo menos coleções. Também analisamos uma aula, e essa classe é chamada de lista. E eu teria mostrado a vocês que a declaração para esse tipo de objeto era um pouco diferente de uma. Adicionamos nosso tipo de dados irregular. Nós apenas diríamos que o tipo de dados é igual a qualquer coisa. A lista é, na verdade um tipo de dados muito específico que foi criado. Isso não é um dos, o que chamamos de tipos de dados primitivos. Tipos de dados primitivos seriam o que teríamos usado quando começamos. Você não int string, char, bool. Todos eles são primitivos. Observe que eles são todos da mesma cor. Preventivos porque são tão básicos quanto os tipos de dados podem obter. Mas eles não fornecem necessariamente tudo o que queremos. Então, para capturar algumas batidas da inflamação, como quando tivemos que fazer o programa obtendo todos esses bits de dados, tivemos que ter 12345 variáveis para coletar dados em uma pessoa. Temos que ter a idade do nome completo. Mas e se eu quisesse uma representação de uma pessoa? É aí que entra a criação do seu próprio tipo de dados. Portanto, objeto ou programação tem a ver com a criação de seus próprios tipos de dados. Você é um tipo de dados, já que você é o único a criá-lo, você pode determinar quais propriedades são, quais métodos podem estar envolvidos. Fazemos isso por meio da definição do que chamaremos de classe. Uma classe é um plano do que o objeto vai ser. O objeto é a manifestação da classe. Então pense nisso como com um anfitrião. Quando você vai construir uma casa, você tem que colocá-la no papel, você tem que delinear, estamos observando meta, quão grande cada sala deve ser se tudo for feito em uma representação visual, uma representação 2D, que é o blueprint. No entanto, quando você constrói o host, essa é a manifestação do blueprint definido. E então, se você tiver vários buracos é construído a partir desse projeto, então você terá várias manifestações. Então, se fôssemos fazer isso em OOP, o desenho de plantas seria nossa classe, Esse é o esboço. E, em seguida, cada host é um objeto da classe. Para definir uma classe, parece que usamos a classe de palavras-chave e, em seguida, damos um nome a ela. Então, se estou usando uma pessoa que não é o nome da classe , abro e fecho. Meu resumo diz, meus aparelhos curly sabem definir a classe que temos que dar propriedades a ela. Então você vê o Visual Studios aqui fazendo uma sugestão. Vou fazer isso manualmente para poder explicar o que cada parte significa. As propriedades referem-se ao objeto, digamos que os conhecidos. Então, no caso de uma pessoa, o que é desconhecido nos dados que a pessoa tem ij é desconhecido, então isso é propriedade de uma pessoa. O nome é uma propriedade da pessoa ali mesmo. Dirija cada pedaço de informação em um barco, uma pessoa neste contexto, ou um barco ou qualquer que seja a classe, cada pedaço de informação é realmente propriedade. Para obter a propriedade em primeiro lugar, dê a ela um modificador de acesso. Então você tem outros diferentes. Você tem público. Isso significa que 170 não podem digitar pessoa, posso acessar o que quer que seja público. Então eu tenho que dar um tipo de dados. Então, string pública e, em seguida algo que é acessível ao público a maioria das pessoas é o nome deles. Então, na realidade, o nome é uma boa sugestão. Eu sei o que é isso. Provavelmente, ser acessível publicamente sobre uma pessoa estaria lá cada porque cada um seria mais parecido com um int. E então eu diria idade. E observe que ele tem essa cinta para ficar e sentar-se aberta e depois obter ponto-e-vírgula, e depois sente-se, pegue ponto-e-vírgula, coloque ponto-e-vírgula e, em seguida, feche a cinta encaracolada. Isso é o que você chama de acessadores. Portanto, esses permitem que você obtenha o valor envolvido aqui são armazenados aqui. E este permite que você assente o valor armazenado aqui. Então, vendo ficar indefinido, isso significa que, uma vez que eu estou interagindo com uma pessoa, eu tenho vantagem para obter qual nome deles ou sentar qual é o nome deles, obtém qual é o nome deles, sentar qual é o nome deles. Tudo bem, então classe, dê um nome. Eu notei apenas vendo a aula aqui que leva o nível que eu escrevi. Null tem a mesma cor que o console e a lista e todos os outros porque só sou eu criando meu tipo de dados. Esse tipo de dados complexo está fazendo uso de tipos de dados primitivos no interior. Uma pessoa tem nome, tem idade, pode ter outras propriedades. Antes de seguir em frente, o que vou fazer é dividir os sais. Então, de um modo geral, você não quer apenas o nome da loja, você queria armazenar o nome e deseja armazenar o LastName. Observe que a convenção de nomenclatura também, não estou usando letras comuns, não é se eu usar a carta comum, ela funcionará. Não haverá problema. Mas então, se eu for aqui e controlar o ponto Visual Studio sugerindo que eu use uma letra maiúscula até agora propriedades em uma classe, sugere-se que você use a letra maiúscula, isso é apenas um padrão. Não é isso só funciona. Os bits são um. Estamos em. O cotovelo é apenas um padrão e estou sempre apontando padrões antigos e melhores práticas para você. Público é o acessor que me permite acessar qualquer coisa sobre essa pessoa, o primeiro nome, o sobrenome e a idade. Agora, outra coisa que eu queria trazer à tona antes mesmo de começarmos a olhar para objetos. Estou sempre mostrando as melhores práticas. Você não quer necessariamente ter sua classe definida dentro de outra classe. Portanto, cada classe deve estar em seu próprio arquivo para contextos. E vou colapsar tudo aqui no Solution Explorer. Você pode fazer isso facilmente usando este botão recolher tudo, ele simplesmente colapsa tudo. E então eu posso direcionar esse arquivo, abra esse arquivo que está aqui especificamente clicando nesta sincronização com o documento ativo. Mais alguns atalhos de teclado, dicas e truques do Visual Studio saindo para você direito. Aqui está nosso arquivo program.cs que funciona está funcionando e este é um arquivo program.cs. Isso significa que este é um arquivo de classe dedicado ao programa. Quero minha própria classe, meu próprio tipo de dados definido. Eu não quero necessariamente isso definido dentro do programa. Há outro princípio que aderimos para chamar princípio único e único de responsabilidade. Esse princípio basicamente significa que cada unidade, tanto quanto prática, tenha apenas uma responsabilidade. Nosso arquivo program.cs não deve ter a responsabilidade de definir nossa classe. Eu gostaria de colocar isso em sua própria classe e uma maneira fácil de fazer isso, graças ao Visual Studio, seria dois, enquanto você poderia facilmente clicar com o botão direito do mouse em Adicionar novo item. Então você poderia dizer que quer um novo arquivo de classe e ele poderia dar o nome. Então eu fui ver como pessoa. E então ele gerará todo esse bloco de código mostrando o namespace. Portanto, lembre-se de que o namespace é o nome da pasta. Tudo bem, então nosso projeto discute um objeto, então esse é o nosso namespace. E então ele gera esse stub de método com outro modificador de acesso chamado público interno significa que qualquer pessoa pode acessá-lo, mas interno significa que apenas outros arquivos em vez do mesmo projeto podem acesse. Tudo bem? Então eu poderia facilmente fazer isso e então é aqui que tenho minha definição de classe. Não, eu tenho essa classe definida em arquivos completamente diferentes. Então, se eu quisesse saber onde minha pessoa cruza, preciso encontrá-la. Se meu programa tivesse mil linhas de código, eu não teria que vasculhar todas elas para encontrar a classe pessoal porque eu posso encontrar pessoa.Novo ECS. E esse arquivo tem uma única responsabilidade de lidar com qualquer coisa relacionada à classe pessoal. Tudo bem. Não, eu atalho de teclado para fazer isso teria sido fazer o ponto de controle. E então ele realmente perguntaria, você quer mover o tipo para o CSS de ponto de pessoa? Então, na verdade, sugeriria que ei, eu posso simplesmente mover todo o código para um novo arquivo para você. Se eu não criei essa nova classe, deixe-me apagá-la apenas para mostrar a você. Eu posso apenas Controlar pontos e depois mover o tipo para pessoa dot cs. Então, na verdade, ele faria um corte e cola para mim e criaria esta nova fórmula de arquivo. E lá vamos nós. Só estou mostrando as diferentes maneiras que você pode fazer isso. Mais uma vez, público. Quem tem público que pode estar na aula. Você tem interno. Isso significa que não é público para o mundo, mas é público para qualquer coisa dentro do mesmo projeto. Então você terá particular, o que significa que você precisa várias permissões especiais para acessá-lo. E mesmo o utilitário Visual Studio, você não pode ter algo privado aqui e todo o resto é público. Então você geralmente não vê aulas particulares, você geralmente verá público e interno. Então eu fui deixar este como público. E então todas essas propriedades também são públicas. Então, agora que tenho uma classe definida, em código, interaja com ela no meu programa principal. Digamos que eu queria escrever um programa que me permita preencher as informações para uma pessoa. Lembro-me que a pessoa poderia facilmente representar qualquer objeto e propriedades desse objeto que você quiser. Se fosse uma caixa, poderia ser comprimento, largura, altura. Se uma pessoa que fosse estudante, poderia ser o primeiro nome, sobrenome, idade e ganância. Lembre-se de toda a cabeça do problema de fazer uma matriz para notas em uma matriz para nomes. Poderíamos fazer tudo dentro de um tipo de big data chamado pessoal ou seja o que for. Mais uma vez, é apenas um projeto. Para obter a manifestação do projeto definido, teríamos que fazer o que chamamos de declaração de objeto. Então agora vou começar a ver o objeto em vez de variável mais a variável tende a se referir à manifestação do tipo de dados primitivo. Para obter um tipo de dados mais complicado diria o nome do tipo de dados, que é pessoa, chamado de nome do objeto, que posso dizer essa pessoa. Observe que posso nomear um com o P maiúsculo e outro com uma ervilha comum. E isso é realmente porque eu acho que, em nenhum lugar , percebo que é muito fortemente digitado e é sensível a maiúsculas então capita apaziguar completamente diferente minúsculas, então capita apaziguar completamente diferente do P. e minúsculas, então capita apaziguar completamente diferente do P. instância da classe. Se isso parecer familiar, então bom. Isso significa que você está prestando atenção quando fizemos nossa lista, lista, qualquer nome é igual a uma nova lista e abrir e fechar o aparelho. Sempre que você estiver lidando com uma classe que precisa ser declarada, é assim que ela vai parecer. Pessoa. E, em seguida, o nome do objeto é igual a uma nova instância desse objeto. Adivinha o quê? Ele também pode ter várias instâncias desse objeto. Então você pode ter a pessoa um, pessoa dois. Porque a realidade é que você tem várias pessoas no mundo. O que todos temos em comum, entanto, as propriedades definidas, cada pessoa tem um FirstName, LastName, e cada um, se não, eu sou corrigido. Este é o plano geral e, em seguida, todas essas são manifestações. Blueprint offset. Conheça uma maneira abreviada de escrever isso em C-Sharp, Oito para cima ou 900 palavras seria apenas dizer novo. Então você não precisa escrever uma pessoa que seja igual a uma nova pessoa novamente, você pode simplesmente dizer que a pessoa é igual a pessoa igual e depois nova. Isso é um bom afiado e nós nos deixamos trabalhar com uma pessoa por nulo, vamos escrever um aplicativo que aceitará as informações sobre essa pessoa. E então ele vai imprimi-lo de volta para a tela que isso está disperso. As informações são que posso ver linha de gravação de pontos do console, enter, FirstName. Então, essas são coisas que fizemos. Sabemos como solicitar o FirstName. O que não sabíamos antes é guardar tudo dentro de um objeto para que eu possa ver uma pessoa. Observe que pessoa é o objeto que definimos. Posso ver pontos de uma pessoa. E quando digo dados, tenho acesso a vários métodos e propriedades. Então, como conheço métodos diferentes das propriedades? A primeira dica é que, na inteligência, os métodos terão esse cubo. Em seguida, as propriedades terão esse intervalo. Portanto, nossa propriedade representa uma dessas variáveis que eu teria definido aqui. método representaria o que já olhamos para os métodos. Então, podemos realmente fazer métodos, faremos isso em alguns. Então, apenas por ter lactose, existem alguns métodos padrão que teríamos como duas cordas. Então eu disse antes que cada objeto em C-Sharp pode fazer paraString o que nem sempre é prático. Ele tem os iguais, obtém o tipo. Ele tem vários métodos incorporados. Vou começar com os mais fáceis, que são as propriedades com as quais sei que preciso interagir. Então, a pessoa aponta primeiro e o significado quando você cria esse objeto inteiro, que é uma coleção dessas três variáveis, eu queria definir o primeiro nome para ter o valor vindo do console, linha de leitura de pontos do console. É, é o número um. Então eu quero inserir sobrenome será o mesmo princípio. Então, o sobrenome do ponto da pessoa é igual para obter o valor do console. Então eu queria obter a vantagem. Então, entre. Então dizemos pessoa.New edge, e então a idade é um número inteiro. Então, se você disse que precisamos converter, então você está absolutamente correto. Então, precisamos ver os pontos convertidos para int 32. Deixe-me obter meus direitos ortográficos para int 32. E então nós embrulhamos isso entre parênteses. E lá vamos nós. Não, estou preenchendo as informações para essa pessoa. Isso é cortesia de se desculpar, fora do set. O conjunto me permite fazer isso. Se eu não vi que posso sentar no limite, só consigo ter a idade. Então vou receber um erro quando tentei fazer essa tarefa porque agora está dizendo que não há, veja que é somente leitura. Não posso definir um valor nessa propriedade. Tudo bem, então é por isso que recebo dez sets são importantes se a contextualidade for importante. Então você pode não querer necessariamente alguém para sentar a idade. Claro, mais uma vez, estou apenas dando o conceito. A implementação é relativa à sua situação. Nome, último nome, idade. E podemos inserir cada um diretamente nas propriedades, conforme fornecido pelo nosso objeto do tipo pessoalmente. Agora vamos olhar para outra propriedade como talvez o salário. A maioria das pessoas mantém seus salários privados. Isso não é algo que você poderia me procurar no Google e encontrar com muita facilidade. Nesse contexto, você não veria necessariamente o salário público. Você veria privado, o tipo de dados duplo e salário. E, de um modo geral, quando você estiver fazendo um particular, o que chamaremos isso de campo. Portanto, essas seriam propriedades quando públicas. Geralmente, quando eles são privados, você os chama de campos, apenas algum jargão para que você possa apreciar a diferença. Então, de um modo geral, com os campos, você realmente usaria um sublinhado aqui para denotar que isso deveria ser privado. Então, se você estivesse apenas olhando código de alguém e visse para sublinhar a diretriz geral seria que é o tema geral por trás desse sublinhado que precede o nome seria que é um campo, é privado. Enquanto quando você usa uma letra maiúscula, isso significa que ela é pública. Então isso é apenas aquela pequena coisa que você pode cuidar. Mais uma vez, outra boa prática a ter. Quando tentei interagir com qualquer coisa que seja privada, como aqui, se eu disse salário de ponto de pessoa, perceba que nem está chegando na inteligência porque C-sharp está dizendo isso é privado, então eu nem deveria te mostrar isso. Se eu tentasse acessá-lo, se eu tentasse interrompê-lo, vai dizer, rapaz, está inacessível devido ao nível de proteção dele. Não posso ajudá-lo. É privado. Você não pode simplesmente interagir com ele assim. Então, isso é outra coisa que você pode procurar quando se trata configurações privadas e públicas em suas propriedades de barra de campos. Quando ele vem para nossos campos privados, é quando começamos a falar sobre ambos os métodos que seriam necessários para interagir com eles. Um método representaria mais como um verbo. Então eu disse que as propriedades serão como conhecidos. São coisas que estão no objeto. O que não fez, o que o objeto pode fazer? Uma pessoa pode andar, uma pessoa pode correr, coisas assim, um carro pode dirigir. Essas são coisas que você pode fazer. Esses são métodos. Sempre que você estiver pensando em algo que é factível, isso provavelmente precisaria ser definido como um método em oposição à nossa propriedade. Então, digamos, por exemplo, que queríamos conseguir um salário não definido. Esses são métodos que você está obtendo é verbo, configuração é um verbo. Nós o temos como um privado. Precisaríamos de métodos para nos ajudar a interagir com ele. O que eu faria aqui é definir um método. Já analisamos como definimos métodos. O que provavelmente não fizemos foi colocar modificadores de acesso no método, certo? Então, se eu vou definir o salário, isso significa que não preciso devolver nada. Eu gostaria de algo como um método vazio. Não quero chamá-lo de Aipo definido. Aipo. Seu trabalho é dar um valor ao campo privado. Digamos que vou defini-lo para 100. Assim que esse método for chamado, salário obterá o valor de 100. Como recupero esse valor? Bem, eu posso fazer outro, enquanto o público recebe salário. E desta vez vou fazer com que valor retorne porque quero recuperar qual é o salário, então tudo o que vou ter que fazer é devolver o salário. Tudo bem. Olhe para ele, sem campo privado. E então temos métodos para interagir com o campo privado. Temos um para definir seu valor. Não preciso fazer nada. Não preciso retornar nada depois de definir o valor, então vou evitar. No entanto, não fique aqui, vou estar sentado. Desculpe. Vou recuperá-lo. Então, se eu estiver recuperando, isso significa que ele precisa devolvê-lo. E se ele retornar ao acampamento antes do teste para ser o tipo de dados fora do que eu estiver retornando, o que é um duplo. Tudo bem, apenas mostrando como tudo está conectado. Então, como esses são dois métodos públicos, posso facilmente dizer ponto de pessoa e, em seguida, olhar para esse salário conjunto nulo listado. Ele recebe salários também listados lá. Eles são um público, então eles são visíveis. E dois, são métodos. Observe o cubo. Tudo bem, eu descrevi que o cubo representa que é um mito. Vamos ver se eu chamo de salário aqui. Então eu queria imprimir o que esse salário é depois. Só vou ver que o salário é. E então eu vou apenas fazer interpolação e depois olhar para a segunda pessoa, ponto obter salário. Para nós, não obter salário vai recuperar qual é o salário e isso será impresso na linha de gravação de pontos do console. Tudo bem, então o que podemos fazer é testar o sal. Antes de testar, disse que eu vou criar algumas outras linhas. Então eu fui ver um primeiro nome, sobrenome e idade é. E o que faremos é imprimir as propriedades. Então, a pessoa pontilha primeiro nome, pessoa , pensamento, sobrenome, pessoa pensou idade. E então essas são propriedades. E então esse é um método, mas todos eles estão relacionados à mesma pessoa porque estamos inserindo as informações para uma pessoa. Então, vou mudar meu projeto de inicialização que causa objetos. E então vamos levar este para um giro rápido. Quando o programa for executado no primeiro nome, usarei meu próprio nome, sobrenome, idade, digamos que eu tinha 45 anos. Então, ninguém vai imprimir volta tudo sobre essa pessoa. Primeiro nome, sobrenome é Susie, tudo está sendo armazenado no salário foi definido para 100 cortesia do nosso método. Mas essa não é a realidade porque estamos codificando o valor, certo? Então meu salário não é seus centros. Então, quando eles estão inserindo você como pessoa com seu nome, eles precisam inserir seu salário. O que posso fazer, é simplesmente um cria uma variável local que vou chamar de salário aqui no programa principal. Então vou aceitar a entrada do console. Quando recebo esse salário de baixo custo, esse é o salário que eu quero usar o SETT, o salário da pessoa. Analisamos o uso de parâmetros em nossos métodos. Vou modificar o método salarial definido. E já havia imprensa F12. Então, quando ele queria pular para um método, você quer navegar para esse método, basta clicar nele, pressionar F 12 no teclado e ele salta para a definição. Então esse é outro atalho de teclado para você. Então, a partir daqui, posso dizer ao salário definido para aceitar um parâmetro chamado salário. E usaremos esse valor que está chegando para sentar o campo privado. Tudo bem, então isso significa que não, quando estou chamando salário definido, é conhecido como uma seta porque está esperando um valor para que eu possa dar o salário que foi aceito como entrada do usuário. Então, entradas do usuário, salário, chamamos um salário conjunto de pontos de pessoa, ascendemos sobre esse valor que acabou de chegar. Em seguida, dentro desse método em que usa esse valor para definir os campos privados. Então, sempre que pedimos o salário, é quando recuperamos o que foi aceito pelo usuário. Isso está cheio, você teria que interagir com campos privados. Outra coisa que vou mostrar é talvez obter o nome completo. Vai retina onde obtendo o nome próprio, última coisa. E se eu não quisesse imprimir FirstName, LastName? E se eu quisesse ver seu nome completo é, sua idade é, e seu salário é, certo. Então eu posso facilmente colocar outro método. Depende de mim, então eu posso colocar um método de retorno de valor do tipo string que diz obter nome completo, obter nome completo. Isso não precisa de nenhum parâmetro porque estará interagindo com propriedades que já estão dentro da classe. Então eu posso dizer a ele para retornar uma versão concatenada que veremos. Vou interpolar uma string mostrando FirstName e LastName. Tudo bem, então primeiro nome e sobrenome, e isso é mais fácil, nome completo, e é isso que eu quero que você retorne. Então, sempre que alguém ligar para receber o nome completo, ele deve retornar. Isso. Um bloco de string com o primeiro nome e sobrenome incluídos. Saiba em vez de dizer FirstName e LastName é, eu posso entrar nessas linhas. Então eu vou apenas criar um para ver o nome completo é obter o nome completo. Olhe para essa pessoa não receber o nome foo. A idade é que eu vou te dar um desafio neste ponto para a idade, se você quisesse saber o que o ano para pessoa nasceu em vez de apenas cada um. Você pode tomar a idade. E então você pode criar um método que diz chegar ao ano de nascimento e deixá-lo retornar o ano de nascimento e imprimi-lo de volta à tela. Quando falamos de classes, objetos e encapsulamento, eu vi, explicaria o que é encapsulamento. Agregação. Primeiro, a classe é o blueprint. Dessa perspectiva, quem olha para isso, não sabe muito sobre a pessoa. Eles só vêem a pessoa quando estão interagindo com o objeto do tipo pessoa. Eles podem interagir com certas coisas. Eles não necessariamente entendem como funciona. Isso é o que chamamos de encapsulamento porque o funcionamento interno dos salários realmente definido, é realmente recuperado. Eles não sabem que outros veem é obter salário. Eles simplificaram eu queria salário. Acabei de chamar o céu. Obtém salário. Se eu quisesse o nome completo, vou ligar para obter o nome completo. Eles não conhecem o hardware que realmente está acontecendo por trás aqui. Por mais difícil ou suponha que seja, a pessoa que interage com o objeto não sabe. No blueprint é onde você define toda a funcionalidade, mas o uso real dela deve ser o mais simples possível para a pessoa que a usa. E depois disso, ninguém falaria sobre agregação. Isso significa que dentro dessa classe complexa, agregamos várias propriedades e operações que elas podem fazer. Então, dessa perspectiva, em algumas linhas de código, eles podem realizar tanto sem perceber quantas linhas de código teriam ido em nosso agregado para inventá-lo. Vamos passar por outro teste com isso para que possamos ver se obtemos pelo nome completo e pelo salário novamente. Fui entrar para a idade de 58 anos de VOR William. E então, quando pressiono Enter, acho que está pedindo para o mais sutil que não coloquei em propenso ao salário. Então deixe-me colocá-lo em 2 mil. E então Node vendo seu nome completo é o nome completo, conforme dado a nós por essa string. E aqui estou vendo dois espaços. Tudo bem, então isso é algo que poderíamos investigar. Acho que coloquei um espaço atrás de um deles. É por isso que estamos recebendo o nome completo. Estamos recebendo pela idade e estamos recebendo dinheiro. Esse é o valor salarial que tomamos por meio de entradas. Portanto, essa é uma rápida introdução à programação orientada a objetos. Mais uma vez, a prática se torna permanente. Então vá em frente e pratique tentando descobrir como você calcularia o ano de nascimento da pessoa com base na idade fornecida. 23. Sobreposição dos métodos: Ei pessoal, bem-vindos de volta. Continuamos em nossa jornada com programação orientada a objetos. E eu só queria mencionar um conceito rápido chamado sobrecarga de métodos. O que teria notado até agora em nossas interações com custo é mesmo antes de começarmos a criar o nosso próprio, era o fato de que poderíamos realmente escrever ou acessar diferentes variações do mesmo método. Esse olhar para a classe do console. Console. Linha de gravação de pontos. Nenhuma linha de gravação de pontos tem 17 sobrecargas. Então, uma sobrecarga significa que você tem maneiras diferentes para a faculdade. Você poderia simplesmente chamá-lo de vazio, significando parâmetros nulos. Você chamaria isso com o parâmetro bull, com um parâmetro char. E acho que percorria e mostraria todas as possibilidades. Esta é, na verdade, uma sobrecarga de método acontecendo aqui, porque é o mesmo método com o mesmo nome que o veria retornar o tipo. Ele funcionará de forma ligeiramente diferente com base no valor que está sendo passado aqui, seja uma string ou um gráfico inteiro, etc. Mais uma vez, encapsulamento. Você não sabe, a linha certa está funcionando. Você só conhecerá sua classe interna e é um método que você chama e você lhe dá um valor e espera que isso imprima algo na tela. Você não sabe o que fazer para converter os índios ou a string ou o W aqui na string são o que testá-lo com fluxo irregular. E todas essas coisas, certo? Você não sabe. No final do método, a sobrecarga pode ser muito importante quando você deseja dar aos usuários opsins para realizar o mesmo tipo de operação ou opções diferentes com o mesmo nome de método. Alguém para manter este simples, mas é simplesmente o conceito suficiente para que com um exemplo você possa pegar facilmente, certo? Então, vamos ver, estamos recebendo o nome completo da pessoa aqui. Eu queria sobrecarregá-lo para potencialmente obter o nome do meio deles também. Então eu quero uma opção onde eu possa colocar o nome do meio e obter o nome completo com o nome do meio incluído. Não há propriedade pessoalmente para o nome do meio. Então, vou fazer isso do zero, certo? Então, digamos que eu tenha uma variável de string, vou chamar o nome do meio. Vou inicializá-lo a string dot mt. Vou pedir. Então, antes, não adicionei o prompt para o salário. Sou apenas do sul. Obter meus gastos lá vamos nós. Insira o salário. Então vou pedir o nome do meio. Então eu fui dizer que o console insere o nome do meio. E, em seguida, largura para as entradas do nome do meio do nosso console, ponto readline. Quando esse nome do meio for colocado, se estiver presente, eu gostaria de obter o nome completo pessoal com o nome do meio incluído. Caso contrário, apenas me dê o nome completo regular. Vou usar uma declaração if e fui tomar uma decisão rápida. Você viu algo assim. Se o ponto de string não for nulo ou vazio. Portanto, se não houver nome do meio presente, o que significa que o usuário não colocou nada para essa entrada. Em seguida, imprimirei o nome completo normal. Else. Gostaria de uma opção em que eu possa lhe dar o nome do meio completo e que seja incluído no nome completo impresso. Agora, observe que este não tem parâmetros. Foi assim que o definimos. Este, estou passando o parâmetro e está me dando um erro. Por quê? Porque diz que nenhuma sobrecarga para esse método leva um argumento dizendo que vejo que você está chamando esse método, mas não consigo encontrar uma definição de método correspondente que deveria tomar qualquer parâmetros em tudo. Então, cabe a mim não, ir para a classe e garantir que ela exista. Então eu posso simplesmente ir para pessoa, basta clicar nele, pressionar F 12. E então eu posso criar outro método que posso criar uma String pública, dar o mesmo nome, obter o nome completo. Mas desta vez ele tomará um parâmetro de string chamado nome do meio. Vê isso? Este, não, eu posso fazer com que ele retorne o mesmo tipo de string. Mas vou incluir a orelha média no meio dessa corda, certo? Então, mais uma vez, esse usuário nunca saberá se a diferença foi tão complicada ou simples. Eles só sabem que têm a opção de obter o nome completo. E eles têm a opção de obter o nome completo com um nome do meio incluído. Saiba que eu tenho essas duas versões praticamente do mesmo método. Diga método por causa do nome. Se eu olhar para trás aqui, esse erro desapareceu. Tudo bem, então uma vez que eu forneça um nome do meio e fui fazer uma verificação para ver qual opção devo chamá-los? Devo chamar Person.new setFullName aqui ou devo chamar aquele com o nome do meio? Prisões de nome médio. Tudo bem. Vamos testar isso rapidamente. Obtenha o primeiro nome, o sobrenome, obtenha a idade, receba o salário, depois o nome do meio. Se eu não colocar nada lá, observe que ele imprime todos os meus FirstName e LastName. Vamos tentar isso novamente. Vou executá-lo novamente e depois ver a mesma coisa. Idade, salário. Então eu tenho um nome do meio único. É um grego, significa reservatório, significa pão da vida. Na verdade. Sinto muito. É grego, significa pão da vida. E quando eu apresentei nas entradas, então recebo essa opção para VOR, nossos dedos Williams, certo? Se você quiser ter certeza, vamos fazer uma pequena sessão de depuração. Alguém que coloca nossos pontos de interrupção em qualquer um só para garantir que ele ligue para o carrinho quando esperarmos. Essa é outra maneira. Se você estivesse fazendo isso em qualquer lugar e obtendo a saída esperada, sinta-se à vontade para usar seus pontos de interrupção. Então, para sempre Williams ou apenas meio que encurtado para passar por isso rapidamente, sem nome do meio. Pressione Enter e OTC chamado, obtenha o nome completo com todo o nome do meio porque eu não forneci um nome do meio, basta pressionar enter para que ele não estivesse vazio. E não é chamar esse método de aquecimento desse ponto de interrupção. Então, nesse ponto, FirstName é verdadeiro para o sobrenome é Will. Se eu passar o mouse sobre o nome do meio, não há nada lá. Nem me mostrará nada porque não há nada lá. Não estava sentado. Certo. Então, se eu pressionar F5 para deixá-lo continuar com a execução e pressionar enter no console para F3 superior. Então você verá que é não, estou imprimindo como esperado. E então da mesma forma. Se eu colocar o aipo do usuário de teste e, em seguida, um nome do meio, então ele vai atingir este onde ele está passando por cima desse nome do meio. Esse é um exemplo muito simples de sobrecarga de métodos. Como eu disse, é algo que temos feito desde o início com o pântano console.log e alguns outros métodos. É assim que você pode implementá-lo dentro de sua própria classe. 24. Cursos estáticos e membros de curso estático: Tudo bem pessoal, então estamos seguindo em frente e vamos olhar para outra categoria de tipos de classe. E este é chamado de estático. O gás estático é aquele que não pode ser instanciado. Então, quando falamos de instanciação, isso significa isso quando criamos um objeto de uma classe. Tudo bem, deixe-me, eu deveria ter feito isso antes, então deixe-me mostrar-lhe, dar-lhe um código ou referência para segurar. Isso também pode ser feito. Tudo bem, então o que você diz novo ou diz nova pessoa? E mais tarde, veremos outra palavra-chave que podemos usar, o tipo de dados obscurecido. Mas vamos nos concentrar em classes estáticas para que não possamos instanciar uma nova instância da classe. Então, instanciamos nossa própria classe. Temos que instanciar a lista e teríamos que instanciar até certo ponto as RAs quando fizemos matrizes ou até mesmo o tempo morto para que essas sejam todas classes. A data e hora é igual à nova data e hora. Tivemos que fazer isso antes. Uma classe estática seria mais parecida com o console. Tudo bem? Então, o console realmente nos dá métodos bem estáticos. Isso significa que não precisamos ver o console cria um objeto é igual a uma nova instância do console para acessar a linha direita. Porque não há como eu dizer pessoa com um P B maiúsculo no ponto do tipo de classe. Isso não me dá nada. Não me permite acessar nenhuma das propriedades sem instanciá-la, que está criando o objeto ou a manifestação do blueprint. E então, através do blueprint, através da manifestação em vez ou no objeto, posso acessar as propriedades e métodos. Então, vamos analisar a criação de uma classe estática e como ela pode ser útil. A classe estática geralmente é usada como uma classe de utilitário, então vou criar um novo arquivo de classe. Então, vou chamar diretamente nosso projeto de classes e objetos , vá para Adicionar novo item. E, na verdade, você pode notar que você tem citações curtas aqui que apenas diz classe, concedido, é quase a mesma coisa. Ele vai abrir a mesma janela de diálogo e apenas se concentrar na aula para você automaticamente. Digamos, eu chamo essa data de aula util util. Utilitários de data. Não há dia para até. Ele vai te dar o novo arquivo, vai me dar todas as declarações usando. E mais uma vez, este é um arquivo tradicional C-Sharp. No dotnet six over temos acesso a arquivos mínimos em que não temos o namespace e todas essas chaves e todas as instruções de uso. Anteriormente. Você sempre pode limpá-los pressionando Control e pressionando a tecla que E. E ele removerá qualquer coisa que não seja necessária de seus arquivos. Portanto, não precisamos de tudo isso usando instruções Control key. Às vezes, você só queria arquivar para mostrar o que você precisa ver, que é toda a filosofia de seis está quase acima de****** até mesmo com esses blocos de código onde o namespace que eu posso remover esses aparelhos encaracolados e basta colocar um ponto e vírgula. C-sharp six saberá automaticamente que esse é o namespace que governa o arquivo inteiro. Então, não preciso de todas essas brisas. Saiba que estamos nos aprofundando mais no antigo PM mostrando pequenas coisas sobre segurar o acorde e como você pode interagir com ele. Você poderia realmente fazer isso em lata C-Sharp, certo, do jeito que era antes de funcionar perfeito. Quero dizer, o Visual Studio deu a você então deve funcionar que nós também, tudo bem, vamos nos concentrar em nossa classe, classe interna, e estamos chamando de D22. Saiba o que se eu quisesse calcular eu queria um método para calcular a dívida com base no valor do ano. Essa classe de utilitários vai ter vários métodos que apenas fazem as coisas por mim. Tão público. Ano de nascimento. E então este ano de aula de nascimento, desculpe, método deve devolver um público ao ano de nascimento. Vamos tomar inteiro, ano ou inteiro cada. Vamos começar com isso. Tudo bem, então, dada a idade, eu quero voltar, qual é a sua probabilidade ano de nascimento? Nesse método, vou fazer algum cálculo. Só vou retornar a hora. Data, hora ponto não, ano menos h tão facilmente que é. Então o ponto de data e hora sabe recebe o carimbo de data/hora atual, me dê o ano. Fora do núcleo no carimbo de data/hora e depois menos a idade dele e devolva isso. Essa é uma maneira fácil de conhecer seu ano de nascimento. Boa projeção pelo menos, certo? Vamos tentar outro. E se eu quisesse uma sobrecarga para isso? Isso me permitiu também retornar um ano de nascimento. Então, ainda vou dar a ele o mesmo nome sobrecarregando. Mas desta vez eu gostaria de tomar sua data de nascimento. Data de nascimento é a propriedade, é o parâmetro que eu quero. Então o que posso dizer é, se tudo bem, deixe-me ver o que o Visual Studio tem para mim. Se a data de nascimento que você me deu for equivalente a nula, então retorne 0 ou tilápia. Caso contrário, devolva o ano difícil, hora, não, ano menos data do ano de nascimento. Oh meu Deus. Isso é adorável, mas isso não é realmente o que eu quero. Quero mais. Eu queria apenas dar-lhe um dinheiro no ano porque eu disse ano de nascimento. Então, se você me der a hora do nascimento, então eu vou voltar. Qual é o seu ano de nascimento certo? No entanto, só estou mostrando que esses são métodos que os pontos focais não são realmente os métodos. Estou apenas fazendo um monte de métodos nesta classe util porque estou apenas mostrando que, de um modo geral, as aulas de estudo são como aulas util, certo? Então, este determinaria sua idade com base em uma data de nascimento. E então vou voltar para a sugestão original. Estamos no tempo morto, não. Ano menos a data de nascimento, ano que você forneceu. As aulas de utilidade sabem em circunstâncias normais para começar a interagir com esses métodos, métodos utilidade, desculpe, interagir com eles. Se eu quisesse usá-los em vez do meu program.cs, eu teria que vir aqui e dizer datetime D2 até criar um novo objeto de data utils. Então observe agora que está me dizendo que não foi encontrado. Isso ocorre porque o namespace foi definido acima do arquivo e nenhuma outra classe neste projeto específico tem esse namespace. O namespace basicamente é uma declaração para os arquivos fora do endereço. Se esse endereço não estiver incluído, você o usa. Solução simples, vou remover o namespace. Não é absolutamente necessário, pelo menos não no inquilino C-Sharp procura saber que ele foi removido. Tenho acesso. Saiba se eu precisava calcular algo, tenho que dizer ponto de objeto. Então eu conseguiria acessar todos esses métodos. Consequentemente. ano de nascimento versus a idade versus o outro ano de nascimento foi sobrecarregado. Desculpe. Só me lembro que estava sobrecarregado, então saiba que está sobrecarregado. Na inteligência aqui vamos para C mais uma sobrecarga. Então você pode me dar a data e hora, data de nascimento, ou você pode simplesmente me dar a idade da pessoa. Tudo bem? Não, as estáticas eliminam a necessidade dessa instanciação. Então, para atender a essa estática, a etapa número um é que você está escrevendo a palavra estática na seção modificador de acesso. Se a classe for estática, então todo tudo está na classe deve estar estudando votado dessa maneira. A classe é estática, então os métodos também têm que carregar esse modificador de acesso, permitindo que toda a coisa do compilador, todo o programa saiba que eles são estáticos. No entanto, você pode ter métodos estáticos dentro de nossa classe regular. Tudo bem, vamos ver, saber qual seria a interação se eu quisesse descobrir, ok, Aviso vendido desde torná-lo estático, isso não é ilegal. Não posso instanciar. Tipo estático. Não é possível declarar uma variável do tipo estático. Não posso mais fazer isso. Em vez disso, vou ter que fazer é chamar essa classe. Eles fazem até então eu só digo pontos. Eu não fiz, não consigo acessar nenhum método que esteja naquele vestido. Muito console local funciona onde apenas diga console.log. E então eu acesso o método que pude imprimir facilmente. A idade é essa. E então digamos que um ano de nascimento. E então eu só digo D22 pontos, Pontos, ano de nascimento. E então o que estou passando? Eu não falo sobre datas de nascimento nulas, mas o que eu tenho isso em minhas sobrecargas. Eu tenho uma vantagem para que eu possa te dar a idade. Certo. Então eu posso dizer pessoal. Nova era. A idade de uma pessoa precisa apenas o ano de nascimento deles. É basicamente isso. Como eu disse, geralmente é usado para utilitários. Portanto, todas as operações rápidas são operações que você pode se sentir repetindo várias vezes. Você pode simplesmente criar uma classe estática o método, aqueles, essa operação, às vezes é tão simples quanto eu estou unindo strings. Pode ser aparar cordas. Pode estar convertendo entre data e hora inteira, coisas assim. Pode ser uma aula de matemática onde você deseja encontrar a raiz, raiz quadrada das coisas. Você acabou de criar uma aula para isso. Tudo bem. Vamos testar isso e ver o quão bem ele funciona. Tudo bem, então vou preencher a guerra social. Williams, 5070 anos em nome do meio de aipo. Não precisamos disso. E então você verá aqui nome completo é que a idade é que o ano de nascimento é 1965. Então, levou essa idade, fez o cálculo conforme definimos e retornou esse valor. É basicamente isso. Então é assim que você usaria uma classe estática em uma situação muito prática. E ao longo de sua jornada com C-Sharp e programação orientada a objetos, você encontrará muitas classes estáticas. Portanto, é bom entender como eles são construídos, como eles são usados em geral e quando não usá-los também. 25. Herança com cursos e interfaces: Tudo bem pessoal, bem-vindos de volta. Nesta lição, vamos falar sobre herança. Então, ainda estamos olhando para a programação orientada a objetos. Conceitos incertos são pelo menos conceitos-chave para prepará-lo para escrever aplicativos básicos. E para a segunda parte deste curso, onde tudo está focado na programação orientada a objetos. Onde fomos discutir herança criando um novo projeto, um novo projeto e console C-Sharp sobre onde chamamos essa herança. Herança. Então a herança tem a ver exatamente com o que a palavra sugere para você como ser humano quando ele fala sobre herança, significa receber algo de outra fonte. Algumas pessoas são extremamente ricas por causa de sua herança, que é algo que elas receberam de seu antecessor. herança tem a ver com propriedades de cisalhamento com outra pessoa, cortando minhas coisas com outra pessoa. Em termos de programação orientada a objetos neste conceito, isso significa que não precisamos necessariamente repetir certas coisas em todos os tipos que abrem atributos comuns. Então, basta falar, deixe-me mostrar alguns exemplos práticos. Alguém para criar uma nova classe ou pelo menos alguém para escrever as aulas aqui e depois as moveremos para o arquivo antigo. Então, digamos que tenhamos uma classe que podemos chamá-la de forma 3D. Começa então essa forma de nuvem, certo? Uma forma. Em nossa definição de forma, teremos pelo menos altura e largura. Digamos que temos uma propriedade. Portanto, um atalho de teclado para escrever nossa propriedade é que você pode escrever prop e, em seguida, pressionar Tab duas vezes e ele gera esse stub para você. Podemos ter altura dupla com um H maiúsculo, é claro. Em seguida, podemos pressionar Enter no final do preenchimento. E então vá para a próxima linha e diga propaganda tab, tab e depois dobre. Em seguida, você pressiona Tab para mover do W2, o nome da propriedade, colocá-lo. Então, vamos chamar isso de um comprimento. Em seguida, pressione Enter e é isso, certo? Normalmente, a forma terá pelo menos a altura e o comprimento. Não, você tem variações da forma porque os triângulos provavelmente teriam sua altura e comprimento dentro deles também teriam, isso é o que chamamos de hipotenusa, por assim dizer, certo? Cubo. Cuboide teria altura, teria comprimento e também teria largura? Ou teríamos uma classe base chamada grama obesa de forma do tipo. Você tem um modificador de acesso chamado obstruto. Isso significa que eu não posso, desculpe, isso tem que vir antes da classe de palavras. forma abstrata da classe significa que sim, é uma classe. Sim, existe, mas você não pode instanciá-lo. Então lembre-se, assim como com a estática, não podemos ver ovelhas nova forma. Não podemos fazer isso. Isso é ilegal porque abstrato não pode fazer isso. No final dessa operação, quando definimos nossa classe de forma, vou controlar pontos e movê-los para seu próprio arquivo. Então mova o ponto raspado csv seu próprio arquivo. Então, estamos em forma de ponto cs. Noah quer outras classes que compartilhem propriedades de uma forma para que eu possa facilmente criar outra classe, classe pública, e chamarei esse cubo. Para herdar, eu só preciso ver dois pontos e, em seguida, dar a ele o nome da classe que está herdando vendo dois pontos de cubo de classe pública. Ele está herdando da forma. Agora isso está reclamando por causa das inconsistências com o, com os modificadores de acesso de acessibilidade. Portanto, isso é público, enquanto a forma não é pública. Então, se eu remover o público aqui, tudo bem. Lá vamos nós. Se eu tornasse os dois públicos, tudo bem. Cubo de classe, forma de cólon. Então aqui posso definir minhas próprias propriedades. Então, o cubo ou um, já temos alto para já ter comprimento. Então aqui eu vou dar uma largura a ele. Saiba o que não preciso ir e definir propriedades específicas. Então, mesmo que eu tivesse tentado definir a altura dupla C novamente. C-sharp vai sublinhá-lo verde. E deixe-me saber que bem, você já moldou a altura do ponto. Então, definindo a altura aqui, você está substituindo a original. Sendo redundante, você está se repetindo. Não preciso fazer isso. Se eu fosse instanciar Q, digamos que eu diga cubo. O cubo é igual ao cubo nu. Eu sempre posso. Deixe-me mover isso para seu próprio arquivo. Então Controle pontos e depois mova para o ponto cubo CS. Sim, eu gostaria de movê-lo. Lá vamos nós. Então agora eu tenho uma instância de cubo. Posso ver pontos cubos. Posso obter o comprimento da ferramenta de acesso, que é cortesia fora de forma. Não posso ficar tóxico. É a largura que acabei de definir, e pode ter acesso à altura, que também é ver como forma, ou seja, o que a herança permite. Ele me permite definir uma fonte de propriedades comuns e, em seguida, reutilizar essa fonte em vários lugares. Em. A razão pela qual eu fiz esse resumo é que eu não sei qual é a forma. Mesmo se eu dissesse que ovelhas são iguais à nova forma, qual é o tipo de navio? O círculo é? É um cubo? Crc não pode instanciar um tipo abstrato de ovelha. É abstrato. Então, o conceito de uma forma é realmente abstrato, é por isso que C-sharp nos dá essa palavra-chave abstrata. O que é uma forma? Portanto, a manifestação real de um navio é aquela que podemos quantificar como cubo, cubóide, retângulo, etc. Tantos outros tipos quanto eu posso pensar. Então, digamos que eu também pensei incluir triângulo de classe tranquilo. Isso também é uma ovelha. E eu queria herdar da forma. Tudo bem, porque eles têm propriedades comuns, então nossa classe chamada triângulo só terá sua própria propriedade única chamada talvez hipotenusa. Talvez eu consiga ficar com minha geometria aqui, mas apenas trabalhe comigo. Então o triângulo também está herdando de ovelhas. São dois lugares a menos para colocar, altura e comprimento. Tudo bem? Então eu sempre posso colocar o triângulo em seu próprio tipo. Portanto, responsabilidade única, mais uma vez, se quiséssemos modificar um triângulo multidões para financiar se quiséssemos modificar uma forma, você sabe onde encontrá-la. Se você quisesse modificar o cubo, não encontramos onde encontrá-lo. E o programa médio está aqui. Você notaria que porque estou usando herança, há isso, é um símbolo vindo aqui. Isso é chamado de margem de herança, na verdade me permitirá pular entre as classes herdadas da classe base. Então, se eu modificar a classe base e, da classe base, preciso saltar volta para um desses triângulos cubóides. Eu sempre posso clicar nesse salto para o cubo. E é uma maneira agradável e fácil de navegar entre classes que estão herdando de outra. Se você quiser, você pode ir em frente e escrever linhas vermelhas do console antigas e linhas vermelhas e preencher o cubo e, em seguida, fazer alguns cálculos, certo? Mas então isso traz outro ponto interessante. Quando ele vem até nós fazendo cálculos. Teríamos que saber como definir a área ou o volume ou o que quer que seja com base nos diferentes tipos de formas. Forma? Sim, ele pode ter um método que define como GetArea. Claro. Área pública de entrada dupla. De um modo geral, para a área, você só precisa do comprimento vezes a largura. Se for um triângulo, é metade da base vezes a altura. E vamos supor que o comprimento aqui é a base vezes altura. Então você verá que cada forma terá sua própria maneira de obter a área. Portanto, não é muito fácil apenas dizer, oh, eu vou ter uma perda abstrata e ter uma, ele obtém método de área. Isso funcionará. Claro, você poderia simplesmente definir gets era dentro de cada uma dessas classes derivadas. Então chamamos esses gases derivados, o que quer que esteja herdando. Ele é chamado de classe derivada. O que quer que esteja sendo herdado é chamado de classe base. Portanto, essas são as duas palavras-chave que podem aplicar à sua conversa. Eu sempre posso ver o público duplo pegar a área para o triângulo. E eu sempre posso ver a área pública de entrada dupla para o cubo. Mas então, se eu for para outro, vamos ver, eu trago outra aula. Deixe-me apenas, deixe-me fazer dessa maneira. Deixe-me ser consistente. Então, digamos que eu tenha retângulo de classe. Essa é outra forma com a qual interagimos. E também herda da forma. Tudo bem, e então ele não tem propriedades adicionais e, nesse momento, realmente esquece de dar a ela sua própria era get. Então, aqui, vou ser muito inconsistente porque ao cubo pode obter a área, o triângulo pode obter a área. E eu sou humano, esqueci de colocar a classe ou método GetArea, desculpe, na classe retangular. Não. Eu recebo a área do retângulo e publiquei meu programa. Enviei você informado para pessoas e depois estou recebendo esse feedback, Ei, isso não funciona quando tentei com nossas línguas, trabalhar. Isso suportará um construído etc, etc, etc. Esse é um tipo de feedback que deve empregá-lo para fazer melhor. Mas meu ponto é que há momentos em que isso pode acontecer. Então é quando queremos mover nossa herança de apenas classes, classe abstrata aqui e, em seguida, começar a olhar para a herança usando interfaces. A interface é uma versão reduzida de uma classe, mas é mais como um contrato. Vou mostrar um exemplo disso. Então, vou escrever aqui. Vou dizer interface em vez da classe que dizemos interface. E então, de um modo geral, a convenção de nomenclatura para uma interface que você começou com um eu maiúsculo e então você dá o nome. Então eu moldo. Essa é a interface com a qual estamos trabalhando. Não, como eu disse, é uma classe mais leve, o que significa que pode definir propriedades, pode definir métodos, mas pode declará-los, mas não os define. Só para camião buck. Esta é uma chamada de função. No entanto, a definição da função é o código real que uma função está executando. Deixe-me pular de volta para minha pessoa. Então, aqui está a definição da função. Essas são definições para interface podem não necessariamente defini-la porque a definição de get era para retângulo será diferente da definição para o triângulo é diferente da definição para o cubo. No entanto, posso declarar que todas as classes derivadas que herdam dessa interface devem ter uma definição para um método específico. Então aqui eu posso ver que sempre deve haver uma área azul maçante. Tudo bem? Então, qualquer coisa herdada da forma IS. A maioria implementa a área de dupla get. É por isso que chamamos de declaração ou de algumas, algumas linguagens chamariam isso como protótipos de função. Então, isso é apenas ver que esse é o tipo de dados, esse é o nome. Talvez existam parâmetros, mas isso é tudo o que há para isso. Não é uma definição e não é uma chamada de função, é um protótipo. Sabe, posso deixar que todos herdem de uma ovelha. Saiba. Você vai ver WE herança um, você não pode herdar de mais de uma classe de cada vez. No entanto, você pode herdar de uma classe e uma interface ou várias interfaces naquele momento. Essas são as regras aqui. Eu posso dizer. Triângulo de mandíbulas. Sim, você está herdando da forma. E vamos ver. Nenhum deles definiu a era. Deixe-me sair da era na fila. triângulo e um retângulo não têm a era definida. Agora lembre-se que o problema era que o enviamos informado sem a capacidade de calcular a área para retângulo. E não, eu o removi para um triângulo. cubo do livro está bom. Qb só precisa retornar altura, um todo, é de novo? Não, é largura versus comprimento, desculpe, comprimento vezes largura, A área do cubo. Tudo bem, tudo bem. Mas esses dois não têm nenhum método definido para isso. Eu posso realmente subir aqui para o lado da herança depois do cólon e ver Como eu queria herdar da forma também, deixe-me mover. Eu moldei o arquivo da Suíça. Deixe-me fazer isso rapidamente. Percebo que ainda é apenas um arquivo CSS e o nome é que eu formo. E você sempre quis ter certeza de que seus nomes de arquivos correspondam ao nome da classe. Está em seu próprio arquivo, é uma herança, é uma interface, em vez disso deve impor a implementação disso, um método que está sendo protótipos são declarados. Quando vou para a classe que não herda da minha forma, vejo um erro. O que é essa área? Vê-se que o retângulo, que é a classe, não implementa o membro da interface que eu infiltro ponto get era. Você vê que eu preciso ter certeza de que, se eu estou herdando do Isua, que estou implementando o que disse em forma de IS deve ser implementado. Então eu posso fazer pontos de controle e implementar interface e isso colocará o stub do método para mim. Essa é uma boa maneira de impor na edição, no nível de compilação. Que certas regras estão sendo cumpridas. Cada forma deve ser capaz de calcular sua área. retângulo deve ter uma era deixando todos eles herdados de i moldar. Não estou impondo a regra porque esse programa nunca compilaria. Nunca consegui enviar tudo neste estado porque não funcionaria. Tenho que ter certeza de que vou ter nossa representação da GetArea antes que eu possa seguir em frente. Não, isso só vai lançar exceção não implementada, que é outro tipo de exceção, mas tudo bem. Podemos apagar isso. Então, para retângulo, posso retornar comprimento vezes largura. Tudo bem, por que tenho acesso ao comprimento? Porque o link foi definido na ovelha abstrata e está herdando disso. Assim, posso acessá-los facilmente sem precisar redefinir, redeclarar e colocar em muitas propriedades. Tempos de comprimento, qual é a altura? Era altura e largura. Então isso significa que eu preciso realmente colocar a propriedade para, com medo. Há muitas permutações como o todo isso funciona. Quero dizer, não vou conseguir cobrir todas as variações. Eu só queria dar a vocês exemplos de por que vocês teriam herança por uma classe versus herança por uma interface versus ambos. Cube atualmente não está herdando de nenhuma interface que eu possa dizer, mas já fez a implementação, então tudo bem. Não há erro lá. Como eu disse, com as margens de herança, você sempre pode pular entre os arquivos da classe e você pode pular para a definição se precisar. Você pode ver onde está sendo definido em todo o lugar, etc. Então aqui em triângulo, se eu tentasse obter a área de um triângulo, isso me daria um aerossol aqui. Posso ter a definição dentro da classe do triângulo, metade B. Então isso é 0,5 vezes a base, que fui usar como comprimento. Isso é meia base vezes altura, certo? Desculpe, já faz algum tempo começar a dizer que é metade das vezes base altura, realmente e verdadeiramente, certo? E é assim que a área do triângulo é definida como. Esta é a área do retângulo. E então a área do cubo é que, mesmo que você esteja herdando, você pode ter seus próprios métodos aqui porque posso ver facilmente o volume público de obter o duplo. E o volume do cubo seria comprimento vezes o. Eu disse comprimento vezes comprimento aqui, comprimento vezes largura. Comprimento vezes largura vezes altura. Tudo bem? Sim, estou herdando 11 é começar florestas, mas posso ter minhas próprias e minhas próprias propriedades, mesmo que eu queira dizer, herdar, herança nos ajuda a reduzir a repetição. E lembre-se, princípio DRY, não se repita onde quer que você veja oportunidades como esta, onde você pode estar repetindo certas propriedades em várias classes, ainda planas que você quer colocá-los em uma classe base e fazer herança para reduzir toda essa repetição. Vamos escrever um programa rápido para testar tudo isso. Então eu já tenho o cubo e vou mostrar a palavra-chave var. E também var é uma maneira rápida de definir uma variável ou um objeto. A coisa com var é que ele assumirá seu tipo com base no que está no lado direito desta decoração. Então, quando digo triângulo var, ele não sabe qual tipo de dados é até eu dizer que é um novo triângulo. Se eu dissesse retângulo var, então o objeto chama, o objeto é chamado de triângulo. O que ainda vai ser de tipo ou glicose na língua? Esse é um tipo que defini. Isso é comum, você verá o desenvolvimento C-sharp onde, em vez de ver o nome da string e uma idade e assim por diante. Mas eu fui rigoroso com isso antes porque queria que apreciássemos os tipos de dados. No futuro, você me verá usando var, um pouco mais. Triângulo Var. Posso dizer var cubo. Posso dizer retângulo var. retângulo é igual a um novo objeto fora do retângulo, etc. Então eu vou fazer algum console, linhas certas. Você pode fazer uma pausa e replicar esses, exceto os três objetos, e então eu tenho três. Pequenas variáveis aqui. Estou apenas definindo-os como int, mas como eu disse, igual a facilmente apenas ver longe. Só vendo vírus sem, esse link deve ser inteiro porque, no lado direito, estamos vendo que estamos enviando por um inteiro. Isso pode ser uma espada de dois gumes porque não está disposto a dar um erro se o tipo de dados não for o que você espera. No entanto, quando você é rigoroso assim, você pode ver a uma milha de distância que você pode estar escrevendo código incorreto para a situação em questão, como aqui. Eu costumo favorecer o uso dos tipos de dados primitivos quando preciso. Mas para os mais complexos, vou confiar no fogo, mas às vezes mais uma vez, você pode usá-los de forma intercambiável. Aqui estou apenas solicitando o comprimento, a largura e a altura. Então vou definir pontos cubos. Comprimento a ser igual ao comprimento, largura do cubo para ser igual ao valor da largura que entra. Cuba, altura do ponto para ser altura. Outro o mesmo para o triângulo com comprimento, triângulo com largura e triângulo com altura. Observe que este está me dando um erro porque o triângulo não tem uma propriedade width definida nele. Então essas foram as sugestões do Visual Studio. Vou removê-lo. Tudo bem. E então o retângulo vai tomar comprimento e largura, o que não é apertado. Saiba, existem diferentes maneiras de definir nossa atribuição desses valores. Esta é uma maneira de fazer isso. Há outra maneira de fazer isso. Há pelo menos duas outras maneiras que ele poderia ser feito de forma mais eficiente. Na próxima lição, quando estávamos olhando para construtores, vou mostrar que depois de termos tudo isso definido, podemos facilmente fazer algumas linhas de gravação de pontos do console. Vou pegar emprestado estes e ver o triângulo. Deixe-me começar com cubo, área de cubo. Então chamamos pontos de cubo, obtém área. Normalmente, depois de atribuirmos os valores, temos uma definição para que ele chega a era lá e q também teria volume obtido. Então, vou chamar isso ao mesmo tempo. Então vamos apenas fazer o triângulo. Aqui é chamado de método triângulo obtém era. E podemos fazer a mesma coisa pela área do retângulo. Tudo bem. Só estou mostrando que quando você começa a pegar o jeito de como tudo funciona, tudo flui. Você verá que a programação orientada a objetos está lá para facilitar sua vida. Então veja quanto código nós escrevemos. Leuko minute coisas que fizemos ainda, ou program.cs é tão simples, é apenas definir três objetos, obter dados e depois enviá-los e, em seguida, o processo para obter todos esses valores, esses estão escondidos de nós. Quando eu testar isso, vou usar os mesmos três valores obviamente para todas as três formas. O comprimento cm para vê-lo dentro da costura. Tudo bem, então deixe-me liberar meu console. Então, digamos que o comprimento seja de 50 por 40 por 32. E então a área do cubo é de 2 mil, mas o volume que deveria ter sido volume é 2032. E depois as áreas triangulares. Então este não tenho certeza se está certo. Sim, eu sabia que ele estava incorreto porque eu disse mais em vez de asterisco, desculpas. Mas espero que você veja o valor da herança neste contexto. Mais uma vez, por meio da herança, consegui criar uma classe base, ou seja, chamo de uma classe abstrata chamada shape, que definem certas propriedades compartilhadas que todas as formas têm. E então eu poderia deixar todas as outras formas derivarem ou herdarem desse gás em forma de BCE. Também olhei para usar herança para impor que um determinado método ou certos mitos pensamentos, porque você não está limitado a apenas um. Mas certos métodos foram aplicados na forma. Então aqui penso em aliviar alguma convenção de nomenclatura. Portanto, controle os dados e deve ser Gettier com um G. maiúsculo A mesma coisa para ele obter volume. Então não jogaria encarcerado para mim. O que eu estava dizendo é que a interface quando herdada age como um contrato, um contrato afirma que você obrigado a fazer isso. Uma vez que você está herdando deste contrato, ele quer dizer que você já é bom para realizar a operação definida pelo contrato. Isso é basicamente, oh, whoa, interfaces de herança funcionam. E ele não ficou muito mais complicado do que isso. Mas quando você chegar a aplicativos maiores, começará a vê-lo. Mas esta é uma boa introdução rápida à herança com classes e interfaces. 26. Construtores: Tudo bem pessoal, nesta lição estamos olhando para construtores. Então, vou reutilizar o projeto de herança apenas porque ele já tem tanta coordenada e acho que é uma maneira perfeita mostrar o que os construtores são e manter sua utilidade. Quando estamos passando por herança, havia mencionado que existem maneiras mais fáceis, aspas, de atribuir valores a objetos recém-criados. Uma dessas maneiras seria, e eu vou apenas reorganizar o código pequeno rasgar alguém para mover as definições do objeto para abaixo, onde pedimos os valores. Quando estou definindo cubo, semelhante a quando estávamos fazendo os IRAs, quando poderíamos dizer, dê-me uma nova área e depois colocar os valores ao mesmo tempo. Na verdade, posso fazer isso com uma nova classe. Eu posso realmente dizer, dê-me um novo cubo, abra e feche chaves encaracoladas. E então eu posso começar a atribuir os diferentes valores às diferentes propriedades, certo? Então eu posso ver uma largura. Você deve obter o valor de dez. Desde que consegui isso através da entrada do usuário de qualquer k-mean em relação à variável local. Tudo bem. Você obtém o comprimento de tudo o que veio através da nossa variável local. altura recebe o mesmo tratamento. Tudo bem? Ou seja, essa linha de código eliminaria todos esses três. Sente-se. Esta linha estaria vendo me dado um novo cubo que é definido para ter a largura de acordo com o que veio, comprimento e altura de acordo com o que veio, ao contrário de mim ir comprimento do ponto ao cubo é igual ao comprimento largura do ponto em cubo. Funciona. Mas, mais uma vez, estou mostrando alternativas. Na verdade, posso remover essas três linhas de código. Posso fazer a mesma coisa pelo triângulo. E eu realmente não encontraria o mesmo problema quando eu estava fazendo o triângulo que acidentalmente colocou em largura. E não perguntei onde nossa hipotenusa para o meu triângulo. Você vê isso? Tudo bem. Altura é igual à altura Como e, em seguida, o comprimento é igual ao comprimento Como. Então eu poderia facilmente colocar nosso valor de hipotenusa. Eu não pedi um, então vou codificar duro para dez. Isso elimina essas duas linhas de código. E então eu posso replicar isso com o retângulo em vez de digitar do zero, vou apenas pegar emprestado o código do cubo e remover a altura, na verdade, acredito que é aquele que eu não preciso para o retângulo, que elimina essas duas linhas de código. Olhe para isso muito mais limpo. Não, não é isso que os construtores são. Trabalhando no meu caminho para mostrar o que são os construtores. construtores são métodos padrão que serão criados em uma classe que impõe que um objeto deve atender às ocasiões específicas antes que ele possa ser instanciado. Isso é um bocado. Deixe-me explicar. Não, há um construtor padrão que não usa parâmetros. É por isso que podemos ver cubo é igual a uma nova instância de cubo, se fornecemos valores ou não. Porque lembre-se que funcionou, você trabalhou mais cedo quando eu criei o novo cubo sem nenhum valor lá. Então, era apenas um objeto sem altura, largura ou comprimento. Isso teria sido 0. No entanto, se eu quisesse impor isso, para criar um cubo, você tem que fornecer esses valores desde o início. Então eu gostaria de pedir a ajuda de um construtor. Para criar um construtor. Vou pressionar Shift 121 cubo e pular para a definição. No construtor forçado a saída, você pode facilmente escrever a palavra-chave CTOs e, em seguida, pressionar Tab duas vezes, e isso gera esse método stop. Nó. Os construtores são caracterizados pelo fato que um deles são públicos e a ferramenta, eles têm o mesmo nome que a classe. Três dias tomar r pode tomar parâmetros. construtor padrão é aquele que não precisa de parâmetros sem eu realmente fazer isso, havia um padrão, está implícito, é por isso que eu consegui me safar com cubo sem parâmetros. Esse é o padrão que já está implícito. Mas às vezes você encontraria pessoas que são muito explícitas com a padrão, especialmente quando elas têm uma alternativa que não é a padrão. Você pode realmente ter sobrecargas de construtor nas mesmas sobrecargas de método de fim de semana. Posso definir outro construtor, a guia superior CTR. E então eu posso dizer que não, você vê que está reclamando porque está vendo dois construtores idênticos. Já viu estes aqui com o ambiente marítimo que tipo, tudo bem. Mas e se eu quisesse fazer valer isso para criar um cubo? Você tem que me dar largura. Você tem que me dar uma altura. E você tem que continuar dividindo a altura errada. E então você tem que me dar qual é o outro? Largura e comprimento. Lá vamos nós. Você tem que me dar esses três valores. E uma vez que você me der esses três valores, eu posso facilmente instanciar as propriedades para esses valores. Que não podemos ter um cubo que não tem lados e pensar nisso. Você já viu UTI com 0 comprimento, 0 dentro de 0 altura? Talvez você tenha, é chamado de cubo invisível. Para criar um cubo, você deve me dar a altura, a largura e o comprimento do cubo. Então eu posso realmente remover esse construtor padrão e ter apenas um construtor, o que está vendo, eu preciso desses três. Não, quando faço isso, veja o que acontece no program.cs, não há como definir um objeto de viúva cubo passando esses valores dentro da listagem de parâmetros. Então, mesmo que isso não apazigue o compilador, certo? Então deixe-me remover isso e mostrar-lhe isso para criar um cubo. Se você passar o mouse sobre ele, ele mostrará que você precisa ter a largura int em apertado e comprimento. Então, vou ter que fornecer a largura. E farei isso com o valor fornecido pelo usuário, a altura e o comprimento. Não, está satisfeito. Então agora ele tem esse cubo. Quando você diz, dê-me um novo cubo e você diz me dê nu cubo, você tem que fornecer a largura, a altura e o comprimento. Depois de fazer isso, todos os valores serão atribuídos. Porque no construtor eu disse quando você obtém esses cientistas de ideias automáticas, esse novo objeto de um cubo já sabe qual é sua largura, qual é sua altura, e o que ele quer dizer é inicial. Eu não preciso dizer isso depois assim, nosso todo nós tínhamos o código inicialmente. Tudo bem, o triângulo ainda pode fugir porque eu não defini no construtor. Então, mesmo que eu dê o construtor padrão, ele ainda funcionará. Mas digamos que eu dei os dois. Tanto o padrão quanto o que diz me dão a largura, desculpe, não com o comprimento, a altura e a hipotenusa. Ou eles dirão hype, certo? Ou eu poderia fazer valer isso. Eu só quero a hipotenusa. Cabe a mim qual é o valor padrão? Qual é o mínimo que esse objeto deve ter para ser instanciado. Se eu tiver dois construtores como este, então o que acontece é que posso facilmente definir um padrão como este e atribuir os valores posteriormente. Ou posso ter outro onde eu possa passar os valores. Então, vamos ver que vou usar o outro nó. Então, se eu disser triângulo aberto parênteses, então você verá que isso está me mostrando que eu tenho duas opções para criar um triângulo. Posso criar em branco, ou posso colocar o valor da hipotenusa. E vamos colocar em dez, ou eu coloco na entrada do usuário, seja lá o que for. Isso é tudo o que é exigido de mim. Saiba que tenho triângulo usando o construtor padrão. Deixe-me fazer isso em triplicado. Então você tem o construtor padrão. Isso está completamente vazio. Sem altura, sem comprimento, o que não é realmente prático. Então você tem aquele em que sim, eu criei, barcos vazios, estou atribuindo os valores. E então eu tenho um em que nada mais tem valores, exceto a hipotenusa. Tudo bem? Então, todas essas coisas são opções quando se trata de colocar no construtor. Então você pode ter vários construtores. Muitas vezes, quando estamos definindo novas classes, até mesmo classes internas C-sharp, você pode achar que pode definir um objeto. Desculpe, quando estamos definindo objetos fora de óculos, você pode definir os objetos com parâmetros, às vezes com todos os parâmetros. Essas são apenas sobrecargas construtores que existem na classe. Se eu criar um construtor, esse é o meu construtor base. Se eu criar vários construtores, essas são todas opções porque eu poderia facilmente expandir isso e dizer que me dê a hipotenusa, a altura e o comprimento. Se você quiser. Você tem essa opção também se você estiver criando um triângulo, se você não pode fazê-lo em branco, você pode me dar apenas um usuário de botão, você pode me dar todos os três. O que vou fazer quando receber os valores em cada configuração? Então, quando eu recebo a hipotenusa sozinha, eu diria que a hipotenusa aqui, novos valores. Mantenha. Se eu chegar a todos os três, então hipotenusa seu novo valor é pilha. Claro. Quando recebo a altura, sua altura e quando recebo o comprimento, seu comprimento, todas as minhas definições podem ser caracterizadas por todas essas opções, certo? Então o triângulo três poderia usar a Opção, sobrecarga de opção s1, estamos apenas passando a hipotenusa é aquela em que eu passo em hipotenusa e vamos usar dez. Eu passo na altura e passo no comprimento. Três maneiras diferentes de instanciar um objeto triangular. Claro, cada um terá um resultado diferente porque isso em seu estado atual quando eu tentei obter área aqui. Claro. Eu só vou pegar 0 porque não há nada que eu assinei. No entanto, receber ouvidos deste me daria um valor amargo. Vamos tentar isso com a Triangle Tool e depois experimentá-lo com viagens, aquele em que só temos esse botão de uso, isso provavelmente vai me dar 0 também porque isso é metade vezes 0 vezes dez, que é 0. E então este em que estou fornecendo todos os valores deve me dar outro resultado. Então, digamos que, para um giro, Tudo bem, então inserindo alguns valores aleatórios. E então vemos aqui que temos dois zeros. O primeiro 0 para o triângulo aqui é porque ele estava vazio, aqueles objetos vazios. O segundo é triângulo para onde obteve a altura, o comprimento e a hipotenusa codificada como estanho, o que, claro, poderia facilmente ter sido entradas do usuário. Então temos o terceiro que é 0 porque bem, só temos a hipotenusa, nem altura e largura. Então, a meia base ou meio comprimento vezes dez vai nos dar metade vezes 0 vezes dez, o que é 20. Em seguida, a área triangular para a terceira, onde tem dez até a altura e a largura será 270. Tudo bem? Então isso é praticamente, isso é praticamente para buraco que você usa construtores, certo? Então, mais uma vez, os construtores estão lá para aplicar os requisitos para determinadas propriedades antes que você possa avançar com a instanciação de um objeto. 27. Crie a conta GitHub: Vejamos a criação de uma conta do GitHub. Se você não tiver um desses, então você pode obter um em talvez cinco ou menos minutos. Etapa número um, vá para github.com, que é GIT Hub.com. Passo para seguir em frente e fornecer seu endereço de e-mail para se inscrever? Não, já tenho uma conta. Eu posso realmente fazer login na minha conta e mostrar como ela se parece. Isso é o que é. É quase como uma plataforma de mídia social, mas para desenvolvedores e colaboradores de código aberto, e quanto mais seguidores você tiver mais atividade você terá na tela. Quanto mais repositórios ou projetos você adicionar, mais você tem aqui. Portanto, é muito vantajoso manter backups do seu código-fonte, para fazer referência ao código-fonte de outra pessoa. E, em geral, colaborando ao trabalhar em equipes. Então vá em frente e crie sua conta, e depois de fazer isso, você pode passar para a próxima etapa. Como eu disse, é um procedimento muito simples. Você dá a eles um endereço de e-mail. Vou tentar dar a eles um que acho que eles ainda não têm para mim. E depois de fazer isso, basta seguir em frente e preencher o resto do formulário, inserir o conteúdo do e-mail e dar a eles uma senha. E acho que depois disso eles enviam o código de verificação e você verifica isso. E então boom, você tem uma conta. Depois de fazer tudo isso, você estará pronto para passar para a próxima lição. 28. Adicione solução ao controle de fontes: Tudo bem pessoal. Estamos em um marco muito bom. Fizemos muito desde que começamos este curso para saber. Temos vários projetos e várias referências e exercícios de código. E acho que foi uma jornada maravilhosa até agora. Esta conjuntura eu queria apresentar a vocês o conceito de controle de fonte, e é um conceito muito simples de entender. Em primeiro lugar, você precisará da sua conta do GitHub e tenho certeza de que você já criou uma delas do Visual Studio. É muito fácil integrar com sua conta do GitHub. O primeiro passo aqui, e vou fechar todas as janelas, todos os pedaços de código. Posso apenas clicar com o botão direito do mouse e dizer que todas as banheiras vão no TBS. Então, temos uma janela em branco. A partir daqui. Se você olhar para o canto inferior direito, você verá um misturado como seu anúncio para o controle de origem. E você clica nele, ele dirá get. Se não vir isso, talvez seja necessário revisitar a instalação do Visual Studio. Então, quando você clica em Obter, ele realmente iniciará essa pequena janela que sugere que você crie um repositório Git. Você também pode pedir que você se autentique contra seu GitHub ou cones neste momento. Então aqui você tem duas opções. Você tem o GitHub e o Azure DevOps, ambos de propriedade da Microsoft, ambas as variáveis para ambos são mecanismos de controle de origem compatíveis, são suporte que obtém protocolo. Qualquer um funciona. No entanto, vou mostrar com o GitHub, pois é a plataforma de código aberto mais reconhecida. E ele nos disse para você publicar seu código e ter um portfólio para mostrar aos outros que isso é o que você escreveu, isso é o que você saberia. Continuando com o GitHub, você pode simplesmente ir em frente e preencher fora do curso, você é autenticado para que ele preencha certos espaços em branco para você. Então ele veria um nome de repositório e, em seguida, você pode dar mais alguns textos. C-sharp com rede seis, fui ver a programação do console com malha seis. E ele pode dar uma descrição. Atividades em torno do B6 da programação c-sharp em dotnet busca. Saiba. Você pode estar se perguntando, ok, por que eu quero publicar meu código? Eu o tenho no meu computador. Bem, um controle de origem ajuda você a gerenciar as alterações. Então fizemos muitas mudanças. Não estávamos caminhando com controle de fonte. Então, tenho certeza que se eu pedisse para você se lembrar e desfazer algumas das coisas das lições anteriores, seria muito difícil. Então isso é um benefício porque se você cometer um erro com o que estava funcionando e não tem certeza de como corrigi-lo. Você sempre pode voltar ao Controle de código-fonte, obter a versão que estava funcionando e depois começar de novo. Então, é bom, é benéfico por esse motivo. Outro benefício, mais uma vez, é que ele ajuda você a compartilhar código não apenas com potenciais empregadores ou amigos, mas também com sua equipe. Se você estiver trabalhando em um projeto e todos vocês precisam contribuir em vez de copiar e colar, estou tentando ampliar a sessão. Na verdade, você pode usar o controle de origem e centralizar onde o código está armazenado, que estará no GitHub. E então todo mundo gostaria de se inscrever naquele repositório e ser capaz ver as mudanças de todos os outros, fazer mudanças, e todos podem estar no mesmo pé quando ele vem para subir de nível de desvio ou contribuindo para o aplicativo. Vou desmarcar o repositório privado porque não quero que isso seja privado se você quiser ocultar seu aplicativo do público do que você escolher privado, caso contrário você desmarque isso. E então você pode simplesmente dizer Criar e empurrar. Depois de fazer isso, coisas nobres e bem-sucedidas mudarão no Visual Studio one, você não verá mais o botão que diz Adicionar ao controle de origem. E eu só queria te mostrar mestre. Só queria te mostrar isso. Ele receberá um símbolo com o nome do projeto ou outros projetos. Você pode ver que tenho vários projetos no controle de código-fonte. Você também verá alguns cadeados azuis aparecendo ao lado de seus arquivos. Isso significa que eles são verificados lá? Não. Eu tenho o mesmo nível do que está hospedado centralmente. Se eu for acessar meu perfil do GitHub, poderei navegar pelos meus repositórios. Deixe-me começar do zero. Então esta é minha página inicial do GitHub e à esquerda estão meus Repositórios. Eu posso ver a programação do console dentro que procura e ele irá filtrar e me mostrar o projeto e todos os arquivos vistos fora dos arquivos do projeto que eu carreguei estão aqui para acesso público porque eu fiz isso público. Se eu quisesse mudar, é um particular. Eu vou para as configurações e rolo para baixo e vejo a visibilidade da mudança, então isso me permitiria alterá-la para privada. Eu também poderia arquivar transferido para outra pessoa ou simplesmente excluí-lo se eu realmente não quisesse mais. Também posso renomear. Então, desde que você não entre em conflito com nomes, isso não é problema. Se eu quisesse adicionar pessoas a esse repositório, ou seja, por meus colegas de equipe, pessoas com quem estou codificando gratuitamente, você pode somar, eu acho, cerca de cinco colaboradores. Então você só precisa confirmar sua senha e, em seguida, você poderá adicionar pessoas. Tudo bem, então eu posso ir em frente e dizer, pessoas de olhos procuram o nome de usuário, enviam-lhes um convite. Uma vez que eles vejam esse convite, eles podem aceitar e terão acesso ao repositório onde podem vir e fechar ou abri-lo com o Visual Studio clicando no código em seu próprio computador. Eles podem dizer Open With Visual Studio, que permitirá que eles abram o projeto localmente em uma nova janela do Visual Studio em um local de sua preferência. Então, se eu mudei esse caminho para o teste, tudo bem, agora posso cloná-lo e ele chegará, ele baixará automaticamente todos esses arquivos e os configurará para mim no meu computador. Isso é o que seus colegas de equipe estariam fazendo depois que você criou o projeto, sua equipe, ele iria em frente e clonaria e, em seguida, eles poderão abrir a programação do console de arquivos da solução SON. E então eles seriam capazes de interagir com todos os arquivos do projeto de acordo. Agora, quando eu mudo seu eu para um arquivo, digamos que o Hello World, isso foi muito simples. E então talvez eu tenha feito essa mudança. Seja qual for a mudança, pode ser um texto novo, pode ser um espaço, seja lá o que for, você verá que isso agora tem um carrapato vermelho. Esse sinal vermelho significa que eu modifiquei o arquivo desde a última vez. Então, isso vai ser uma modificação de teste. Essa é minha modificação. Modifiquei o arquivo em relação à última versão que estava no GitHub. Depois que eu fiz minha mudança, estamos trabalhando em equipe, ninguém. Foi minha oportunidade de saber modificar essas partes específicas do programa e eu fiz isso e estou satisfeito. Preciso fazer o check-in no GitHub para que todos outros possam ter acesso à alteração. Eu teria que ir para uma janela chamada boas mudanças. Você pode chegar lá indo para Exibir e ver as alterações realmente o ocultarão mais cedo. Mas foi o Datsun quando os alunos o encaixavam para o lado aqui ao lado do Solution Explorer. Lá vamos nós. Não sei por que não vou ficar fixado nisso. Obtenha alterações. É nisso que estou focando. Então, obtenha alterações, uma, você colocou em uma mensagem, o que você modificou? Eu daria uma boa mensagem, modifiquei o programa Hello World. Então eu posso ver commit all e ver, então clique naquele pequeno cursor além dos comentários Todos e clique em Confirmar tudo e sincronizar. E o que isso fará é empurrar essa mudança para o GitHub. Então, não, tudo o que fiz foi alguns cliques no botão. Agora o cadeado está de volta. E se alguém voltar ao GitHub, observe todos esses arquivos de projeto quando eu atualizar, ele mostrará a eles há 20 segundos que houve uma alteração. E isso vai me mostrar qual projeto foi alterado e qual foi a mensagem. Se eu clicar nessa mensagem, programa modificado, você vê aqui que está me mostrando que ela adicionou duas novas espécies, bem como o que está em vermelho é o que está em verde é o que é a nota. Tudo bem. É por isso que eu disse que ele pode rastrear mudanças porque agora você pode ver exatamente quem fez essa mudança. Então, alguém que destruiu o aplicativo, você sabe quem culpar. Tudo bem, você pode facilmente transportar todas as alterações que ocorreram em cada arquivo a cada iteração. E você tem todas as versões que ele pode voltar para procurar e clicar nos commits. Então você pode ver com base nas mensagens, quem fez o que e qual era a mensagem, você sempre pode voltar para essa versão do código e recuperar essa. Tudo bem, então isso é bom porque se alguém da equipe destruir o código ou mesmo você destruir o código e você quiser reverter, é fácil rolar de volta para isso, uma versão mais limpa. O outro lado para os membros da equipe que estão aguardando as atualizações. Portanto, esta é a janela original do Visual Studio. E se você olhar para o meu program.cs, ele não tem essa atualização, certo? Então, deixe-nos dizer que não, fiz as atualizações e, você sabe, precisa recuperar o código mais recente para essa atualização em seu aplicativo, em sua máquina. Tudo o que você precisa fazer é obter alterações. Quando essa janela aparecer, deixe-me consertar o encaixe mais uma vez. Quando as alterações obtidas surgem, você só precisa fazer um ciclo de pool. Eu vou te ligar e dizer: Ei, você sabe, eu terminei o trabalho e verifiquei, vá mais tarde. Então você é como, Ok, obrigado. E então você só vem para obter mudanças e depois faz uma piscina. E então ele vai até o GitHub, obterá todas as alterações e, em seguida, olhará para isso. Ele apenas atualizou automaticamente meu arquivo para mim. É por isso que o GitHub é perfeito para situações de equipe e não apenas o github comprou usando um sistema de gerenciamento de controle de origem. Github é apenas uma das suas opções. Você tem outras opções se lá obtém é um dos protocolos. Mas serei o mais popular. E a que eu recomendaria GitHub é uma das plataformas mais populares, fácil de começar no meu livro e também uma que eu recomendo.