Como criar aplicativos de console C# e formulários do Windows com LINQ e ADO. NET | Trevoir Williams | Skillshare

Velocidade de reprodução


1.0x


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

Como criar aplicativos de console C# e formulários do Windows com LINQ e ADO. NET

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.

      Introdução

      3:28

    • 2.

      Instale o Visual Studio 2019 Community Edition

      3:39

    • 3.

      Instale . Net Core SDK

      1:31

    • 4.

      UPDATE: Tour da edição comunitária do Visual Studio 2022

      7:56

    • 5.

      Tour pelo Visual Studio

      11:05

    • 6.

      Escreva um programa simples de Hello World

      15:06

    • 7.

      Programas de entrada e saída

      17:47

    • 8.

      Tipos de dados C# e conversão

      22:17

    • 9.

      Operadores em C#

      16:39

    • 10.

      Declarações de condição

      32:08

    • 11.

      Declarações de repetição

      27:57

    • 12.

      Métodos e tipos de retorno

      26:36

    • 13.

      Funções de manipulação de cordas

      21:24

    • 14.

      Como lidar com exceções

      12:52

    • 15.

      Cúpulos e objetos

      37:10

    • 16.

      Arrays e listas

      34:55

    • 17.

      Crie um projeto Winforms

      25:58

    • 18.

      Crie um formulário e

      21:15

    • 19.

      Adicione validações aos dados do Winforms

      34:01

    • 20.

      Crie banco de dados SQL

      9:36

    • 21.

      Conecte-se ao banco de dados SQL

      12:53

    • 22.

      Como realizar uma consulta selecionada usando o LINQ

      15:12

    • 23.

      Salve os dados inseridos no formulário

      16:46

    • 24.

      Como criar formulários e Windows adicionais

      13:38

    • 25.

      Crie um aplicativo MDI

      16:33

    • 26.

      Veja dados em uma grade

      28:32

    • 27.

      Como gerenciar mudanças de banco de dados

      18:23

    • 28.

      Crie e edite carros

      47:45

    • 29.

      Validações de dados e tratamento de exceções

      7:07

    • 30.

      Gerencie registros de aluguel de carros

      45:20

    • 31.

      Como melhorar o fluxo de aplicativos e a experiência do usuário

      28:02

    • 32.

      Formulário de login simples

      38:59

    • 33.

      Controle características com base em papéis de usuário

      34:31

    • 34.

      Palavra-passo do usuário e redefinição de status ativo

      20:58

    • 35.

      Adicione novos usuários e redefinição de password

      44:32

    • 36.

      Adicione o Project ao GitHub

      19:13

  • --
  • 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.

322

Estudantes

--

Projeto

Sobre este curso

Visão geral

Neste curso, você vai aprender a programação em C# para aplicativos de desktop. Esta jornada vai fazer você se tornar proficiente em

  • Interface do Visual Studio e atalhos

  • Aplicativos de interface gráfica de usuário orientados a dados usando Windows Forms 

  • Como gerenciar bancos de dados com o SQL Server Management Studio

  • Como desenvolver interfaces e funções gerenciadas de usuário e papéis

  • Como usar o utilitário Classes para criar código mais limpo

  • Como desenvolver aplicativos de interface Multi-Document (MDI)

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

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

Estas lições não assumem nenhum conhecimento prévio de programação ou a linguagem C# e farão você funcionar rapidamente.

Por que aprender a linguagem C#

C# é a linguagem de programação mais versátil em . NET Framework e . NET Core. Você não só pode criar aplicativos cliente do Windows, mas também pode usar o C# para criar aplicativos da Web e móveis.

C# pode ser usado para criar:

  1. Aplicativos cliente do Windows usando o Windows Forms, WPF e UWP.

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

  3. Aplicativos móveis nativos para iOS e Android usando o Xamarin.

  4. Bibliotecas, componentes e aplicativos de mesa de som

  5. Aplicativos em nuvem e Azure

  6. Aplicativos de cadeia de blocos

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

Crie uma base sólida na programação em C#:

  • Entenda a sintaxe do C#

  • Entenda os tipos de dados e variáveis

  • Entenda as estruturas de controle de sequência, decisão e repetição

  • Entenda a manipulação de cordas

  • Entenda a manipulação de data e hora

  • Entenda a programação, cursos e objetos orientados a objetos

  • Entenda o Visual Studio

  • Entenda as técnicas de depuração

  • Entenda o desenvolvimento orientado a eventos

  • Desenvolva aplicativos de console

  • Desenvolva formulários do Windows

  • Desenvolva aplicativos orientados por dados

  • Entenda o LINQ e as consultas de dados com a sintaxe do C#

  • Login de configuração e funcionalidade de gerenciamento de usuários

Conteúdo e visão geral

Este curso é muito amigável para iniciantes e cheio de dicas de desenvolvimento. Este enorme curso oferece conteúdo premium, inteligentemente dividido para destacar um conjunto de atividades relacionadas com base em cada módulo. Também vamos olhar para a solução de problemas e erros de depuração à medida que avançamos; implementando melhores práticas; escrevendo lógica eficiente e entendendo por que os desenvolvedores fazem as coisas da maneira que fazem. Seu conhecimento crescerá, passo a passo, ao longo do curso e você será desafiado a ser o melhor que puder ser.

No momento em que você terminar o curso, você terá se movimentado no Visual Studio e examinado tanto os erros de lógica e sintaxe, que será uma segunda natureza para você ao trabalhar no . Ambiente NET. Isso vai colocar suas novas habilidades aprendidas em uso prático e impressionar seu chefe e colegas de trabalho.

O Course está completo com arquivos de trabalho hospedados no GitHub, com a inclusão de alguns arquivos para facilitar a replicação do código que está sendo demonstrado. Você será capaz de trabalhar ao lado do autor enquanto trabalha em cada palestra e receberá um certificado de conclusão verificável ao terminar o curso.

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: Pessoal, Pessoal, estou animada para recebê-los no meu novo curso intitulado Cônsul Sharp e Desenvolvimento de Formulários do Windows com Link e A T ou Dot Net. Agora, esse título é bastante complicado, mas posso assegurar-lhe que temos um pouco de conteúdo reservado para si. Este é um curso iniciante para intermediário, onde eu vou levá-lo através do básico off C programação afiada. Você deve ser capaz de entender o contexto básico de C nítido. Os blocos de cordão, os diferentes tokens que ocorrem. As brisas me prendem. Variáveis, coleções, programação orientada a objetos. Todas essas coisas serão transmitidas neste curso. Eu faço uma abordagem amigável muito iniciante. Presumo que não tenha experiência prévia. Programação estão desenvolvendo aplicativos e então eu trago você passo a passo através de cada um dos conceitos. No final deste curso, você deve ser capaz de entender como criar nossos próprios aplicativos Windows. Ambos console Onda interface gráfica do usuário usando formulários Windows. Você também estará aprendendo um pouco sobre o desenvolvimento de banco de dados, pois estaremos construindo um aplicativo de formulários do Windows orientado a dados . Onda. Vamos aprender a usar nossas ferramentas como uma banheira no estúdio visual em. No final deste curso, você deve estar confortável em qualquer ambiente e ser capaz de criar um aplicativo completo enter end . Não, quero explicar por que é importante para você aprender dotnet e ver a Microsoft nítida . Net é uma das plataformas mais populares que é usada para criar aplicativos corporativos em todo o mundo. Você pode conseguir empregos em qualquer lugar do mundo. Se você é um desenvolvedor de documentos no, as pessoas vão pagá-lo bem. Toda a plataforma de documentos, além de permitir que veria Sharp, que é a linguagem mais popular usada na plataforma Darknet, pode ser usado para desenvolver uma ampla gama de aplicativos para dispositivos móveis para desktop aplicações. Mais recentemente, os limites para o DMarc também qualquer coisa no Windows e também aplicativos da Web para este curso estarão usando o Visual Studio 2019. Community Edition, que é um completo recurso I.D. I.D. E. I. D. curto para ambiente de desenvolvimento integrado sobre ele é muito moderno. É muito pobre tolo. Você pode usá-lo para construir uma ampla gama de aplicativos que é pré-integrado com get and get hub no Did. Ele tem alguns recursos de gerenciamento de banco de dados nele também. Não, eu mencionei levantar-se, e eu só vou te dar uma breve apresentação. Estelle, o que é isso é o controle da fonte que nos permitirá rastrear nossas mudanças que estão sendo feitas. Também é uma ótima maneira de voltar a parecer frio porque se o seu computador falhar e você tiver uma cópia fora do seu projeto para cima e levantar-se, então é fácil recuperar a partir desse ponto em diante. indústria adora saber que você sabe como usar ferramentas como levantar. Vou mostrar-te como usar o Get Top, Andi. Vai sair do curso como um grande benefício para você. Agora, com tudo o que está sendo dito, é bom se você tem algum conhecimento de desenvolvimento de banco de dados no campo de golfe você precisa de um endereço de e-mail em Você precisa da vontade de aprender e crescer Isso sendo dito, No entanto, Se você realmente não tem todo esse conhecimento, tudo bem. Eu levo você passo a passo, e mais uma vez, este é um curso amigável verbo iniciante. E se você não é um iniciante, mas seu intermediário, tenho certeza que você pode encontrar algum valor neste curso. Então, bem-vindo, estou feliz em ter você 2. Instale o Visual Studio 2019 Edição de comunidade: neste vídeo, você começa a configurar nosso ambiente de desenvolvimento, então vamos instalar o Visual Studio. Podemos chegar à sua aborrecida indo para o visual studio dot Microsoft dot com e, em seguida, prosseguiremos para Não. Senhor. A edição da comunidade há também profissional Under também é empresa, ambos os quais eles oferecem versões de teste como você precisa comprar a licença. Mas como somos indivíduos que estão fazendo isso para fins educacionais não são para fins empresariais, então podemos prosseguir com 2019 Community Edition. Selecionando essa opção gatilhos não são Senhor, que, quando concluído, podemos executar o programa. Este lançamento está no instalador, e é um processo bastante simples. É justamente continuar abaixado dedo do pé, fazer um pouco mais, não perder e verificar. No final dessas verificações, eles vão lançar uma tela, pede-lhe para selecionar os modelos que você deseja instalar, já que estamos fazendo programação C sharp para dotnet e para o próximo topo, então precisamos ter certeza de que selecionamos dot net para desenvolvimento de desktop Então nós só pegamos essa caixa. Se nada mais ficar marcado, que um precisa ser levado e para o tipo de rediscagem fora lista ou o que você estará recebendo como parte deste balde. Então eu vou pegar algumas outras coisas porque eu definitivamente gostaria de incluir algumas outras versões do framework DOTNET. Não, a realidade é que cada versão vem com sua própria compatibilidade, Você sabe, suporte para certas coisas e também reverter a compatibilidade para sistemas mais antigos. Então eu estou apenas levando todos eles para ter certeza de que eu tenho eles como opções quando necessário. Não, você olha para o canto inferior direito, e então eles vêem que o espaço total necessário é de cinco pontos aqui para gigabytes, e isso é apenas para um modelo. Eu poderia ter marcado outras modelos mais uma vez. Eu não preciso deles para isso, mas eu estou apenas dizendo que o Visual Studio é muito poderoso, e ele permite que você selecione o tipo de bibliotecas de desenvolvimento que você precisará para o seu contexto. Depois de selecionar dot Net, eles estão interrompendo o desenvolvimento desse pacote. Então podemos simplesmente ir em frente e clicar em instalar para que este instalador prossiga para Não carregar todos os pacotes da Internet, e isso pode demorar um pouco, então eu vou me reunir novamente quando isso for feito. Uma vez que o processo de instalação é concluído, então podemos ir em frente e lançar é o seu estúdio. Se ele não for iniciado automaticamente ao longo do caminho, você pode ser solicitado a se identificar usando uma conta ativa. Não, minha conta real já está registada na minha máquina, por isso detectou-me automaticamente ao iniciar sessão. Mas se você não receber essa assinatura automática, então eu encorajo você apenas criar um conteúdo de nível por conta ao vivo. Quero dizer, você pode simplesmente ir para Microsoft dot com, continuar para clicar em entrar. Você não tem uma conta, então você apenas cria um em então A coisa legal é que você não tem que ter em ato alguns micro discos que kamajii me trabalha no Yahoo Works. Qualquer que seja o endereço de e-mail que você usa principalmente. Você pode usar isso como sua conta real. E depois de concluir esse registro com essa conta real, então, para o Visual Studio, você pode continuar usando essa conta ao vivo para fazer login notas de que a adição da comunidade é muito gratuita. Mas então eles dirão que você tem uma avaliação de 30 dias que está realmente pendente de sua criação fora da nossa conta real e usá-la para autenticar no Visual Studio. Uma vez que você chegar a esta tela. Então você sabe que sua instalação foi concluída e, à medida que avançamos, veja como criamos um projeto e entendemos nossos ambientes de desenvolvimento. 3. Instale o clima SDK: para completar nossa configuração de ambiente de desenvolvimento, precisamos instalar dot net core. Isso pode não ter saído da caixa com o Visual Studio ou a versão que estava no Visual Studio, talvez um pouco datada. Então, a versão mais recente ou a versão no momento fora desta gravação é dot net core 3.1 Soto, pegue aquele. Você apenas goto dot net dot Microsoft dot com barra download Já poderia apenas google dot net core, e ele vai trazê-lo para este site em. Então você pode prosseguir para baixar o sdk. Então você sabe, ele diz que eu fiz o core 3.1 no mais recente framework dotnet, que também pode não ter sido incluído na instalação do estúdio visual. Então você não pode saber os dois o que eu sou realmente bom. Fui concentrar-me no núcleo porque é aí que queremos mesmo a Andi. Basta clicar. Não sei sdk. Ele vai lançar um não carregar. Então, quando isso for concluído, então olhamos para o processo de instalação. Quando você inicia o instalador, é muito simples. Você só precisa clicar em instalar em, deixá-lo passar por quaisquer verificações de segurança em, então ele só irá instalar o núcleo dotnet STK para 3.1, que no momento após este vídeo era a versão mais recente. Assim que isso for concluído e nos reunirmos novamente no final da instalação, você verá uma página de confirmação na linha mais importante aqui é a instalação foi bem sucedida. Depois de ver que você pode clicar em Fechar Onda é isso para configurar seus ambientes de desenvolvimento . 4. ATUALIZAÇÃO: Edição de Visual Studio 2022 Community Edition Tour: 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 até o Visual Studio dot Microsoft.com slash downloads. E então iremos em frente e vamos o download gratuito na edição da comunidade, que nos dará um instalador. Então, depois de executar esse instalador, poderemos selecionar as cargas de trabalho que queremos. As cargas de trabalho realmente se referem às bibliotecas ou bibliotecas de suporte para o tipo de atualizações que você está interessado em criar. Portanto, neste caso, definitivamente queremos obter essa carga de trabalho de desenvolvimento web ASP.net e desenvolvimento web. Mas se você estiver interessado em tecnologias mais antigas, você pode ir em frente e selecioná-las. Assim, você pode ver que tenho várias cargas de trabalho selecionadas com desenvolvimento do Azure, NodeJS e desenvolvimento de desktop. Então 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. Em suma, depois de fazer isso, você pode ir em frente e pressionar Instalar, que seria feito no canto inferior direito. Obviamente, quanto mais cargas de trabalho você selecionar, maior o tamanho do download. Então, depois de concluir isso, você poderá continuar. Agora, quando esse download estiver concluído, você pode obter certas opções que eu não vou obter porque já o tenho instalado. Então, isso o guiará pelo que esperar. 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 goste dos temas iniciais, você pode obter outros temas se precisar deles. Além disso, você pode ser solicitado a entrar. Portanto, se você já tiver o 2019 instalado em sua máquina e acabou de instalar em 2022, você já assinou em 2019, 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 entrar ou criar uma conta ativa, ponto em que você gostaria de usar apenas sua Microsoft emitida ao vivo. Olhe para hotmail.com em cones. Ou você pode simplesmente ir em frente e criar um. E se eu, se minha memória me servir corretamente, você poderá usar outro endereço de e-mail que não seja da Microsoft para criar uma cor mais clara. Então, se eu for em frente e criar um novo projeto e abrir um novo console, C Sharp será ativado. E então isso será o VBS 2020 para demonstração. Tudo bem, cabeça batida Next C. C é a mesma coisa, mas aqui eu posso escolher qual framework e agora posso escolher o dotnet seis mais recente. Assim, o dotnet 5 foi lançado no ano passado e está ocorrendo um dotnet de três pontos um sentar como suporte a longo prazo. Então, ainda é bem capaz. E cada um é realmente compatível com versões anteriores. Então cinco, a maior parte do que você faz em três, a maioria, se não tudo o que você faz em 3.1 ainda é compatível com cinco. E a maioria, se não tudo o que você teria feito com esses dois pode ser encaminhado, encaminhá-lo para dotnet 6.net, 2.1, muito suporte. Então, eu sugeriria que se você ainda tiver algum aumento em dois pontos, que comece a procurar atualizá-los ou atualizá-los. Ou pelo menos se você estiver apenas aprendendo dotnet Core, não comece com 2.1. Então, quando seguimos em frente e apertamos Criar, outra coisa que eu tomo nota. Então eu pausei o vídeo, mas não foi realmente esse Quetelet. Pausei o vídeo, mas uma coisa que tomei nota é que é muita fossa. Então, isso é provavelmente porque está em um aplicativo de 64 bits, por isso está fazendo melhor uso dos recursos de suas máquinas de 64 bits do que as versões anteriores teriam. Então, não, você verá tempos de pesquisa Foster , tempos de carregamento mais rápidos. Eles vão soluções com 109 projetos, não demorará tanto para carregá-los. Então, outra coisa que eu quero ressaltar é que este é um aplicativo para console. E se você tiver alguma experiência escrevendo um aplicativo típico C-Sharp, saberá que existe um modelo padrão que você tem várias instruções de uso na parte superior. 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. Então isso é feito aos 66. Na verdade, livrou-se de todo esse modelo. Então, deixe-me adicionar projeto de aplicativo de console dotnet cinco rapidamente. Deixe-me chamar esta demonstração, conheci cinco para que saibamos Next, e então esta é feita cinco. Então é isso que provavelmente custamos a eles também quando olhamos para dotnet cinco projetos ou fizemos cinco projetos de console ou arquivo de código. Então você tem sua classe, você tem seu vazio estático principal e, em seguida, você tem seu código. No entanto, em busca de dotnet, eles se livraram dos invólucros em torno de tudo isso. E o apenas começo a escrever código, certo? Portanto, isso não é, este não é um tutorial C-sharp. Estou apenas apontando todas as pequenas nuances no tutorial C-Sharp. Definitivamente vou passar por tudo isso e diferenças entre o dotnet, dotnet regular C-sharp e o que dotnet 6 traz para a mesa. Mas é muito legal, tanto quanto eu vejo. Agora, outro recurso legal para mim é que o aumento da inteligência quando se trata dicas de código estão insinuando o que você pode estar recebendo. É por isso que eles estão recebendo uma cotação. Então eu posso ver isso como uma enorme produtividade quando a droga, o recurso IntelliJ code. 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 depois selecione-a. Eu posso apenas pressionar Tab e depois banheira, desde que estejam de acordo. Personagens à direita do cursor, posso pressionar tab e, em seguida, ele irá preenchê-los, certo? Estou aqui. Então deixe-me tentar outra coisa. Se eu fizer algo como var, var num one é igual e em seguida, semente sugerindo que eu provavelmente quero inicializá-lo para 0. Deixe-me ver se é realmente tão inteligente. Então, apenas a norma para o que se eu quisesse nome var, o que isso sugere var name? 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 VARName é vago porque você sabe, você precisa do tipo 4 para saber o que exatamente o tipo de variável Será antes de você dar o valor. Então, se eu dissesse o nome de string um, vamos ver o que isso sugeriria. String name1, saiba sugestões. Tudo bem, então esse é um recurso, acho que com o tempo ele aumentará em sua oferta porque isso é realmente baseado em conclusões de metas, com base em outros exemplos de código de vários repositórios sobre o lugar. Então eu acho que nomes de variáveis aleatórios que eles raramente são usados, é provavelmente por isso que está tendo tanta dificuldade em entender o que estou recebendo. Mas então você pode ver com o núm 1, núm 2 se você já contou arte, então eu apenas pressiono enter. Está sugerindo console.log, guia de linha. E então vai sugerir outro, banheira. Então leia, eles são apenas impressos num um sem escrever uma linha de código, eu olho para isso, pressiono tabulação e estou imprimindo núm 2. Então eu acho que, você sabe, usá-lo, parecerá mais fácil. Isso fará melhores sugestões. É claramente contextos para todos porque sabe que num1 e num2 estão no documento, estão no programa. Então ele sabe que ele pode sugerir isso mais tarde. Não faça pelas minhas operações. 5. Tour do estúdio visual: neste vídeo, nós vamos estar derramando Visual Studio será criando um aplicativo de console simples para C Sharp em. Vamos olhar para a interface e apenas nos familiarizar com todos os botões e o que todos eles fazem. Não, meu estúdio visual está usando o que chamamos de modo escuro, que o torna preto, então o seu é provavelmente prateado ou branco na interface, e eu vou te mostrar como mudar isso. Mas para não, esta tela é lançada sempre que você clica em Visual Studio à esquerda, você vê uma lista de todos os seus projetos recentes fora depois de um número de projetos trabalhando em, eu meio que colapsei eles. Então não é o dedo do pé. Coloque muito na tela para exibição neste momento, mas o seu próprio provavelmente estará vazio, mas você terá a opção. Então, o direito pedindo que você clone ou check-out abrir uma pasta de projeto ou criar um novo projeto , então eu vou clicar em criar um novo projeto. Este lançamento é as diferentes categorias fora de projetos que estão disponíveis para você. Assim, com base no pacote que você teria instalado, você pode ver mais ou menos do que eu tenho na minha tela. Tenho alguns pacotes instalados na minha instância do Visual Studio, então terei mais opções. Mas para o propósito desta lição, queremos criar uma aplicação Cônsul afiada para que possamos pesquisar em vez de tentar percorrer e procurar e tentar descobrir qual é. Podemos pesquisar, ou podemos reduzi-lo selecionando o idioma real que queremos o ambiente para o qual queremos desenvolver algo, neste caso, janelas no com seu desktop ou celular. Portanto, seja mais uma vez baseado nos pacotes que você teria instalado. Então você pode obter esse filtro. Então eu escolhi C Sharp console do Windows e, em seguida, eu tenho duas opções. Eu tenho um console dot net core up, e eu tenho um console dotnet framework up. Não, não. A diferença entre o console do núcleo do tour dot net cria um projeto que permite criar um aplicativo de console que pode ser executado em janelas. Verifica o DMarc OS sobre o tradicional. Até Corky Mobile era apenas o framework dotnet regular, que criou um projeto que pode ser executado em janelas. Então eu vou apenas continuar com o tradicional aplicativo dotnet framework para não on. Então podemos criar um núcleo médico mais tarde e comparar. Então eu fui para o pé, prosseguir com o quadro dotnet. Clique em Avançar e, em seguida, damos um nome a ele. Alguém para chamar este console de redes de teste. Tudo bem, então no nome do projeto, você quer evitar caracteres especiais, tanto quanto possível. E também, você provavelmente quer camelo caso para ter certeza de que é legível. É muito sensível ao caso. Se você camelo caso ou você tem uma palavra maiúscula mista, então tenha certeza de que ele vai desempenhar um papel muito importante na referência a qualquer coisa dentro do projeto no futuro. Esta pode ser a sua localização predefinida com base no seu uso mais, sua configuração mais completa no seu computador, quem quer que você sempre pode ir para os irmãos e mudar para onde você quer que seus projetos para ir. Em seguida, temos o nome da solução e eu vou mostrar-lhe o que o nome do projeto é diferente do nome da solução. Mas podemos escolher um nome de solução diferente como a causa do projeto dentro de uma solução, e a solução pode ter vários projetos, então esses dois nem sempre têm o mesmo nome. Tudo bem, vamos. Em seguida, podemos selecionar a versão fora, Feito de graça, mais que queremos. Então você pode ver que ele tem compatibilidade com versões anteriores aberta até quadro dotnet para apontar. Ou como eu disse, cada framework tem, você sabe, o mais recente tem bibliotecas mais recentes e suporte para bibliotecas. Mas então o que funciona no mais recente em mim não funciona em um computador antigo, e então o que foi feito nas versões mais antigas pode não ser muito compatível com, digamos, Windows 7 e Windows 10. Então, você sabe, escolha suas batalhas com medo. Você sabe qual é o seu ambiente. Mas eu tenho um computador Windows 10, e eu gosto de estar na vanguarda das coisas. Então eu deixo o meu no ponto net framework 4.7 ponto dois, e então eu posso não dar um olhar superficial. Certifique-se de que tudo está bom e clique em criar. Uma vez que todos os preparativos são feitos, Visual studio e lançamento em. Então vamos ver um arquivo judicial seguido por você sabe, essa interface maravilhosa e algumas outras coisas. Então, a primeira coisa que eu vou fazer, no entanto você mostrar a você como mudar o escuro mais se você ainda não está em Dartmoor e está interessado, então você pode ir para as ferramentas, em seguida, selecionar opções em, em seguida, nesta caixa de diálogo, permitindo-lhe escolher a sua equipa universitária. Então você provavelmente está de luz ou azul. Você tem contrastes azuis e você tem escuro para que você possa selecionar lá. Clique em OK em. Então você terá esta maravilhosa interface contrastada. Não. Outra coisa que você pode não é que sua solução Explorer é para a sua direita menos para a minha esquerda . Eu reorganizo assim porque acho mais fácil mover para a esquerda para encontrar o arquivo . Às vezes eu estou digitando tribunal aqui e eles têm que se mover todo o caminho para a direita. Quero dizer, é realmente um mês fora do layout sobre flexibilidade no todo. Você prefere? Sem estúdio visual. Eu deixo você colocar do jeito que você prefere. Então você pode realmente drogar qualquer dor. Eles são chamados de campeões. Você pode drogar drogas, qualquer dor, e então você pode encaixar onde ele quiser. Veja, esses pequenos esses pequenos quadrados são emaranhados. Se você arrastá-los para o espaço que ele tipo de colocá-lo direito naquela seção que é designada direita ou eu posso simplesmente deixá-lo lá flutuando. Mas é mais para humbug aqui no meio da tela do que qualquer outra coisa. Então eu gosto do meu para a esquerda para que você possa fazer isso se quiser. Se você quer mais imóveis, às vezes você está bem no tribunal e os europeus estão ao lado, sabe, abertos assim. Sob levá-lo muito espaço que você pode não ter uma tela grande em. Você quer mais espaço para fazer certas coisas Você sempre pode simplesmente desfazer nele. Então você vê, este pino está vendo alturas automáticas. Posso fazer com que se esconda automaticamente quando preciso, basta clicar nele e sair. Faço o que estou a fazer e depois volta. Você também vai ver que eu tenho outros pinos que você sabe que você pode não ter. Então, à medida que surge a necessidade e você sente que precisa de uma dor, você pode apenas ir a vista do dedo do pé e então você encontra a dor que você quer. Então, por exemplo, eu tenho um aqui que é um explorador de objetos de servidor sequela em. Isso é como um mini sistema de gerenciamento de banco de dados dentro do Visual Studio Para este tutorial, você não vai precisar disso. Mas para outros projetos em que trabalho, eu uso. Então, quando eu expando, eu vejo coisas lá dentro. Mas então eu não vou usá-los para isso para este conjunto de lições. Agora, este arquivo do tribunal que eu tinha aludido antes este é o nosso arquivo judicial mau para o nosso console up . Então, se eu quiser aumentar o tamanho divertido, eu posso apenas segurar o botão de controle e parafusar e você vê, eu posso estragar tudo, são conhecidos por aumentar ou diminuir o tamanho dos fundos. Então eu só vou aumentar o seu um pouco para que todos nós possamos ver exatamente o que está acontecendo na minha tela na solução Explorer. Você vê que o nome do arquivo corresponde ao nome da classe. Tudo bem, então eu não vou te ensinar acordes nisso, especialmente menos tempo. Só estou tentando apontar um acusado visual para ter certeza de que quando você os vê, você sabe exatamente o que eles precisam. Certo? Então temos o programa dot CS e ver pais afiados são armazenados como ponto CS os arquivos de classe obter extensão. Isso é sim. Mas então você vê que você tem outros arquivos com extensões diferentes, como não config on. À medida que você coloca mais e mais em seu projeto, então você verá diferentes extensões de arquivo para diferentes fins. Em ser um pouco mais de atenção à solução. Explorador, você percebe que você tem e eu apenas expandir pouco. Você tem a solução e depois tem e tem nomes. É um console de teste de solução. Mas então, sob isso, você vê que ele tem outro como uma criança, certo? Vê aquele recuo que sugere que esta é uma criança fora da solução? Então este é o projeto que, em seguida, tem os arquivos do projeto. Então eu estava dizendo anteriormente que a solução não precisa necessariamente ter o mesmo nome de um projeto. Como uma questão de fato dentro da solução, eu posso realmente clicar e remover um projeto se eu quiser, ou eu posso adicionar outros projetos. Então, se eu quisesse consola, mas eu quero que eles sob a mesma solução. Então, quando eu abro a solução, que é minha coleção geral de projetos que eu veria todos os projetos individuais. Eu poderia ter um para dizer olá, Mundo Um para fazer o meu para fazer outras operações. E é exatamente assim que vamos construir um barco sobre aplicações nas quais abusar uma solução. Então vamos apenas adicionar um projeto por exemplo de tribunal que estaremos fazendo não no topo. E eu estou falando sobre esta seção que está embaixo da nossa barra de ferramentas e você vê os pequenos ícones que você sabe, você tem aquele ícone seguro você salvou tudo que vai salvar todos os arquivos. Então, se você tem vários fogos abertos e qualquer coisa, eu só quero fazer um dos meus maricas Vitter salvar todos. Mas então você percebe que eles dão cortes de tubarão teclado ao longo do caminho. Então você sabe, é fácil apenas fazer. Controle s enquanto você está escrevendo cabo do que para parar de se mover a partir do teclado e ir todo o caminho até aqui. Disciplina para salvar ou salvar todos. Então, ao longo do caminho, vou mostrar-vos um tubarão-teclado. O que é para que você possa, você sabe, tornar sua experiência de acordo mais eficiente? Não, À medida que você continuar a partir do botão Salvar, você vê que você tem algumas configurações que eles têm Deeble ano de lançamento. Você tem qualquer CPU, então eles carregam meio que fora. Determine. Ok, quais configurações devo simular quando estou prestes a iniciar meus programas? Então você vê isso? Mas com a seta verde e diz, Iniciar, você pode clicar nisso sempre que quiser. Oh, na verdade, aplicação Rohner ou você pode pressionar f cinco. Então, vou começar esta. Então note iria gerar qualquer coisa, entender para iniciá-lo para que você possa ver como visual studio parece quando ele está iniciando um programa. Então ele passa. O que? Porque uma compilação onde compila toda a sua quadra, fora dos fãs da quadra que você tem no único projeto em, então ele vai ver. Certo, há algum erro ou erro de sintaxe que eu preciso? Em seguida, ele lança o que você chama esse console para que os consulados, como comando, avisem um aviso. Foi piscado da tela porque, bem, ele fez exatamente isso. Ele é lançado o console e, em seguida, olhou dentro de nossa função principal. A função principal não lhe disse para fazer nada, então veio na tela. Então é isso. Nada a fazer por isso saiu de modo que aplicativos de console para foram o Irã em. Eles fazem uma tarefa até completarem a metade. Concluiu a tarefa em, então eles simplesmente saem automaticamente. Isso é uma excursão muito rápida fora do estúdio visual. Nós temos, ah, muito trabalho fora e um monte de coisas para fazer. Então, vou acabar com este aqui. Então, quando voltarmos, começaremos a escrever ou alguns programas de “C sharp”. 6. Escrever um programa de Hello World simples simples: neste vídeo, vamos criar nosso primeiro aplicativo de console. Então, vamos começar imediatamente. Ative o Visual Studio e, em seguida, vá para criar um novo projeto e, em seguida, podemos reduzi-lo para dizer console up. Então talvez já tenha feito isso. Talvez você não tenha. Isso é bom. Mas você sempre pode ir ver janelas afiadas e cônsul insolente neste terceiro 1 ou você pode apenas procurar console, e então ele vai narrar Não para você. Agora vamos começar com o console do Dr Core neste momento, então eu seleciono console up dot net core fleet em seguida, e então nomeamos de forma diferente desta vez. Então temos nomes de um projeto. Vou chamar este “Olá mundo”. Esse é o nome fora do projeto. Mas então eu vou ter vários projetos sob minhas soluções. Não quero que a minha solução seja chamada “Olá Mundo”. Então eu vou ter vários projetos com outros nomes, então nomear é muito importante. Isso ajuda a identificar exatamente o que você está vendo. Sabe, isso torna a vida mais fácil. Praticamente assim. Vou chamar toda essa solução de console de programação porque mais uma vez. Vamos ter essa solução com um monte de projetos voltados para programas de cônsul de aprendizagem dos EUA . Então o nome da solução mais uma vez é programação cônsul. Mas o projeto que estamos criando agora chama-se Hello World. Então eu vou apenas clicar em criar em um estúdio visual baixo para fazer sua coisa. Nenhum estúdio visual lança nosso projeto. Eles vão ver algo muito, muito, muito único. Você notou que ele já lançou nosso programa que nós acabamos de dizer que vamos escrevê-lo está imprimindo Olá Mundo para o console? Não, eu só queria antes de olharmos para o tribunal, só quero salientar que a solução vai seguir a nossa solução. Explorer vai ter um visual ligeiramente diferente. Então, se você está acostumado a dot net framework, eu sei que você está usando dot net core do que os arquivos. O Leo para mim parece um pouco diferente, mas, em última análise, são os mesmos conceitos desencadeados. Você tem seu programa que CS arquivo, e esse é o que vem aberto. Quando o Visual Studio é iniciado em. Vemos que temos uma classe chamada Programa em Será que ele tem uma função chamada média em DSO significa é chamado uma vez que seu aplicativo lança o que está dentro fora do exército e função é o que é disparado. Tudo bem, Se você expandir a dependência é então você vai ver que eles têm dependências, frameworks e, em seguida, basicamente, quaisquer bibliotecas que você quer dizer quer. Então, às vezes, você quer fazer uma coisa em particular em alguém tem o que eles chamam de biblioteca. Isso já está doando. Você pode realmente incluí-los e, em seguida, usar a biblioteca. Mas isso é para mais tarde. Só estou a dar-te um apreço pelo que estás a ver, certo? - Não. Então não precisaria ver exatamente o que aconteceu. Então, mais uma vez ou cabo é ponto console linha direita em. Então abrimos a brisa e que temos aspas. Isso é um Olá mundo fechar aspas, fluxos. Prepare-se, em seguida, semi-cólon. Então eu vou explicar o que cada token significa, mas eu só quero que vejamos como isso funciona primeiro. Então, mais uma vez para executar, eu vou apenas ir e clicar no botão Iniciar. Ou podemos afugentar o F5 no nosso teclado. Nós deixamos construir. Tudo bem, vamos. Em seguida, temos nossos consoles são console mais uma vez parece algo como prompt de comando. Se alguma vez tivesses de usar problemas de comando? Você sabe que pequena caixa preta onde você tem se o comando tipo e executar. Então é isso que o programa de console é. Então estamos vendo aqui. Microsoft Studio, Microsoft Visual Studio Desculpe, console Debo ativado. Então vemos que ele está imprimindo Olá mundo, e então ele nos dá alguns dados sobre onde ele está imprimindo. Você sabia que ele irá fechar automaticamente ao depurar em qualquer dedo do pé de tecla. Feche esta janela para que eu possa expressar entrar naquela janela com desaparecer e estamos de volta onde começamos. Agora deixe-me aproveitar o tempo ou explicar exatamente o que está sendo escrito aqui. Repare em um. Esse estúdio visual tipo de tenta lhe dar codificação de cores e ver que é bastante colorido ter textura azul de tomadas brancas. Você tem eu não sei que cor que é qualquer tipo de texto olhar amarelado, seu código insinuando, Czar, sua codificação de cores pode ser diferente com base no tema que você está usando. Então, se você está na equipe de luz ou no tema azul, então sua citação de cores pode não ser o mesmo que eu tenho aqui, mas apenas ter uma apreciação para o que recebe código de cores. Então nós temos espaço nome espaço espaço refere-se ao praticamente o projeto e, em seguida, por extensão, a pasta no projeto. Então, se tivéssemos uma dobra neste projeto com um arquivo de classe lá em que o espaço de nome seria Olá mundo ponto esse nome da pasta. Então o programa CS está diretamente dentro do nosso projeto. Então o nome espaço é apenas Olá mundo. Tudo bem, temos uma aula. Então nossas classes uma coleção fora do que chamamos de propriedades em funções. Mas eu não vou dar aulas ainda, mas nosso primeiro e principal programa de classes, porque essa é a primeira coisa que é demitido quando um console para cima vai ser executado e, em seguida dentro fora do programa, nós temos vazio estático significa nele leva alguns arcos, certo? Então eu não quero que ele assista detectável o que os arcos significam. Mas saiba que se você estiver indo para modificar qualquer coisa neste arquivo, não modifique o nome da classe. Eu não modifico a função média. Você pode fazer qualquer mudança que você quiser dentro daqui dentro fora da função principal, e nós sabemos onde estamos dentro porque você vê a cinta aberta na cinta de roupas em aviso prévio. É meio que insinuar onde a cinta se fecha. É tentar fazer tudo isso para ajudar você a não cometer certos erros ou, pelo menos encontrá-los rapidamente. Então o nome espaço tem uma cinta aberta, Onda perto brisa e dentro de fora aqueles que temos a classe em que abre e fecha, em seguida, dentro fora da função. Então esta é uma função de nós sabemos funções porque eles têm a brisa aberta e a roupa cinta dentro da função principal. Bem, você tem chaves, eles têm brisa são parênteses, então às vezes eles usam para mudar isso. Acabei de perceber que os uso de forma discreta. Então nós temos as chaves encaracoladas e então nós temos as chaves regulares são a doença dos pais. Certo, então conhecemos as funções porque elas têm parênteses e podem ou não ter valores dentro do aberto e fechado. Então, neste caso, média tem valores. Não temos que incomodar isso. Então, depois de declarar ou função, temos calibragens abertas e calibragens fechadas. Então definimos o que essa função deve fazer dentro dessas chaves. Neste caso, nós dissemos, faça uma impressão no console, esse é o mundo do olá dele. Então note que temos classe em que estamos função Notice. O programa de codificação de cores é uma classe em média é uma função. Estou apontando isso porque se você olhar para o código de cores, você percebe que o console é uma classe. O console do mundo é uma classe na linha direita é uma função, e sabemos funções porque um a chamada de acordo Maio olhar o mesmo. E se não for por você, tudo bem. Mas nossa maneira de conhecer uma função em qualquer acorde afiado C que você está olhando é ver que ele tem Perrin para agarrar depois se ele tem ou não valores lá dentro. Essa é uma história diferente, então eu poderia realmente dizer linha brilhante, então isso seria apenas silencioso. Certo, então a terra direita é uma função porque tem os parênteses abertos e fechados ligados. Se eu quisesse definir o texto que eu quero escrito para os consoles e literalmente vendo este é o console, chamar um console, certo. A linha que estou colocando dentro do aberto e fechado. As chaves são parênteses. Então eu vou colocar de volta Olá mundo em que é todo ou equipe de programa, tudo bem. Não, eu quero anotar as pontuações porque, você sabe, estamos todos começando c em ponto. Quero olhar para ele amanhã e lembrar disso. Oh, isso é o que estava acontecendo aqui. Então eu posso apenas colocar no que chamamos de um comentário usando barra. Corte. Tudo bem, então. Posso datilografar qualquer coisa que eu queira que alguém veja a impressão da tela do cônsul. Então essa é a nossa tela de console impressa. Você pode usar a barra barra. E se você quisesse escrever um parágrafo, talvez quisesse que o dedo do pé fosse um pouco mais explícito. Hable o que tudo é. Em seguida, você pode usar a barra do que um asterisco em. Então, entre aqueles, você pode ter tantas linhas quanto você precisar. Tudo bem? Escrevendo algo em torno de outras coisas. Então você apenas certifique-se de que você fechá-lo com o asterisco. Onda barra. Certo, agora você percebe que quando eu estiver mostrando a vocês como fazer as coisas, eu sempre abrirei e fecharei ao mesmo tempo. E isso é evitar cometer um erro ao esquecer o dedo do pé, fechá-lo. Então, às vezes nos empolgamos em começar a escrever citações e abrimos a chave encaracolada na direita, direita em. Certo. E não fechamos a brisa atual. Então, mais tarde, estamos recebendo erros que estavam se perguntando, por que estamos recebendo erros? Porque tudo parece bem. Então eu só vou mostrar a vocês o que eu quero dizer com erros. E a esperança é que seu estúdio vai mostrar que você tem erros. Então, se eu esquecer de fechar uma cinta, talvez eu esqueça os índices de peças despercebidos. Cada linha termina um semi dois-pontos, mas quando temos várias linhas são prestar mais atenção a isso. Então você vê que algumas linhas começam a aparecer. Então, quando você tem linhas vermelhas no estúdio visual, isso nunca é uma coisa boa. Eles podem aparecer porque a sintaxe está incorreta. Então a linha vermelha aqui está dizendo que Ei, você sabe que algo está errado. Não sei bem o que, mas há algo por aí. Eu sempre posso ir para a lista da era, e então ele tipo de me dizer que há uma conversa esperada e em algum lugar então se eu clicar duas vezes isso vai me trazer o dedo do pé a linha que a seta é essa. Mas não é bem aqui que a flecha está. No entanto, eu posso ser comprado isso e dizer aquilo. Ok, quando eu clico este próximo, é muito importante para revelar um que é impreciso porque eu tenho uma chave encaracolada aqui. Eu sei que quando eu clicar neste aqui, é muito para isso. Isso significa que falta um aparelho de crédito em algum lugar para que eu possa pressionar Enter. Então eu posso colocar sobre a cinta encaracolada e notar. Então tudo realinhado para estúdio visual realmente vai perceber tudo, porque então ele percebe. Ok, então você está fechando este aqui? - Não. Então deixe-me apenas realinhar, reinventar tudo para que você possa ver exatamente onde sua corte começa e termina. O recuo é muito importante. Faz com que possa parecer limpo. Andi legível. - Não. Mais duas coisas Observe que temos um pequeno asterisco ao lado do nome do programa ou o tribunal finalmente e sim em que asterisco é apenas um indicador de que este fogo foi modificado. Assim, você sempre pode saber qual arquivo não foi salvo. Quando você olha para o arquivo, nomeie a banheira e você vê que asters você sempre pode salvar todos. Se você tiver vários arquivos ou se tiver feito modificações em você, clique em Executar. Em seguida, ele será salvo automaticamente. Re compilar, em seguida, permitir que você prossiga. Então, se eu tiver alguns personagens ilegais aqui, tudo bem? E nós apenas olhamos para Eros. Vejo linhas vermelhas. Talvez eu tenha pensado que escrevi citações corretamente, mas o estúdio visual vê isso como ilegal. Então vai para um. Permita-me segurá-la e dar-me potenciais correções. Então eu vou derrubar este pequeno Esta é a lâmpada quando vai sugerir algo que alguns até sabem. As sugestões são geralmente como agarrar as palhas porque seus erros que o estúdio visual conhece, como talvez você tenha declarado algo inadequadamente. Então ele dirá: Oh, Oh, eu vejo que você declara isso, mas você não fez este passo. Quer que eu faça isso por você? Então você diz “Claro “, e faz isso por você. No entanto, nesta situação, este é um texto aleatório. O Visual Studio não sabe o que fazer. Então, não, nenhuma dessas sugestões foi realmente corrigir o problema. Outra coisa a notar é que se eu tentar executar onde há erros, ele fará a compilação. E então você vai me dizer que houve erros. Deseja executar a última compilação bem-sucedida? Eu costumo sempre clicar. Não, porque não faz sentido. Eu dirijo o último projeto de lei bem sucedido. Se eu estou tentando construir minha parte atual fora da quadra, então você clica em Não, então ele tipo de mostrar para você com o europeu, dizendo que você tem algumas setas. Há um certo cínico e esperado, então pelo menos é em meio a um código difícil de escrever. Reagiu corretamente. Mas a lista do ERA ainda me diz que faltam coisas. Há algo aqui que ele não consegue lidar. Então, se eu remover isso ou eu posso apenas comentar para fora, torná-lo você sabe, nosso deixe-me usar o outro comentário então eu apenas entrar em garganta. Então essa é uma maneira de comentar, e esta é outra maneira de comentar. Então a Ordem é restaurada. E se você olhar para aqui, eles são pequenas pistas visuais ao longo do caminho para dizer quantos problemas você tem lá. Diz-me que não há problemas telefonados. Sei que consertei minha terra. Eu só vou executar o meu aplicativo de console mais uma vez e, em seguida, vemos que temos o nosso mundo de impressão Olá para a tela mais uma vez. Segundo, pressione Enter. Agora, se eu alguma vez quis encontrar este projeto vai encontrar os arquivos. Você sabe, eu tenho o projeto da solução do projeto, mas eu não quero abri-lo em estúdio visual. Talvez eu queira colocá-lo em um pen drive. Eu quero movê-lo fisicamente, auto algum dispositivo de armazenamento para que eu possa usar feito outra máquina. Então, podemos facilmente apenas clique com o botão direito na solução. Em seguida, você verá o arquivo aberto nas exportações de arquivos. Quando eu faço isso, ele inicia meu arquivo Explorer me mostrando este arquivo, e eu vou ver se eu posso ampliar um pouco para que você possa ver como o rápido parece. -Melhor. Então, este é o logotipo mais atemporal na comunidade darknet. Este é o logotipo que representa um arquivo de solução. Depois de clicar duas vezes no arquivo da solução, ele iniciará o estúdio Reserve. Andi basicamente lançou os projetos que estão dentro dessa solução. Então essa é uma maneira rápida de voltar ao seu projeto que você está trabalhando em você. Basta encontrar a localização física. Onde quer que você o armazenou, você clica duas vezes no arquivo da solução e, em seguida, ele irá iniciar o Visual Studio com tudo fora do cabo que você escreveu aviso. Olá. Mundo está em sua própria pasta em Isso é porque é um projeto. Assim, cada projeto será começar colocando sua própria pasta em todos eles estará em uma pasta juntamente com o nome fora da solução. Então a solução foi programação cônsul, ele criou uma pasta. Então ele me deu uma solução. Arquivo notado. Extensão é que s l N em seguida, para cada projeto, ele me dá uma pasta com esse nome. Então, como eu disse, a nomeação é muito importante. Então esses nomes são dinheiro em jejum lá fora, fora do estúdio visual ligado. Então, se eu olhar dentro desta pasta, eu quero ver um monte fora um pouco rápido. Mas nós vamos voltar para aqueles rápido sobre o que eles realmente são sobre. Isso é tudo para construir um aplicativo de console hello world e entender o visual studio um pouco mais. Em seguida, observamos como escrevemos um programa para receber dados de um usuário e imprimir algo de volta para a tela. 7. Programas de entrada e saída: neste vídeo, vamos criar um projeto que receberá a entrada do usuário na impressão. Alguma saída. Estou começando a partir de nossa pasta onde nosso projeto foi criado. Porque talvez você desligou a máquina. Você foi jantar. Faz dias desde a última vez que esteve no estúdio visual. Então eu só quero mostrar a vocês como você pode relançar seu projeto a partir do sistema de arquivos. Andi, você sabe que não tem que ir para o Visual Studio e fonte para que eu possa apenas voltar para o sistema de arquivos, encontrar a solução e clicar duas vezes que irá lançar resultados para você, e que irá relançar nosso projeto ou com o nosso projeto e tudo o que estávamos fazendo. Então, cada vez que você ir em frente e você corrigir código e você salvar e você re lança solução, ele pode relançar com todas as abas EOD aberto ou os arquivos judiciais e todos os projetos e tudo o que você tem. Agora vamos colocar um novo projeto dentro da solução para que possamos testar nosso direito um novo programa. Então este foi o nosso aviso do programa Olá mundo em um comentário aqui em algum texto estático são algumas tomadas aleatórias. Eu estava dando problemas que veio para a garganta, mas é isso para o mundo Olá. Então vamos passar para um novo. Alguém diretamente a solução. Não, não é o projeto. Isto é um projecto. Eu estou certo. Clique na solução alguns, ou observe que é realmente apenas um incêndio de conflito. Então eu estou certo. Clique na solução em com o clique. Acrescente, então eu vou dizer novo projeto. Em seguida, traz sobre este menu que devemos estar familiarizados com esta caixa de diálogo que devemos estar familiarizados com perguntar. Ok, que tipo de projeto você quer desta vez? Então eu vou selecionar mais uma vez, console up dot net core Clique em próximo. Então desta vez eu quero que o nome do projeto para ser entrada Old coloca saídas de entrada. Isso é um erro ortográfico, então você quer ter certeza de que você está certo. Corretamente, certo? Nomear é importante em. Em seguida, clique em criar em. Então eu tenho um novo tribunal primeiro notado. É uma espécie de padrão para vir com Hello world Hello World é provavelmente a primeira frase de programação que a maioria das pessoas aprenderá quando eles estão aprendendo uma nova linguagem espera para imprimir Hello World na tela. Dito isso, só quero ir à cidade um dia destes. Moto aprecia o que está acontecendo aqui. Então note que eu tenho um novo programa que CS arquivo. Ainda tenho o meu já existente nessa altura. Então não é para enfrentar o erro, e presume-se que ambos eram idênticos. Ambos eram muito conhecidos Ambos tinham o mesmo tribunal em seu Como eu sei qual deles pertence a qual projeto. Então, cada vez que o console aplicativo são projeto. Você está indo para obter o arquivo de ponto CS Andi, ele vai vir com uma função média e vamos apenas dizer que padrão para ele dizer olá Foram estes? Vimos que com o modelo de núcleo darknet, podemos usar esta lista suspensa Olhe em qual projeto ele está. Então esse programa de cessar-fogo pertence ao projeto Hello World. Se eu for para o próximo, você verá que ele pertence ao projeto de saída de entrada. Se eu fechar os dois onda armazena este arquivo que é um arquivo de projeto. Eu não tenho arquivos abertos, em seguida, a partir da solução Explorer, eu posso especificamente ir para o projeto que eu quero e, em seguida, selecionar o programa que o arquivo CS. Tudo bem, então é assim que você pode gerenciar vários projetos. Onda apreciar de onde o fogo está vindo para que você não cometer erros vai bem, você não quer escrever, hum, hum, colocar todas as coisas dentro de fora. Olá Programa Mundial ponto CS em. Então, quando você está correndo, você está se perguntando por que o tribunal não está funcionando? Ou por que não está detectando o código que você escreveu? E isso é só porque ele escreveu no programa errado, que CS 5 Então você quer ser muito cuidadoso e muito atencioso? E à medida que você cria mais e mais aplicativos,aplicativos ainda mais avançados, você terá vários projetos. E à medida que você cria mais e mais aplicativos, aplicativos ainda mais avançados, Eles só querem ter muito cuidado e certeza de onde cada arquivo está. Agora, vamos começar. Eu disse que queríamos escrever algo para obter entrada do usuário, depois imprimir de volta para a tela. Então deixe-me remover o “Olá mundo”. Então vamos aprender algumas coisas aqui. Nós vamos estar aprendendo sobre uma variável para o hotel prompt para entradas. Receba do usuário em três. Como imprimi-lo de volta para a tela. Então vamos começar com variáveis, e eu apenas colocar comentário. Variáveis. Uma variável é como um pequeno recipiente são, e assim quando queremos dados do usuário, temos que criar um contêiner em. Em seguida, usamos isso, ao contrário de armazenar o valor que o usuário nos deu. Então, por exemplo, se eu queria um nome, então eu preciso de uma variável em I'm Faz sentido apenas chamá-lo, nomear o nome fora do meu condado e, portanto, o nome de alguém é nome não estão em então, Além de que, eu preciso definir um tipo. Então, que tipo significa o tipo de dados que eu estou esperando? Então, se eu quiser o nome de alguém, então isso é um texto, porque eu vou escrever cartas, certo? Então, qualquer coisa que seja letras é tipo de texto ou uma string. Então, em C afiado, chamamos tipos de texto. String quando você quer leva de alguém que você precisa de um bolso é que o recipiente, e ele precisa ser capaz de armazenar o que chamamos de uma string ou texto não são assim. Vamos começar com todo nós declaramos uma variável. Vou primeiro definir os tipos de dados O C. Sharp como um monte fora tipos de dados, e é bom saber quando usar qual deles. Então eu apenas nos dar um estudo de caso para a cadeia de tipo de dados. Então eu digo, amarre, então eu dou o nome. Então eu quero alguma variável que é chamado Street agora é chamado nome Desculpe em sua é off cadeia de tipo de dados . Você ainda não notou que você tem algo chamado corda em nossos ovos mais cedo. Então esse era o tipo de dados em nossos ovos seria seus nomes de variáveis. Então, neste caso, estamos fazendo nossa própria verbal dizendo que Ok, declarar um bolso na memória em chamá-lo nome nele deve ser capaz de armazenar qualquer coisa que seja um texto. Então eu quero o nome. Isso é um. Então eu vou ver ser variáveis claras e então você pode ter várias variáveis. Você pode ter quantas variáveis quiser, certo? Mas então vamos manter isso simples. Então, queremos o nome, então eu vou para o pé. Quer armazenar o que o usuário está entrando no console no meu bolso chamado nome. Então eu preciso atribuir os dados que estão sendo coletados a partir da tela do console dentro off necessidade, para que nós nunca queremos armazenar dados dentro do Skonto. Você sabe, nós dizemos conter um nome ou nome de variável. Então este é o nome é igual a on. Então, se eu estiver recebendo entrada, vou ligar para o meu console. Então nós temos esse console de classe. Lembre-se que quando estávamos imprimindo para a tela, tínhamos console como um nome de classe. Então, Cônsul, mais uma vez eu disse ponto e então isso é tudo chamado de inteligência onde ele está me dizendo todas as possíveis coisas que eu posso fazer com minha classe de cônsul. Então, a coisa que quero fazer desta vez da última vez que escrevemos falas. Então, se você rolar para baixo, você vê a linha direita e você vê a direita. Mas desta vez eu quero a linha de leitura do dedo do pé para que você veja que eles têm uma opção. É linhas de leitura. Eu posso clicar duas vezes nisso, e então a linha vermelha está aparecendo porque está dizendo Ok, eu vejo linha de leitura. Mas o contexto que o sol fala não está correto, e isso é porque é uma função, então eu preciso de meus parênteses abertos e próximos. Então posso usar o meu semi-cólon. Então eu disse que iria prestar atenção ao ponto e vírgula. Cada linha que você escreve mais termina com um ponto semi vírgula. Há exceções, mas para não. Vamos seguir essa regra. Cada linha que você escreve mais tem um ponto semi vírgula. Então, vamos ver as exceções à medida que avançamos na cedência. Realmente apenas uma questão de prática para se sentir confortável com quando usar o seu cínico e quando e quando não dedo do pé não. Depois de termos o nome, então você quer imprimi-lo de volta para a tela. Então eu vou para a próxima linha. Então este é Deixe-me apenas colocar os comentários como eu ir junto recebendo valor de entrada ou deixe-me ver. Sim, entrando, armazenando, entrando, armazenando valor de entradas. Muito bem, então é isso que estamos a fazer nesta linha. Em seguida, a próxima linha é o valor de impressão, nossos valores tela do console. Então nós obtivemos o valor em que armazenamos. Sei que queremos uma caixa impressa, então o legal é que posso guardá-la, mudar o valor, e sempre posso manipular o que estiver aqui antes de imprimir o Buck. E esse é o valor de ter a variável. Então não, eu quero imprimir de volta para a tela. E nós fizemos. Já imprimimos a tela. Nós imprimimos Olá Mundo, então nós podemos apenas seguir o mesmo padrão em nós dizemos console encaixado. Lembro-me que a impressão estava na linha certa e ver Inteligência está me ajudando a escrever linha, e então é uma função. Então eu preciso das minhas teses RN e, em seguida, o tribunal deles me insinuando e me dizendo isso. OK, o que você precisa aqui dentro é um valor de string. Então nós colocamos hello world dentro de aspas e isso é o que a string é seu texto. Como eu disse. Então, sempre que se toma, precisamos abrir e fechar aspas em que podemos digitar qualquer coisa que queremos qualquer sequência alfa-numérica e os caracteres especiais querem. Uma vez dentro das aspas, C afiado dirá: “ Bem, Bem, isso é estático. Não devo tocar nisso porque é isso que meu mestre é você que quer que eu imprima o dedo do pé . Tudo bem, então eu vou remover isso e eu vou para que eu possa colocar a frase, você sabe, você sabe, qualquer coisa que eu quiser. Nós dissemos olá mundo última vez, Mas o que eu quero imprimir não é estático Eu não quero determinar o que eu estou imprimindo aqui porque eu estou recebendo algo do usuário em. Quero imprimir o que o usuário me deu. Então, em vez de usar minhas aspas. E se encontrar você sabe, isso é uma estática de baixo custo, certo? Então está em êxtase. Não pode ser alterado contra se eu digitar hello world e hello, ER será impresso. Se eu digitar meu nome manualmente, então obviamente eu estou ignorando o que foi inserido através do console porque qualquer um pode vir e usar este programa. Coloque em que nome sobre isso sempre apenas imprime viagens ou Williams, independentemente do que valores dentro do nome. Então o que queremos fazer é imprimir o valor dentro fora do nome para a tela no quando isso é feito é realmente colocar os nomes das variáveis, então console essa linha direita em. Então colocamos o aviso muito brando. Mais uma vez, precisamos de um valor de string, mas temos uma variável de string. Então há duas maneiras de obter a corda. Podemos usar um significado estático. O que quer que aconteça aqui nunca mudará até eu voltar ao tribunal e mudá-lo, ou eu posso usar uma variável off type string. Tudo bem, então eu acabei de declarar uma cadeia de tipo justo acima. Recebeu alguma entrada de string de algum usuário em. Vou imprimi-lo de volta para a tela. Então, mais uma vez, cada linha curiosamente, Colon, um estúdio visual C semi cínico e é esperado. Então eu coloquei que eles estão ligados. Então eu simplesmente não aviso que o começo ainda tem o mundo do olá. Então, se eu executar o problema apenas indo para imprimir Olá Mundo, ele vai apenas executar o Programa Olá Mundo. Temos vários projetos e neste momento eu quero executar entrada ou colocar em não Olá mundo. Então o que eu preciso fazer é mudar o início do projeto de Hello World para saída de entrada. Então eu vou clicar com o botão direito na saída de entrada em, em seguida, selecione a opção para cima que diz dito, iniciar definir como iniciar um projeto. Então eu clique nisso e eles notaram que isso não há ousadia então antes do inferno bordo de Carlos. Não, este é ambos. Então essa é uma maneira agradável e rápida de saber qual é o início do projeto no aviso que contextualmente o texto do botão Iniciar também mudou. Então eu posso apenas clicar na arte de saída de entrada. Então o meu programa começou e vai ficar lá com uma tela em branco, piscando e esperando. Então o que ele está fazendo é esperar na linha do leitor. Então já declarou o nome. Você não vai ver uma pista visual da variável sendo declarada. Você está indo para sempre. Linha de leitura vai apenas esperar até que eles são alguma entrada, seguido por uma tecla enter. Então se eu colocar em deixe-me colocar ah, fictício perto de Archibald Gordon em, então eu pressione Enter. Então ele é executado. Vejo Archibald Gordon imprimindo. Mas a tela Não, isso não é muito intuitivo porque estava apenas em branco. Você está esperando o que exatamente não estava esperando? Então, é sempre bom dar ao seu usuário uma dica visual para dizer, Por favor, digite seu nome ou algo assim, certo? Então o que eu vou fazer é acima desta linha onde eu estou recebendo dados, eu vou colocar um console terra direita para imprimir para tela o prompt. Então nós temos este um prompt para console ponto linha direita, chaves abertas ou parênteses abertas. Então eu quero que o texto estático que vê digite seu nome. Então eu estou dizendo, por favor, eu posso dizer por favor digite qualquer make e qualquer que seja o seu prompt, é tão obviamente, sempre que você executar um programa ou você usar um programa quando você está se sentindo fora de uma fazenda no Internet, o que quer que esteja fazendo em um computador, eles sempre te dão uma dica visual para dizer, “ Esta é a data que eu estou esperando de você, certo? Não. Então eu estou vendo digitar seu nome e, em seguida, esta linha precisa antes do melhor nos dois pontos em. Então vou esperar que digas o teu nome. Depois que fizer isso, vou imprimir seu nome de volta para a tela. Então vamos tentar de novo. Tudo bem? Então não, ele diz, digite seu nome porque ele rodou a linha direita do console. Introduza o seu nome. Eu sei que ele está esperando por mim para inserir algum valor somático e armazená-lo dentro da minha variável em, em seguida, impresso de volta para a tela. Então desta vez eu vou usar Kim arma de alimentação antecipada, e então eu vou pressionar Enter on. Então você percebe que imprimiu a figura de Kimberly e volta para a tela. Então não, ainda não é muito intuitivo porque eu não sei qual deles é qual. Tipo, Ok, eu estou olhando no console como Kimberly Figura e eu apenas vejo repetido. O que? Para que é a repetição? Não é muito intuitivo. Eles sempre querem colocar em dicas visuais, queridos usuários para que eles saibam exatamente o que eles estão olhando em cada ponto. Então, eu só vou fechar isso na ferida. Então o que eu vou fazer é Putin outro console, terra direita ou colocar mais texto nesta linha direita console para garantir que esse contexto só você sabe exatamente o que você está olhando. Então o que eu vou fazer é adicionar outra linha direita console e, em seguida, desta vez realmente vai fazer console, certo? Então você tem ponto console eu tenho linha direita, mas você também tem direito? Então eu vou fazer o nosso direito e mostrar-lhe a diferença na direita na linha certa. Então, a direita vai ver o seu nome está ligado, então semi-dois-pontos em. Então estamos escrevendo mais uma vez para o console, o nome que foi inserido. Então vamos tentar de novo. Tudo bem? Então, não, dizemos para digitar o seu nome, então está bem. Desta vez é Paul Oficial e depois entramos primeiro. E então vemos que seu nome é Colon Paul Bishop. Sem notar que quando fizemos consola essa linha direita, ele foi automaticamente para a próxima linha e esperou por texto. Quando fizemos o Hans mais velho, certo? Ele só fez isso em uma linha em. Então, o que mais queríamos ainda está nessa linha. Então essa é a diferença entre a linha direita e a direita. Linha direita Automaticamente. É quase como se você tipo de frase no Microsoft Word e pressione. Entre e vá para a próxima linha. Isso é o que a linha direita faz para você automaticamente apenas coloca o próximo bloco fora de texto na próxima linha automaticamente, entanto, direita não vai atender a essa quebra. Ele vai. Qualquer outro fluxo que deve ser impresso será impresso na mesma linha nessa linha. Você sabe que é o texto wraps, você sabe bem, deve saber o que palavra wrapping é assim até que as quebras de texto estão na tela, tudo bem. Trabalho. Então essa é a diferença é você e consola que direito no console. Essa linha direita. Então é isso para a saída de entrada. Então vamos fazer uma revisão rápida. Um que aprendemos sobre a declaração de variáveis. Mais uma vez, existem muitos tipos de dados que as variáveis podem ter. Só estamos mantendo isso simples. Estamos apenas a começar. Então eu estou apenas usando string onde eu coletar algum texto e armazenar dentro de alguma variável chamada nome. Em seguida, eu peço ao usuário para que ele digite seu nome em, em seguida, uma vez que ele entra. Então é assim que obtemos entrada do console. Nós atribuímos automaticamente à nossa variável. Tendo obtido e armazenado esse valor do usuário, então prosseguimos para dizer que seu nome é para que nós estamos imprimindo de volta alguma frase estática. Isso é dar-lhes uma dica visual sobre quais são os dados que estamos imprimindo. Então estamos vendo que seu nome é Colon. Este texto nunca mudará sobre este assunto. Eu mudei no programa, mas então nós imprimimos dinamicamente o nome que foi inserido porque estamos imprimindo de volta o valor na variável. Na próxima lição, vamos passar por mais alguns tipos de dados em C afiado em. Observe os requisitos entre a coleta de dados do console para esses diferentes tipos de dados . Andi imprimi-los de volta sobre o que conversões precisam ser feitas. 8. Tipos de dados de C#: Ei, pessoal, bem-vindos de volta. Então desta vez eu vou abrir meu projeto para usar a interface do Visual Studio. Então eu abri o estúdio visual e, em seguida, para a esquerda lá, mostrando-me todos os projetos recentes que eu fiz. Então eu vou apenas selecionar este meu projeto na lista. Eu também posso fixá-lo porque talvez, você sabe, ter um monte de projetos trabalhando em. Quero que este esteja sempre no topo, para que eu possa girá-lo. Então eu posso simplesmente ir em frente e clicar nele e abri-lo em que o estúdio visual vai lançar com meus projetos. Então, o estúdio visual está nos colocando de volta onde paramos, que foi quando estávamos fazendo o programa de entrada all put. Mas desta vez vamos olhar para alguns tipos de dados. Então eu vou criar um novo projeto para que eles sejam estritamente a solução. Ir para adicionar, Em seguida, selecione novo projeto. E, em seguida, quando o console aparece ou a caixa de diálogo aparece, eu apenas seleciono console up dot net core e, em seguida, clique em próximo. Então desta vez o nome do projeto que eu quero é variáveis e dados, tipos de variáveis Andi tipos de dados e, em seguida, clique em criar. Não, eu disse que a apreensão possui uma ampla coleção de tipos de dados. Existem tipos de dados simples em há tipos de dados definidos pelo usuário. Então os básicos que você tem com todos esses tipos de dados simples que são como a string e, você sabe, para números. E agora vamos passar por alguns deles. Dito isto, há muitos. Então eu não vou passar por cada um no Git ao longo do caminho que podemos acabar usando um são poucos que nós não cobrimos neste vídeo. Então eu vou passar pelos básicos que você definitivamente vai precisar saber. Mas à medida que avançamos, você vê outros que contextualmente você pode precisar. Eu também quero salientar que C afiado é o que você chama de uma linguagem fortemente digitada. Então isso significa que se você estiver indo para declarar uma variável que deve conter texto, então ele vai tratá-lo como texto. Então, se eu colocar um como no numeral dentro de uma variável de texto, ele não vai tratá-lo como um número dois fazer matemática com ele. Então você tem que escolher seus tempos de dados com muito cuidado com base em qual operação você deseja realizar. Então vamos começar. Então nós vimos string. Então deixe-me dizer declarações de variáveis sobre o tipo alguém para usar esta seção Basta definir algumas variáveis. Onda Nós podemos olhar para o que eles são Então uma corda. Então nós passamos por uma corda já String on. Eu fui ver o nome, então talvez você queira coletar a idade também saber se vamos armazenar a idade de alguém como corda? Ou vamos guardar a idade deles como um número? Porque se eu te disser, eu tenho 10 anos e então você quer fazer um pouco para dizer OK como uma criança de 10 anos, isso é matematicamente buraco. Você vai estar em X Y Z ou algo assim. Sabe, talvez queira fazer uma operação matemática. Você não pode usar uma variável de string por meses. Então você quer usar o que você chama um int tão em abreviação para inteiro em que um em indígena basicamente um número que não tem casas decimais. Então, se você colocar um número decimal dentro da idade como você diz lá, 22,5 anos de idade porque e ele vai ignorar o 0,5. Você tem outras variáveis que então eu provavelmente poderia fazer uma. Isso é um salário. Então eu poderia dizer aipo duplo, então o dobro tomará uma vírgula decimal. Tudo bem. Você também tem outro tipo de dados chamado Float que faz isso mais pontos. Mas então, baseado no número de casas decimais, você sabe, o que é onde eles são realmente diferentes. O número de casas decimais na precisão que é uma carga em termos mais simples. Você sabe, você pode ter como um vôlei como torta, que todos nós sabemos como um decimal é 3.1 para algo algo, algo, algo algo algo duplo em flutuar me acabar armazenando valores diferentes porque um será mais preciso do que o outro. Você também tem o que você chama de “char”. Então char é abreviação de caráter. Onda char suportável é geralmente usado para um único não costuma usar. Ele é usado desculpe por um único caractere. Então, um estudo de caso Oh, nosso caso para isso seria como sexo, certo? Então, acuse o sexo. Ou você é M ou F outro tipo de dados básico muito popular. Hum, que nós veríamos é barras de ouro. Então nós temos touro, e então eu vou usar este aqui para dizer que trabalhar Sobule significa sim ou não. Ou é verdade ou cai bem. Você vê o um ou zero. Não há outro valor que possa entrar dentro de um touro. Mas verdade são quedas, então vamos recapitular rapidamente. Então temos o nome da string, então string leva texto. Ele leva qualquer coisa que é, ele pode levar qualquer muitas vezes numérico na combinação de caracteres está apenas indo dedo do pé. Receba algo e imprima de volta. Você não pode fazer nada sobre os números que você colocou lá. Você tem que fazer conversões. Embora seja relativamente fácil fazer conversões, eu apenas recomendo que você use a variável certa quando precisar dela para uma determinada coisa. Então, se temos uma corda, é claro que não é para fazer nenhum mês. Se temos um número inteiro, é porque você quer um número. Então não estamos à espera de casas decimais. Se tivermos um duplo, isso significa que podemos obter um número e podemos ter casas decimais. Nós temos char porque você está esperando um personagem, este personagem pode estar fora de qualquer transpiração. Significado pode ser uma letra, um número, um caractere especial. Mas só vai ser um, então você pode colocar seu nome dentro de um char. Certo, então, para este exemplo, vamos aceitar M ou F para gênero. Então temos o direito de barras, que só pode ser verdade ou cai. Agora, acabamos de encerrar uma sessão sobre pedir aos usuários, então o que eu vou fazer é a partir deles por seu nome, sua idade, seu salário, seu sexo, Andi, se estão a trabalhar ou não. Então eu só vou fazer cerca de dois deles. E então vou permitir que você tente fazer o resto. Então vou dizer que o console não está ligado. Lembre-se, temos a impressão do dedo do pé na tela. Ei, estou te pedindo esses dados aqui. Certo? Então eu vou usar direito em. Então você vai ver a diferença nos problemas quando eu uso direito em vez fora da linha direita. Mas então eu estou pedindo nomes desta vez. Eu vou dizer digite seu nome Colon em. Então, depois disso, eu vou dizer nome deve obter o valor dos consoles. O nome não é igual ao console que lê linha na doença de queimadura aberta e fechada. Esse é o aviso de nome, certo? Não, para agilizar esse processo, eu posso copiar se eu quiser eu posso esta cópia essas duas linhas vão para baixo e em pedaços. Depois mudei todo o texto, por isso pedi o nome. Desta vez eu quero idade e, em seguida, o padrão é o mesmo. Tudo o que tenho a dizer é que é igual a consola que lê a linha. Sem aviso prévio. Estou recebendo um erro quando estou pedindo a idade. Tudo bem, e então é aí que nossas conversões entram em jogo. Então eu disse que isso é tipo de dados variável e conversões, certo? Então, nesta situação, ele está vendo que há um erro não pode implicitamente converter string de tipo para int. Não, isso não recebeu essa era porque o console que linha de leitura está recebendo alguma entrada de teclado do console, que ele está transportando a variável na forma de uma string. Então, nesta situação, eu disse que fortemente tipos que eles podem colocar ah, palavra dentro de fora são variáveis. Isso é esperar um número. Então esta variável numérica está esperando um número para ser inserido, mas o mecanismo estava usando para obter os dados está transportando uma string. Então isso é um problema, certo? Então, não, temos que executar o que chamamos de conversão onde aceitamos a string convertida para terminar. Mas tudo isso antes de entrar na variável. Então o que eu vou fazer é sério isso e eu vou reescrever esta linha passo a passo. Então C Sharp nos dá ferramentas para converter literalmente. Eles nos dão uma classe chamada converter para que possamos escrever a palavra converter e, em seguida, dizer ponto em Então nós temos um número off conversões disponíveis para nós. Podemos converter em 32 no dobro, para o tempo, todo tipo de coisas. Então eu quero terminar 32 em, então eu abro. Então esta é uma função. Tudo bem? Eu sei. O que sabemos Functions? Porque eles têm doença dos pais aberta e próxima. Em seguida, dentro desta função, causa aviso ainda é como uma linha vermelha. Dizendo que espera algum valor. Tudo bem, então, não, eu preciso dizer o quê exatamente? Eu quero converter em O que eu quero converter é a entrada vinda do console. Então eu vou chamar o console que ler linha quando ele chegar lá vai prometer que o usuário vai pausar, obter a entrada quando o usuário pressiona enter. Então lembre-se que isso pausa para entrada até que ele veja enter. Uma vez que a pessoa pressiona entrar, é então ir dedo do pé, convertê-lo em um 32 bits assinado em Joe. Tudo bem, então só as coisas. E assim eles estão vendo. Coloque-o em um inteiro ligado. Você disse isso até ver o dedo 32 em 32 2 em 16 e você pode ter visto nos números. O fato é que, quanto maior for o número, mais bits necessários, certo, então 32 é praticamente padrão. Podemos deixá-lo com 32, então, então, uma vez que é convertido do que é atribuído à nossa idade. Verbal, notei que está tudo bem no universo. Não há mais erros, então vou fazer o pulso. Ainda não vou fazer conversões. Eu vou fazer uma pausa aqui e eu estou com eu amo você para tentar e corrigir os problemas para cada um fora das outras três variáveis. E então podemos olhar para as flechas potenciais juntos. Tudo bem, Siro, o resto dos meus problemas e eu mudamos isso leva de acordo. Interesse, aipo, entre em seu gênero. E então para aquele com trabalho, eu meio que mudei o Burbage porque mais uma vez, você quer dizer ao usuário que tipo de besouro você está esperando deles. Então você não quer deixar isso para eles no pé dentro para o que eles devem estar colocando em. Então eu disse: Você está trabalhando verdadeiro ou falso? NC. Passei injustamente, tão verdadeiro ou falso. Então estamos esperando que eles digitam a palavra ou a palavra cai. Mas, o mais importante, observe quantos erros temos e a mesma razão pela qual tivemos a era há muito tempo. Pela mesma razão que estamos tendo esses erros, porque console que linha de leitura está girando uma corda. Mas a corda não pode ser colocada no reboque. Um duplo assim. Ele pode ser colocado em nossas cargas assim e pode ser colocado no reboque. Ah, valentão. E assim, e como eu disse char, notei que eu não disse explicitamente a eles que eu estou esperando M ou F. Então, se uma pessoa entrar na palavra macho ou a palavra fêmea, então isso causará um problema. Porque isto só está à espera de um personagem. Uma letra, 11 nem uma palavra, certo? Então eu vou ser um pouco mais explícito com este problema. Eu vou dizer M ou se tudo bem, então com tudo isso não sei, vamos corrigir essas conversas sobre problemas. Então é a mesma coisa. Só temos que dizer Converta ponto para dobrar lá. Temos que dobrar. E então o que estamos convertendo? Estamos convertendo consola que lê linhas. Então abri os parênteses aqui. Eu preciso ter certeza que eu fechá-lo. Então este é um Aero Open comum. Pode muito bem levantar-se e ir tomar café. Volte lá. Então olhamos para a sua vez, eu diria, “ Oh, não, está fechado porque há uma próxima, mas não estamos prestando atenção, certo? Então é sempre bom abrir e fechar na mesma varredura, e então você pode se distrair depois. Isso pouparia muita dor de cabeça. Então lá vamos nós. O dobro é, hum desculpa. Vendedor está esperando um duplo. Então nós estamos recebendo a entrada do console, que está vindo como texto convertendo-o para o dobro. Então, se ele tem casas decimais ou não, ele vai tratá-lo como ele faz em. Então ele vai colocá-lo em nosso duplo. Para char Nós convertemos, não toque. São assim que você tem um convertido para quase todos os tipos de dados individuais que está em C afiado. Certo? Então você tem alguns tipos de dados têm algumas maneiras de convertê-los. Andi, espero conhecer seus aliados que vi casos importantes quando criamos nossos projetos. Bem, na própria língua, caso isso importa. Porque se eu escrever convertido como ah com um C maiúsculo que nunca vai funcionar porque ele não sabe o que converter a sé comum? Desculpe. Se o Iraque se converter com uma sé comum, ele não sabe o que é isso, então ele só vai detectá-lo quando eu aderir às regras rígidas e usar meu maiúsculo C para converter, não cônsul converter em. Então eu disse isso e então eu tenho barras de dedo como uma opção e então eu abro parênteses e então eu me certifico de fechar meu parêntese. Lá temos nossas funções. Nossa corte é nossa promessa? Pegar dados e armazená-los nas diferentes variáveis? Não. Depois de fazer tudo isso, quero imprimir o perfil desta pessoa de volta à tela. Então eu vou fazer uma pequena diferença aqui com a minha impressão na tela. E vamos chamar isso de concatenação. Então este é o processo de união de cordas tão cedo eu teria um console direito que imprimiu a string estática e, em seguida, outro para imprimir a variável. Desta vez eu só quero o que, direito um console que direito sobre. Estou imprimindo a corda estática. Vendo seu nome é Colon em. Então eu estou colocando a variável dentro fora que ela é impressa automaticamente, certo? Portanto, há muitas maneiras de fazê-lo. Vou mostrar que pode ser a maneira mais fácil agora. E à medida que avançamos, provavelmente farei do outro modo para que possamos levantar e correr. Na verdade, acho que temos dados suficientes para imprimir o dedo. Olhe para todas as técnicas de concatenação. Eu só vou passar por todos eles. Então eu estou indo para a direita O primeiro 1 Desculpe. Imprima o nome de alguém para ver. Pontos de console, direita, parênteses abertas. E eu apenas o meu cínico no mesmo tempo, todos códigos de forma diferente. Eu só gosto de fazer isso ao mesmo tempo. E então eu quero dizer que seu nome é Colon, e então eu posso usar um sinal de mais para que todos saibamos que o sinal de mais é usado em matemática. Certo? Bem, quando estamos falando de cordas e frases de impressão estão imprimindo para a tela, podemos usar o sinal de mais para dizer, eu quero adicionar este bloco fora do dedo do pé de texto, qualquer outra óptica de bloco, eu pode ter tantos blocos fora de texto quanto eu quiser e fechar termina no meio. Tudo bem, eu posso fazer isso. Mas nesta situação, o que eu quero adicionar a este bloco estático fora de texto é o valor que está dentro dos nomes. Compreender? Dizer que seu nome é texto estático. Fechar o nome. Então isto é uma concatenação. Então isso irá imprimir uma linha dizendo que seu nome está em qualquer valor foi coletado do usuário no momento fora da entrada. Tudo bem, então eu posso apenas duplicar isso ou não vou me deixar escrever outro. Então o console não está certo. Então. Desta vez quero imprimir a sua idade. Então, cada um está com cólon. Então a próxima maneira que eu posso inventar em comer é usar como espaços reservados e amassar. Não apressar variáveis demais esses espaços reservados. Então, quero dizer, deixe-me apenas demonstrar aqui. Então eu estou indo para as bibliotecas de carros abertos usar um espaço reservado em que zero e, em seguida, fechar carnívoro em. Então o que vai dizer é que sei que preciso imprimir seu nome. Então eu vou imprimir este texto estático. Mas então isso, como eu disse, está agindo como um espaço reservado. Então eu preciso definir algo que deve ser colocado neste suporte lugar. E o que eu faço é depois do bloco de texto que eu pressiono vírgula. Então eu posso inserir uma variável. Então a variável que eu quero ser inserida no espaço reservado é idade. Tudo bem, então eu vou imprimir o salário para a tela. Então o mesmo tratamento console Não está certo. Então desta vez vou fazer o que chamamos de interpolação. Certo. Então este eu vou começar com um cifrão no início da cadeia. Então é sinal de dólar abrir e fechar aspas. Então vou ver o sinal de dólares. Seu salário é de cólon. Então a interpolação me permite usar chaves abertas e fechadas e escrever o nome da variável bem ali dentro da string estática. Então é salário. Então eu tenho uma string estática. Só tenho a certeza dos ciclos do dólar sem o sinal do dólar. Então ele vai parecer mais com o código de espaço reservado, certo? E isso não seria desejável. Então, com o cifrão, em vez de usar um espaço reservado, eu estou apenas abrindo a chave e colocando a variável em si dentro da minha cadeia contínua . Contiguo significa contínuo. Certo? Então, toda a cadeia é apenas um bloco Onda que temos ou variável sendo processada dentro disso. Então, a retomada em todos estes eu posso garantir que este vai funcionar neste um definitivamente vai trabalhar o baseado na versão fora do framework dotnet que você está usando em que influencia a versão off c sharp que você está usando. Você pode ou não ter acesso à interpolação, certo? Então é por isso que eu disse, há muitas maneiras de fazê-lo, e é bom entender sobre apreciar a esperança. Mas garanto que se estes dois não funcionarem, este definitivamente funcionará. E se este funcionar, este definitivamente vai. Então você pode escolher sua escolha de batalha qualquer que você mais gosta. A Andi. Mais especificamente, qual de um deles realmente funciona em seu contexto. Então eu estou indo, prossiga com o simples que eu sei que funciona universalmente nisso. Só vou me certificar de imprimir as outras duas variáveis. Então este vê que o seu sexo está ligado. Então estou imprimindo gênero. E então o próximo vê, você está trabalhando? Você está empregado? Você sabe que você está empregado e esperamos ver verdadeiro ou falso assim do que trabalhar. Tudo bem. Agora tudo isso vai imprimir como um grande bloco fora de texto. Vai parecer nojento na tela, mas vou te mostrar o porquê. Então vamos testá-lo Além disso, meu projeto inicial precisa ser definido variáveis e tipos de dados diretamente. Variáveis e tipos de dados definir um início de um projeto em, em seguida, ir em frente e começar. Tudo bem, então vamos fazer ou programar para um test drive. Então eu vou ver um usuário de teste é o meu nome. Tenho 22 anos. Meu salário é 2500,30. Pressione Enter. Meu sexo é entrar em dez centavos. Eu ando trabalhando True, eu estou trabalhando e quando eu pressionar Enter, você vê isso? Ok, só temos um longo mentindo tudo em uma linha. Sem espaços. É muito difícil de ler E isso é porque nós escrevemos com console esse direito e não consola essa linha direita. Tudo bem, então é por isso que temos que ter muito cuidado quando estamos usando Console que direitos e consola essa linha direita. Então eu só vou mudar este console de aveia que a linha direita e eu posso apenas copiar e paz Ondo a colocação mestre em. Então vamos correr de novo. Onda, veja como fica a abertura. Então começamos com nosso nome com a usuária estatista feminina. A idade dela é 23. Seu salário é 5000 moedas por ele ou cinco. Aqueles acabam cerca de 500. Gênero é “se “ , então, ela vai para desempregada. Então trabalhar é falso. Então. Quando fazemos isso? Não, vemos a impressora muito melhor. Temos uma linha Perbet desligada. Informação notada. Temos o nosso texto estático ligado. Então ele está imprimindo de volta. O valor é assim que a conversão foi quase que realmente só precisava ser uma maneira porque notar que um console está imprimindo de volta os valores e não tivemos que converter de char para corda Onda. Não tínhamos que fazer isso. A concatenação na corda, certo? Então é rigoroso em alguns aspectos e é flexível em alguns. Então, mais uma vez, quando estamos coletando a string do console terá que convertê-lo em qualquer coisa que comeu uma variável de tipo que está recebendo os dados está tudo bem. Então temos que fazer em conversão para armazenar o duplo int para armazenar o duplo, etcetera, etc. Mas depois estávamos imprimindo de volta para a tela. Nós não precisávamos converter desse tipo de dados para string para obtê-lo bem anexado à nossa string. Certo, então tudo quando está imprimindo, ele só vai contexto dizer “ok”. Sim, eu sei que isto é um ouro, mas deixa-me imprimir 9. Operadores em C#: neste vídeo, nós vamos estar olhando para os diferentes operadores que estão disponíveis para nós em C. Sharp. Não, eu já fui em frente e criei o projeto em Guy chamou de C. Sharp Operators mais uma vez tentar evitar quaisquer caracteres especiais ao nomear seus projetos em soluções em DE. Então eu só usei a palavra afiada em vez do caractere especial, que parece um sinal numérico, certo? Então, operadores afiados C e eu já tomamos a liberdade de escrever em algumas coisas. Nas funções principais, eles podem pausar o vídeo, tentar criar o projeto você mesmo e colocar esses comentários, e então você pode retomar quando terminar. Nenhum operador é símbolos que são usados para executar com operações literal. Tudo bem, então em qualquer linguagem de programação você tem acesso a esses operadores. Quando você quer fazer coisas que matemática sobre, você tem outras categorias? advogado deles fazia coisas que comparavam? Mas para esta introdução, operadores de reboque, eles só vão estar lidando com aqueles que são provavelmente mais matemáticos em. Precisamos saber se nada mais. Então vamos começar com o operador de atribuição básica. Então temos usado isso já em exemplos anteriores, e que é usado quando queremos dar algum valor de variável. Então, se eu tiver uma variável, é no Gnome, então eu quero gnomo toe ter o valor off cinco. Então eu quero dizer Numb, Você é atribuído o valor cinco. Então isso é realmente o que é. Está realmente em missão. Então, um sinal de igual é realmente visto como uma tarefa. Certo, então estamos colocando o valor de cinco dentro da nossa cerveja. Estamos atribuindo o valor de cinco dedos são gnomo variável. Certo, então esse é o básico. Uma muito fácil. E nós sempre podemos apenas escrever um console pontos linha direita apenas para provar que ele funciona. Então eu estou indo apenas para ver um valor atribuído sã para variável. Tudo bem, , então vou usar minha interpolação, então devemos saber como inventar sua corda já. Então, já que eu tenho este disponível para mim, este é o que você vai ver musa com mais freqüência do que não, hum, caso contrário, use aquele que é o seu idioma ou o seu framework dotnet suporta. Então, mais uma vez, usamos isso um sinal de valor dedo do pé. Um variavelmente pode ser várias variáveis com várias atribuições. Pode ser um valor estático, então estático significa que eu tenho gravado em significado, eu coloquei cinco. Então isso nunca vai mudar a menos que eu volte para esta tela em mudar as apostas de 5 para 10. Essa é a única maneira de isso mudar. Mas então é isso que o torna estático, enquanto que quando estamos atribuindo valores a partir da entrada do usuário, ele o torna mais dinâmico em. Mas o princípio da atribuição não muda. Tudo bem? Não, vamos passar para o operador aritmético. Então, para a aritmética, os operadores costumavam realizar os operadores costumavam realizaroperações matemáticas. Então eu vou definir duas variáveis diretamente em X, e então eu vou mostrar a vocês que você pode realmente fazer uma declaração na atribuição em uma linha. Posso dizer que em X é igual a cinco. Andi em twi Easy quarto 10 bem ali. Então, em vez de dividi-lo em duas linhas, eu poderia apenas ver em qualquer variável é igual a qualquer valor que eu quiser. Faça isso em uma linha. Então essa é outra forma de fazer sua missão, certo? Mas para esta seção, quero que fiquemos alguns meses. Então eu vou passar por diferentes exemplos e vamos imprimir a tela. O diferente tudo vem da mesquita que estamos fazendo com isso. Então eu fui dizer console, não pontos de console. A linha direita é igual a Andi para cada linha. Vou entrar no dedo do pé. Use minhas interpolações, então eu vou ver um cifrão aberto e fechar aspas. Então eu vou começar com a edição, mas vamos passar pela adição de exemplos diferentes em então eu estou mostrando o resultado fora. Em operação adicional entre X e Y. Soto. Adicione X e Y. Vamos literalmente usar o sinal de mais. Então lembre-se do abuso afundado por razões de concatenação também, mas é uma forma do que chamamos de polimorfismo, onde o sinal de mais tem vários propósitos. O sinal de mais é ver aqui que estou adicionando dois números. Então faça alguma matemática, enquanto que no contexto de uma string, quando você vê bloquear string, close, string variável, é ver que estou adicionando à string. Então, tecnicamente, é a mesma adição. Mas o resultado vai ser diferente porque não esperamos ver 510 No final desta operação, esperamos ver 15 Onde enquanto que se houvesse cordas do que você vê 510 Então é mais baixo sobre ele. Só saiba que isso é aritmética. É assim que estamos adicionando dois números. Então isso é tudo o que adicionamos. Eu só vou duplicar esta terra porque eu quero mostrar uma subtração, multiplicação e divisão em. Então esse chamado de modelos, certo? Então eu estou apenas indo para duplicar este console que terra direita segurando o controle e pressionando D. É uma maneira agradável, rápida de duplicar suas linhas no Visual Studio. E então eu vou apenas mudar o Então Então isso é subtração em, então. Subtração. É o lado menor. Tudo bem, então onde eu não explosivo, eles estavam subtraindo X menos y então qualquer um que entenda bater matemática básica, isso não deve ser um zero fora, por favor, para que você entenda. Então multiplicação. Usamos o asterisco. Não usamos o X. Sabe, quando escrevíamos no papel, usamos especialistas. Como você pode ver, X estará nos vendo X. Então, se você quiser o operador que lida com a multiplicação. Precisamos usar o asterisco ou estrela antes de fazer a divisão, então, bem, a maioria, se não todos os teclados. E o que vai se arriscar e dizer sem teclado? A divisão assinou a forma como escrevemos nas pessoas. Então, para a Divisão, eu tenho que usar sua barra. Assim, a mesma barra usada para os comentários é a mesma barra que você usa para uma divisão. Mas obviamente você está usando um deles. Porque se eu costumava, então isso vai começar alguns comentários, certo, certo, então uma barra que é a divisão. Então isso está dizendo que x r cinco vai ser dividido por porque são 10 Tudo bem, Nós temos modelo ISS, e então modelos é o lado percentual, então isso é basicamente uma divisão, mas então este modelo vai devolva o restante. Certo? Então, por exemplo, se eu disse comida dividida por um você sabe o que, deixe-me realmente mudar dito, eu possa um com impresso oh, para tela você vê exatamente o que eu estou dizendo. Então vamos dizer que este é três sobre isso é certo. Então, quando dizemos três divididos por dois. Vamos voltar um ponto qualquer, certo? Esse é o 1.5. Serei o decimal, certo? Mas então, se eu disse modelos, ele vai retornar um porque dois vai em 31 tempo com um restante fora um. Certo, então essa é a diferença entre a divisão e o modelo é que o modelo s retorna para permanecer lá fora da divisão. A operação na Divisão tentará dividir alguém para fazer uma pausa aqui. E eles estavam indo para a operação e ver exatamente o que está acontecendo. Então, normalmente vamos para cá. Nossa solução é para o projeto principal real insiste que um início de um projeto. Mas você provavelmente já descobriu a maneira mais curta de fazer isso por não em que é selecionando a partir deste caiu apenas. Então estamos ao lado do botão Iniciar. Há uma lista suspensa com todos os projetos e pode apenas ver qual deles você quer, e então vá em frente e pressione Iniciar. Tudo bem, então na tela, estamos vendo os resultados de nossas operações aritméticas. Então, estamos assinados. O valor que é o primeiro 1 em seguida adição é cinco vai. Três mais dois é cinco. Subtração é um, multiplicação é seis, divisão é um e modelos é um. Então, porque ambos estão devolvendo um, você não está realmente vendo o PO fora de modelos. Então eu vou mudar isso. Eu vou usar Eu quero trocar esses números, nosso próprio alguém para usar três. Vou usar um valor como esse. Então, pelo menos você sabe que quando atingirmos os modelos não estarão vendo o mesmo para a divisão e o mesmo para os modelos. Mas na verdade, você vai se arrepender. Thomas é meu dever de dormir. Agora deixe-me tentar 11. Então 11 dividido por três vai ser três vezes. Mas então espera-se que a Perda Mahdi retorne porque isso permaneceu desta operação de divisão . Então vamos tentar de novo. Tudo bem, então aqui vamos nós. Então estamos obtendo valores diferentes porque, bem, bem, mais uma vez, é X e y, e o que quer que coloquemos como vício X e Y influenciará a matemática que está sendo feita. Então três mais 11 é 14 3 de 11. É isso. Ou se vou ler exatamente como escrevemos, que 11 mineiros. Três deixa multiplicação. Ou seja, 11 vezes três divisão que é 11. Dividido por três é três. Então ele entra nele três vezes por avisos retornando apenas um int. Tudo bem, então eu digo, me dê os modelos para que ele esteja voltando para casa qualquer que você conheça, o restante da operação da divisão fora 11 no terceiro dia. Não, certo? Não, estamos adicionando duas variáveis. E se quiséssemos adicionar uma variável ao valor? É difícil em si, bem como outro valor. Então, para mais contexto, eu queria adicionar o que X está em. Adicione mais quatro a ele. Então, seja qual for o valor X, eu quero adicionar quatro a ele. E esse deve ser o novo valor fora do X. Então isso significa que eu teria que fazer algo como X não é atribuído. O valor ou X é igual a si mesmo a Los quatro. Certo? Então vou fazer isto depois desta operação. Então 11 3 esses são os valores em. E então o assunto será feito com o vírus fora 11 e 3. Mas então eu quero mudar o valor de X para ser quatro a mais do que era quando o foi inicializado pela primeira vez , certo? Então, não, eu estou adicionando para qualquer valor que X tinha porque X é muito, mas eu não sei o que ele tem em algum momento, então eu tenho que mantê-lo na matemática. A Andi. Então, depois que a matemática é feita, eu atribuo a si mesmo para que com isso feito, eu vou apenas usar este console linha direita, e então eu vou ver um novo valor fora do X. E então eu sou apenas imprimindo X na tela. E então, só para provar isso, isso lhe deu um novo valor. Vou pegar a impressão do dedo do pé. Reimprimir Todas essas operações de adição lamentam todas essas operações aritméticas usando X em, então a expectativa é que os valores que as operações iniciais teriam gerado devem ser diferentes desses valores depois que nós Mudei o valor de X. Então vamos tentar isso. Então agora podemos dar uma olhada e ver que Ok, todos esses valores foram os mesmos que vimos da última vez, mas então o novo valor fora ex 15 porque, como eu disse, nós adicionamos quatro ao valor que X tinha em. Então é vai funcionar ou matemática diferente porque o valor de X é diferente. Notei que a divisão é “Não”. Cinco porque três vai perfeitamente em 50 e cinco vezes em folhas. Nora meandros. Sem operações. Decidi o tempo todo. A maioria. Você sabe, você nem sempre sabe quais valores lá, então você apenas mantém a variável e faz qualquer adição ou subtração. Multiplicação. Isso pode ser feito com qualquer outro operador. Se eu quisesse multiplicar o valor de X por isso, e você verá X é igual a ele é de vezes para E então esse é o seu novo valor. Não, porque fora dessa função ou da necessidade de fazer esse tipo de função, temos o que chamamos de atribuição composta. Então, em vez de ter que tipo de X é igual Toe X mais quatro, então podemos realmente fazer algo como X Fechar é igual a cinco. Então, eu só estou indo dedo do pé não estou arrependido. Quatro, já que estamos usando para que eu use o tempo todo. Então, vou copiar isto aqui e mostrar-vos que estas duas linhas estão a ver a mesma coisa. X Plus Equal four é a mesma coisa que dizer X é igual a X mais quatro sobre o mesmo se aplica para qualquer outra operação que será realizada. Então, se eu quisesse dizer X deve ser igual dedo X vezes cinco. Tudo bem, então ex Seu novo valor deve ser ele mesmo. Seja qual for o valor que faz na época, Times cinco, seja qual for o deste ano deve ser atribuído a X, isso é a mesma coisa que ver outro e mais longo nós em comentários e certamente a forma mais curta X estrela é igual a cinco. Tudo bem, então sempre que quisermos fazer esse tipo de operação em que estamos atribuindo à variável um novo valor baseado no que seu valor já é, então podemos escrevê-lo. De qualquer forma, podemos escrevê-lo como X é igual a X vezes cinco, ou podemos ver a variável, que é X neste caso, esse operador igual. Reparei que não há espaço. Não há nenhuma lacuna aqui. Se você colocar esse espaço lá, você pode ter uma flecha. Portanto, é operador de atribuição, e, em seguida, o valor em seguida, que irá implicar para ver nítido que você está fazendo esta operação. Tudo bem, então eu só escrevi alguns exemplos de operadores de tarefas. Você pode tirar algum tempo e escrever isso fora, mas o que eu vou estar fazendo aqui é mudar o valor de X com cada operação apenas mostrando que qualquer operação é com a aritmética, hum, símbolos, ele pode ser usado para a atribuição de componente em, desde que você tenha apenas esse operador e em seguida, o sinal de igual. Então essa força de novo. Certo, então temos nosso primeiro bloco onde fizemos ou tarefa. É o valor era 11 em. Depois fizemos as operações 11 e as três, creio eu. Sim, em Então nós fizemos as operações com o três e o 11 ligado. Em seguida, alteramos o valor fora da variável X para 15 e eles em novas operações em. Quando chegamos lá, o valor ainda era 15 porque nós não mudamos o valor novamente até eu dizer, explosivo é igual a cinco. Então, 15 mais cinco é 20. Então eu disse, X menos é igual a três, que significa qualquer valor que eu tenho, não, que é 20. Quero ser igual a esse valor menos três. Então, por variáveis, o valor foi definido não para 17 porque era 20 menos árvore em. Esse é um novo valor de X. Então vamos dizer qualquer que seja o valor de X, eu quero multiplicar por dois. Então eu estou vendo 17 vezes dois é Não. 34. Então eu digo, OK, o que quer que seja válido faz com que os ECs não sejam iguais. Isso dividido por três em 34 dividido por três é praticamente 11 em. Então nós fomos ver Dê-me o modelo é fora três no reboque, 11 em, então que nos deu os dois. Então é assim que lidamos com atribuições de componentes em operações aritméticas. Então, como eu disse, estes não são todos fora dos operadores que estão disponíveis para nós em C afiado em qualquer outra, uh, uh, linguagem de programação. Mas este é um bom lugar para começar e como vamos junto e olhar para se declarações e quatro perdedores começam a ver outros operadores usados para outras coisas. 10. Declarações condicionadas: nesta lição, vamos estar olhando para declarações de condição em C afiado. Mas sei que todos temos o jeito de criar novos projetos. Então eu já criei um novo projeto e estou chamando essa condição. Declarações sobre Die já limparam a função principal para colocar em alguns comentários para que você possa pausar um vídeo aqui, vá em frente e crie seu novo projeto dentro de sua solução. Mais uma vez, é chamado de declarações de condição. Agora um pouco de pré carga. Antes de eu entrar em que condições declarações realmente significam? Quero que examinemos algo sobre programação em geral. A maioria, se não todos. Enquanto cada linguagem de programação tem três estruturas de controle, eles são decisões de sequência ou seleção na sequência de repetição basicamente se refere ao fato de que o programa vai executar os comandos na ordem exata que você colocou eles. Então, em exemplos anteriores, onde imprimimos um prompt e, em seguida, esperamos por entrada, e então nós solicitamos novamente notar que ele foi na seqüência exata que nós escrevemos que esta sequência, no entanto, quando chegamos a um roadblock em, precisamos talvez tomar uma decisão para dizer Se algo atende a um certo critério do que tomar esta ação ou tomar outra ação, então essa é outra estrutura de controle chamada seleção ou decisões. - Não. Nesta lição, vamos explorar declarações de condição que nos ajudam a fazer seleções. Eles são. Se declarações em declarações interruptor em, então vamos olhar para declarações Turnberry como um bônus. Agora vamos começar a olhar se declarações, uma razão típica pela qual precisaríamos usar uma instrução if é determinar algo ou alguma ação com base em alguma condição. Então vamos dizer que eu queria imprimir algo para a tela se algo fosse do jeito que eu acho que pode ou não estar certo. Então vamos dizer, Eu queria dizer, Se em eu vou mantê-lo muito simples sobre eu vou dizer algo como se dois é menos de três, então percebe um novo operador. Fizemos operadores aritméticos mais cedo. Não, teremos os operadores de comparação. Onde estamos comparando é maior que ou menor do que isso é menor que três. Tudo bem, então também é menos de três. Se dois são menos de três, então eu quero fazer algo. Observe a sintaxe por trás desta declaração. A palavra-chave é se eu abrir. Parênteses é. Então eu coloquei a condição dentro do parêntese aberto, e então eu fechei. Então, dentro da doença dos pais, eu deveria ter uma condição é algo talvez equivalente a algo é menor do que é maior do que há tantas maneiras? Podemos comparar as coisas, mas só estou checando. Se dois é menos de três, então eu quero imprimir algo para a tela para que eu possa dizer ponto console linha direita e eu vou ver Sim, é. Tudo bem. Então eu posso ver se dois é menos que três, então imprimir. Sim, é. E se houvesse outra condição ou se eu não tivesse? Se não fosse essa a condição e eu quisesse tomar outra ação, então se for, então rezei para imprimir. Sim, é. E então eu posso ver outra coisa. E depois preciso do meu aparelho encaracolado de novo. E depois vou dizer o quê? O que eu faria se esta condição não fosse cumprida? Alguém para tomar este console que linha direita e duplicado apenas para agilizar isso e eu vou dizer não, não é assim. Mais uma vez, estou vendo se dois são menos que três, então imprima. Sim, é outra impressão. Não, não é. Agora você percebe que esta linha parece uma grande filha cinza, meio aborrecida no estúdio diesel está basicamente me dizendo que baseado na condição que eu especifiquei aqui, eu nunca, nunca chegaria ao outro. O que é verdade, porque toda vez que eu vou executar isso, a menos que eu mude esses valores, você sempre será menos digno. Então sim, é sempre será impresso. O outro nunca seria impresso. Mas eu ainda vou deixar o outro porque eu vou mostrar a vocês diferentes condições que podem ficar aqui em espera. O tribunal seria executado, então vamos executar isso e ver os resultados finais. Mais uma vez, ele vai ser executado na sequência, e ele vai dizer, se quem é menos de três, o que eu devo fazer? Então vamos verificar isso. Portanto, lembre-se de que você pode alterar seus inícios ou projeto usando esta lista suspensa. Apenas certifique-se de que é em declarações de condição em ir em frente e tratar. Comece no resultado final é que ele imprime. Sim, é. E isso porque a condição era verdadeira. Não, se eu mudar esses valores para algo tão bem, eu quero dizer não, não é. Que eu posso dizer é 10 menos do que talvez três são deixar os três. Então, se 10 é menor que três, então queremos imprimir. Sim, é outra impressão. Não, não é agora, só olhando para ele. Sabemos que 10 não é inferior a três, então esperamos que esta condição não avalie como verdadeira aqueles que não farão o que está no primeiro bloco. Mas vai fazer o que está no outro bloco. Então o resto é basicamente as quedas para qualquer condição que é delineada dentro fora do Se sim, vamos tentar isso novamente. Eu fui executar o programa, e a expectativa é que ele vai dizer não. Não é porque 10 não é menos do que três. E lá vamos nós. Não, não está tudo bem. Então esse é um exemplo muito, muito simples. Vamos colocar um pouco mais de carne nele, então eu vou encontrar algumas variáveis. Eu vou definir o número um e o número dois tão int num e por favor note com variáveis . Posso não ter mencionado isso antes, mas quando você está usando variáveis ou quando eles estão declarando variáveis, você quer evitar espaços nos nomes e você quer evitar caracteres especiais. Quase as mesmas regras é quando eu sugeri buraco. Você nomeia seus projetos. Você pode camelo os nomes se você tem várias palavras algumas pessoas usam sublinhados. Mas, em última análise, apenas evite qualquer ah, espaço e qualquer personagem especial. Tudo bem, então ninguém vai ser igual a dois Onda. Não, , dois é igual a cinco no DSI. Ao fazer isso, violei minhas próprias regras e o estúdio visual está me dizendo que estou errado. Então int num dois é igual a cinco. E antes de eu usar essas duas variáveis no exemplo, eu só quero aproveitar este tempo para listar todos os outros operadores de comparação que você tem sua vantagem. Então você tem em Eu estou apenas colocando a brisa lá para que você possa vê-los. Então você tem menos do que você tem maior do que você tem equivalentes. Portanto, observe a ciência igual ou o sinal de igual por si só é um operador de atribuição warier, atribuindo um valor a partir do dedo direito, a variável à esquerda. No entanto, se você quiser comparar se duas coisas são iguais entre si, então você tem o igual para ele. Então essa é a distinção entre um único sinal de igual em dois lados iguais. Então temos igual. Nós temos híbridos, como maior que e igual ou menor que e igual em. Então você tem um que não é igual, que é uma exclamação e em um sinal de igual. Tudo bem, então esses são operadores que você pode usar dentro de suas instruções if, quando você quer comparar o valor à esquerda com o valor à direita. Certo, então não temos ninguém e número dois? Fizemos isso com valores estáticos, mas também podemos escrever uma declaração if com variáveis. Tudo bem. Então eu poderia estar comparando dormente um com o número três, então eu posso ver se ninguém é menor que três. Então eu quero tomar essa ação. Caso contrário, eu quero tomar essa ação. Tudo bem, então nesta situação, eu não tenho mais dedão declarado, tenho um valor off também. Então, se eu executar isso de dois vai ser menos de três. No entanto, se eu disser não, eu tenho cinco anos aqui baseado no valor fora da norma cinco. Então conhecido cinco ou desculpe, dormente para Desculpe. Adormecido tem o valor de cinco meu corpo. Então, se eu disser que não é menor do que três, contanto que mantenha o valor off cinco, então vamos saber que não é menos do que três sobre, então ele vai para o outro bloco e imprimir. Não, não está tudo bem, então você pode usar variáveis para comparar com valores estáticos. E você também pode comparar duas variáveis. - Não. Um no número dois. Tudo bem, então aqui está o que eu vou fazer. Vamos escrever um programa completo onde estamos aceitando dados de um usuário. E então nós estávamos em uma declaração if para saber o que imprimir, tudo baseado na entrada do usuário. Então eu vou escrever um programa que vai pedir aos nossos usuários para nos dizer quantas maçãs eles têm e colocar qualquer laranja lá. Alguém para consolar? Não está certo. O primeiro problema a dizer. Quantas maçãs você tem? Então faremos uma linha de console dot Reid onde obtemos a entrada. Mas, em seguida, fora do curso, podemos desconsolar linha re Este valor precisa entrar em uma variável alguém para usar ninguém para armazenar o número fora maçãs. Então, não mais consola cota desconfortável que lê linha e, em seguida, sabemos que ninguém é um inteiro. Então, se estamos colocando algo no inteiro a partir da entrada do console, precisamos convertê-lo. Alguém para dizer, converter ancorado para comer 32 em, em seguida, abrir assistências estrangeiras em torno de parênteses perto que em. Então eu vou apenas copiar esta linha em vez de redigitá-la do zero. E então eu vou dizer, quantas laranjas você tem? Estamos armazenando laranjas em dormente. Então não, eu tenho entrada de usuário para um normal e entrada de usuário para Norm toe, que é claro, substituirá os valores com os quais eles foram inicializados porque eu não vou incomodar a inicialização aqui. Ou pelo menos eu sempre recomendaria que se você está inicializando, você sempre inicializou um valor seguro o suficiente. Isso é que você sabe que não mexe com a sua operação daqui para frente. Então estamos inicializando o número 120 Onda dormente para zero, então estamos pedindo o número de maçãs e armazenando isso em Norm 1 ligado. Então eu estou pedindo para o número fora laranjas e mexendo que em dormente para não, minha declaração é ver se dormente para é menor que No. Primeiro, que eu quero tomar uma ação particular. Mas então eu me sinto provavelmente mais confortável dizendo, Se entorpecido é maior do que Não. Primeiro, isso realmente não importa. Então, baseado no seu contexto e baseado em como você provavelmente iria querer, se você pode vê-lo em Inglês ou dizer para si mesmo, como eu compararia esses dois? Então você pode simplesmente traduzi-lo em tribunal usando o operador apropriado. Tudo bem, então eu vou dizer, se ninguém é maior do que entorpecido, então isso significa que eu teria mais laranjas tão entorpecidas para representar laranjas. Então, se entorpecido é maior do que No. Primeiro, que eu tenho mais laranjas do que eu tenho maçãs, então minha linha consular vai ser você tem mais laranjas em então, se eu isso é falso, significa dormente não é maior do que não mais que eu fui imprimir. Você tem mais maçãs Agora vamos fazer o teste rápido e ver o oh, saia daí. Então, quantas maçãs você tem? Vou dizer que tenho de o fazer. A Maçã é Andi. Eu tenho cinco laranjas, então a expectativa é que ele imprima que você tem mais laranjas. Certo, vamos fazer outro teste onde eu viro o roteiro. Desta vez tenho 10 maçãs e cinco laranjas. E então, quando isso for avaliado na minha declaração, eu deveria estar entendendo. Você tem mais maçãs. Lá vamos nós. Então isso é basicamente o que a seleção faz. Ele olha para uma condição, e então ele toma uma decisão baseada em tudo vir se é verdade ou cai para essa condição. Não, a declaração if pode ser expandida um pouco mais. Eu só vou fazer isso e, em seguida, deixamos se declarações para não, porque é declarações são muito úteis em. À medida que avançarmos, vamos usá-los e ver mais propósitos. Mas eu só quero parar um apreço por como eles funcionam e por que vamos encontrá-los daqui para frente. Mas a declaração também pode ter mais de um ou mais de dois blocos. Por isso, neste momento, não podemos. Se Condi filho ligado, então o contrário. Mas então você tem o dedo facilidade tem várias condições em uma grande declaração se, então eu posso dizer se dormente para é maior do que não mais do que impressão. Você tem mais laranjas do que eu posso dizer se e, em seguida, indicar outra condição. Então eu vou dizer se o número um é maior do que entorpecido para ninguém, ser maçãs para ser laranjas. Então primeiro eu estou tomando para ter mais laranjas do que maçãs que eu posso dizer o contrário. Se houver mais maçãs, laranjas que eu quero imprimir, você tem mais maçãs. E se eu quisesse acrescentar outra declaração? Outro condicionador que mais. Se no instante outra condição em, então para essa parte, eu gostaria de ver se eles são equivalentes. Então eu posso dizer se não mais é equivalente a Nome para então abrir resumos. Consola a linha certa e depois vou ver se tens maçãs ou deixa-me ver a costura. Você tem o mesmo número das laranjas Onda da Apple. Não, temos uma declaração a fazer três condições diferentes. Tudo bem, então, se dormente para é maior do que não mais do que trazer outra coisa. Se ninguém é maior do que conhecido para, em seguida, imprimir outra coisa se ninguém é equivalente a Nome para então há muitas maneiras fora que você poderia ter escrito isso. Mas há tantas maneiras de hereges que nunca posso mostrar que todos os cenários querem que você aprecie o conceito do que pode ser mais flexível. Então, nesta situação, mais uma vez, estou apenas verificando. Se entorpecido é maior do que ninguém que eu queira imprimir, você tem mais laranjas. E então se isso não valoriza a verdade, então eu passei para a próxima declaração para ver o console Redland. Você tem mais maçãs, certo? E se isso avalia as quedas, qualquer passa para a próxima condição onde está tudo bem, se o seu equivalente, em seguida, imprima esta declaração. Não, há situações em que nenhum desses nunca seria muito. E então é por isso que você tem o outro. Então isso é como uma pegadinha. Tudo bem, então se não temos mais, você costuma usar isso para dizer Bem, quando todas as outras condições se sentem, então tome alguma ação e isso é mais uma vez uma pegadinha . Então eu vou dizer, hum, bois finais ou parâmetros inválidos? - Não. Com base neste exemplo, eu não sei o que eu poderia colocar em que nenhum fora estes seria encontrado em mais para que, a comparação para maior que e igual dedo do pé. A menos que um dedo igual não se encaixe neste cenário em Bem, nós sempre esperamos isso. Se um desses fosse atendido, então claramente eles não são iguais, certo? Mas então o estudo de caso ou os casos de uso para estes prefeririam ser como se você estivesse comparando greens, certo? Então, se os verdes começam em talvez em um começa em 90 então você pode ver se você concordou que é maior ou igual a 90 então você não tem e Se eles falharem, falhando ganância é 59 então você pode ver se você concordou que é menor ou igual a 59. Então você é um estudante sentimental, então você poderia ter feito o maior que um dedo igual para aquele A. Ou eu não poderia ter dito que se você é grande é maior que 89 porque então nós sabemos que qualquer coisa maior do que a Internet é provavelmente 90. Mas então, com base no cenário mais uma vez, você pode ou não precisar usá-lo ou você pode usar vários realizar a mesma coisa e o todo vamos executar um teste sobre isso. Então eu vou colocar em alguns cenários onde eu vou colocar em alguns valores e, em seguida, devemos colocar em valores que vão invocar cada declaração como nós vamos junto. Mais uma vez, a outra declaração pode nunca ser chamada porque uma dessas condições será atendida de qualquer maneira , Então vamos tentar então em primeiro lugar, queremos um número maior para entorpecimento para então para alguém. Por isso, queremos mais laranjas do que maçãs. Então eu tenho cinco maçãs e então eu tenho 10 laranjas tão dormentes para é maior do que ninguém. Então você tem mais laranjas. Tudo bem, deixe-me executar este tronco e este programa novamente. Desta vez eu tenho mais maçãs do que laranjas têm 10 maçãs e eu só tenho cinco laranjas. Então é que você tem mais maçã. Então esta condição para ninguém ser maior do que normal entorpecido para ser ralado em, um sentimento então ele passou para o outro se em então esta condição foi cumprida então ele imprimiu essa declaração não se eu tiver o mesmo número entre os tipos de frutas ferramenta. Isso significa que tenho 10 laranjas e 10 maçãs quando pressiono Enter. Então foi para o outro. Se eles são equivalentes, então você tem o mesmo número de maçãs e laranjas. Tudo bem, então há algumas regras em torno de como se declarações devem olhar, observe os tokens especiais que eu tenho usado ao longo do caminho, as palavras-chave, se em seguida os parênteses sobre, em seguida, o dentro dos parênteses em que eles notaram não ponto-e-vírgula no final desta linha em. Então eu abri as bibliotecas de carros e, em seguida, a sintaxe c nítida como nós viemos a conhecê-lo com todo o console direito conselho, linha de leitura, o que quer que seja nosso fazer que aqueles podem prosseguir. Mas só entre as chaves. Então eu não posso colocar nenhum acorde nesta linha. Eu não posso ser. Consola essa linha direita entre o bloco if assim, certo? Isso é ilegal. Então, quando seja qual for a operação, você precisa fazer um aviso, ter essa linha vermelha. Então está na medida em que está esperando que esteja incorreto. O pecado é tóxico para todos. Diga-lhe detalhes sobre a sintaxe incorreta, mas basta seguir estas regras e você deve se sentir confortável ao escrever declarações se. Então, mais uma vez, você tem uma condição. Você não tem o depoimento. Desculpe. Você cria a condição dentro dos índices de peças, e então você abre a chave e, em seguida, você começa a escrever toda a sua corte dentro de suas chaves. Qualquer que seja ereto dentro das chaves é o que é feito quando essa condição particular é atendida. Então, se entorpecido é maior do que alguém, então eu quero tomar este set off ações outra. Se esta outra condição for cumprida, significando este campo, mas então este é cumprido, então eu quero realizar essas ações. Então eu tenho outra. Se esta condição for cumprida, então eu tenho minhas ações específicas. E então o meu mais é a pegadinha. Nosso significado de que nenhum desses veio para passar um deles muito. Os meus requisitos. Então seria que a captura também, você sabe, baseado na situação, então pode ser bom. Pode não ser, mas assim, nesta situação, se alguma vez chegou ao outro eu sei que isso é ruim, porque isso não é o que eu espero No entanto, em nosso primeiro exemplo, você viu que eu só tinha se condição em então outro. Então, quando é uma condição simples palavras Eva ou é ou é esta condição é verdadeira ou não é verdade que você pode apenas usar um if else. Se você tem cinco cenários diferentes que você precisa testar ou, neste caso, três cenários diferentes em para testar, então você pode escrever se else se else Se E se você souber que eles são os únicos três, então você realmente não precisa mesmo do então ele pode funcionar sem o outro neste cenário. Como eu disse, isto é uma apresentação. Então, estamos apenas arranhando a superfície com, se afirmações. Mas vou mudar as declarações que nos ajudam a fazer seleções. Mas faça um pouco diferente. Então, a declaração nos dá a capacidade de tomar decisões mais complexas onde podemos dizer se algo é maior do que podemos comparar com valores ou alguma variável para algum outro valor, seja lá o que for que você está comparando, e então fazer um ação para alternar a instrução. Temos que olhar para uma variável em, em seguida, tomar uma decisão com base apenas no valor fora da variável. Então, vou dar-vos um exemplo. Então as instruções switch parecem algo como ligar. Em seguida, leva uma variável dentro dos parênteses. Então o que eu vou fazer é definir outra variável. E eu vou chamar essa Norma três. Então, em dormente três. Andi, vai ser igual a zero. Tudo bem, então eu vou dizer interruptor dormente três, que significa avaliar o valor dentro do dormente três. Então vou ver se ele está no ar. Então eu posso dar nossos valores. Então caso um, depois cólon. Então, por favor, saiba a sintaxe, porque isso é muito importante que você siga a sintaxe corretamente, Então você diz mudar brisa aberta ou abrir parênteses. Coloque uma variável lá. Então você abre sua corrente uma brisa e então você faz um caso é um caso, então o valor que você quer avaliar esta variável quatro. Então eu estou vendo se o valor fora dormente três é um que eu digo Colon acolhe depois que o cólon é a ação que eu pretendo tomar para que eu fui para ver console que linha direita em Vamos mantê-lo simples e apenas dizer valor é um. Tudo bem, então. Depois de eu dizer isso, então eu preciso de uma palavra-chave para que eu possa listar tantas ações abaixo disso. Então, o que vem depois do caso será apenas deixar as boas-vindas dentro das chaves para a declaração if . Mas depois tenho de encerrar o caso com uma palavra-chave. Esse é o intervalo dele. Tudo bem, então eu posso ver beijar um consorte valor Land é uma vez. Só quero copiar isto. Eu posso re datilografá-lo. E se eu quisesse fazer outra coisa se o valor fosse também? Então eu tenho um caso para Colon. Então eu continuei minha ação alguém para consolar a linha certa. Eu vou mudar de valores um e dizer algo como, eu tenho que saber. Tudo bem, então eu tenho que saber se os valores para ele serão impressos. Eu tenho que saber para a tela. Então, mais uma vez, eu posso imprimir quantas coisas eu quiser nossa tomar tantas outras ações que eu preciso para alguém para imprimir isso três vezes ou três vezes mais. Assim por diante. Isto é apenas por exemplo, eu estou apenas mostrando que você pode ter várias linhas vindo atrás de mim após o caso sobre o valor e os dois pontos. E quando terminar, certifique-se de colocar sua palavra-chave. Esse é o intervalo dele. Se você não colocar a palavra-chave freio e vamos ver, eu esqueci a palavra-chave break. Então o que aconteceria é que ele só vai funcionar para que você possa ter tantos casos quanto você sente a necessidade de direito. Assim, como muitas situações ou casos que você acha que são valores que você deseja comparar esta variável com você pode ter caso em qualquer que seja esse valor. Uma vez que estamos usando em Joe, nós apenas colocar o valor de inter. Se isso fosse uma corda, então eu estaria vendo as chaves, depois colocando a corda, tudo bem, mas então temos que manter os tipos sensíveis. Então, se é na variável inteira que estamos avaliando que o valor caso deve ser um inteiro . Se é um duplo, então bem, tem sido numérico. Se é em jar double, se é uma string que deve ser uma string, mas, em seguida, caso contrário, temos semelhante ao outro. Na declaração if, temos uma situação padrão que diz Bem, se nenhum fora do caso é muito, então eu vou fazer algo. Então eu estou indo para dentro fora do padrão, este console linha direita em, digamos, valor inválido. Tudo bem, então eu estou apenas comparando para um para, que significa que se o número três nunca é um e nada, três nunca é muito, então eu quero que o padrão entre em jogo e veja o valor inválido em. Então, mais uma vez, eu quebro. Uma vez que eu tenha feito isso. Tudo está dentro dessa cinta encaracolada. Então eu vou colocar em um prompt para um número três ao mesmo tempo. Então, depois de fazermos com nossas maçãs e laranjas, vou ver quantos olhos você tem. Essa é boa, não é? Ou tem um olho ou dois olhos, mas então eu vou dizer valor inválido. Se colocar outro número, não é um ou dois, certo? Então, quantos olhos você tem? Então? Vou consolar isso, certo? Direita linha de leitura. Desculpe. No reboque. Dormente três. Então vamos testar essa. Além disso, eu não quero ter que fazer tudo isso contra eu vou apenas comentar, escrevi minha declaração se. Então o carvão para comentar é a tecla de controle e ver direito Então mantendo pressionado depois de destacar as linhas no Salon Control Press K prissy on. Então todas as linhas que foram destacadas foram comprometidas. Então sabe quando eu executar meu programa vai ignorar as linhas comentadas e apenas ir direto para me perguntar quantos olhos eu tenho em, em seguida, tomar uma ação baseada em nossos valores ? Então eu tenho um I. Então eu fui para dizer que o valor é um certo, talvez eu possa torná-lo um pouco mais intuitivo, então eu vou mudá-lo no DSI. Você tem um olho, tudo bem. Isto é apenas para fins educacionais não é realmente necessário. Então, se você não sente vontade de mudá-lo, então tudo bem. Mas você tem um olho nisso. Eu fui tentar de novo, e então eu vou colocar na ferramenta de valor. Então, com dois, esperamos ter quatro declarações sendo impressas e eu tenho que saber é impresso quatro vezes. Então, mais uma vez, você pode ter quantas linhas forem necessárias por baixo da caixa. Entre a definição de caso na quebra de palavra-chave. Tudo lá dentro será executado. Então vamos fazer outro, e vamos colocar o valor fora três. Então, três, vez que não há nenhum caso definido para um valor de três irá para o padrão até que nós em valores válidos. Então isso é basicamente todo o trabalho de instruções switch. Ah, bom caso de uso para eles. Seria como em um menu sentado onde você está esperando certos valores. Então, se você diz, como, pressione um dedo, digite a ferramenta de imprensa de grau para ter você concordou pressione três para sair do programa, então você poderia apenas dizer, hum, obter a entrada do usuário no variável em. Em seguida, você está em um interruptor contra esse valor em, em seguida, com base em qual caso foi escolhido, são quais valor foi selecionado. Você está em um caso por isso. Você toma as ações de acordo em, então, se eles entram de muitos opção off cinco, quando você terá três muitas opções, então você tem o padrão. Tudo bem? Não, como um bônus, vou mostrar a vocês os depoimentos Eri e deixei este por último porque este pode ser um pouco difícil de entender. Eles são sempre nossos usando, mas pode ser um pouco difícil, mas é muito, muito conveniente uma vez que você entende como ele funciona. Então eu vou definir outra variável, e eu vou chamar este resultado. Então este vai ser um fio ligado. Estou chamando este resultado. Tudo bem. Conheça o propósito dos operadores Turner para executar uma comparação rápida e permite que você decida brilhante lá no local qual o valor? Atribuir uma variável quando essa condição for atendida ou não atendida. Então, em outras palavras, com a nossa declaração if, se eu dissesse entorpecido para maior do que ninguém, eu poderia ter feito uma atribuição para uma variável aqui. Mas então eu teria que dizer Gnome dois é igual a não, não mais e maior do que eles para se submeter em outra tarefa aqui em então neste um após o outro trabalho, enquanto em um operador Turner, eu posso ver resultado é igual a on. Então o que eu quero comparar é entorpecido a ser maior do que ninguém. Tudo bem, então esta é a minha condição. Então eu posso usar Ah, ligar em seguida. Eu vejo. E eu acho que geralmente isso precisa ir em Chipre e doença. Então é isso que coloca entre parênteses. Então eu digo, esta é a minha condição, então. interrogação. Desculpe, pergunta, Mark. E então eu não vou ver mais em maior do que dormente para maior do que não mais. Então eu vou ver o quê? O que atribuímos? Mais laranjas. Você tem mais laranjas quando isso é, então você tem mais laranjas e, em seguida, cólon sobre. Então vamos dizer que você tem mais maçãs. Tudo bem, então deixe-me começar de novo. Aconteceu muita coisa. Então nós temos uma variável, e então eu estou vendo o que o conteúdo dessa variável depende do velho Saia dessa comparação. Então meu resultado variável vai ser atribuído algum valor com base nos resultados desta comparação,o comparação, que está dizendo que é conhecido por maior que o número um. Então eu tenho o ponto de interrogação para ver se isso é verdade. Então tudo isso está dizendo, se essa comparação é verdade, então eu estou atribuindo esse valor toe ser dentro de fora resultados, e então o cólon diz que o contrário é este valor. Então a coisa rápida, a coisa boa sobre isso é que em uma linha, eu apenas executar uma mini declaração se else. Tudo bem. A desvantagem é que isso é tudo o que podemos fazer. Eu não posso ter 1/3 cenário para dizer se o maior do que é seu equivalente. Desculpe, eu não posso ter criado um cenário, então eu só quero com uma condição e então eu digo, com base no resultado, se é verdade, então eu quero que o primeiro 1 seja feito. Se é falso e eu quero que o último seja feito, não mais uma vez, isso vem a calhar muitas vezes, mas as declarações if são muito fáceis de fazer. Tais declarações são muito rápidas também. Mas depois isto. Se você entender o conceito, você pode usá-lo a qualquer momento e agilizar a conclusão do seu programa que você está oferecendo. Então eu vou deixar este programa foi toe un elogiar todas essas linhas para que se você colocar suas mãos na pontuação fonte, então você terá todos esses exemplos para você e dedo sobre o comentário. Isso é controlar K você. Então deixa-me mostrar-te isso. Então, se eu sou um online e eu quero entrar para assumir o controle do estado. Casey em, então ele começa em, então se eu quiser comentar, eu posso apenas dizer controle K U. e lá vai você. Então você pressiona k e seu pode ver enquanto segura Don't Control são de modo que é isso para declarações de condição , que é um pincel sobre. Espero que entenda os conceitos se não se sentir livre para me alcançar. Mas à medida que avançarem, vamos usar mais e mais deles. Então você vai começar a apreciar cenários riel onde você vai precisar para fazer seleções e decisões com base em valores que estão entrando em seu sistema. 11. Declarações de repetição: neste vídeo estará olhando para declarações de repetição em C afiado. Eu já criei o projeto neste momento. O nome do projeto é instruções de repetição. Andi, eu já preparei o guia iniciado o que vamos estar olhando. Você pode postar vídeo aqui e ir em frente e criar o projeto e configurar seu arquivo judicial para a mina de grampo. Não, nós já revisamos as estruturas de controle. Analisamos a sequência em que essa é a ordem em que o tribunal executará. Então, de cima para baixo, do jeito que você está, é a maneira como ele será executado. Em seguida, olhamos para a seleção onde obtemos uma situação em que precisamos comparar com os valores e, em seguida, tomar em ação com base no tudo sair dessa comparação sobre essa seleção mais tomar uma decisão. Então, não, vamos ver como repetimos uma ação sem ter que digitar a linha mais uma vez. Então, no nosso exemplo anterior, onde estávamos olhando para a seleção e eu vou apenas ir para o meu projeto de declarações de condição e clicar no ponto do programa CS, nós imprimimos a mesma linha quatro vezes. Nós literalmente escrevemos esta linha quatro vezes. Agora há uma maneira de eu poder repetir essa ação sem precisar repetir a linha, porque não, se eu quisesse mudar a frase, então eu tenho que entrar manualmente e mudá-la para diferentes momentos. Considerando que se eu pudesse repetir a impressão da frase quatro vezes sem alterar a frase ou melhor repetido quatro vezes, Mas então eu preciso mudar a frase do que eu só precisaria mudar a frase uma vez, mas ainda iria quatro vezes. Então essa é a vantagem que os loops nos trazem a capacidade de repetir em ação. Então você vê que eu descrevi três tipos fora de telhados que estarão olhando para hoje. Há 1/4 e eu acho que há também 1/5. Mas então, para não, eu estou apenas olhando para esses três porque estes três são dias significa e eles estão em cada idioma que você nunca vai fazer no outro tipo fora como aplicações especiais, que será olhar para Mais tarde. Então, o loop quatro é o que chamamos de loop de controle de contador, então contador controlado significa que eu estou sentado o número fora vezes que eu quero esta repetição quatro. Então, se eu queria que algo acontecesse cinco vezes, então eu posso especificar que eu quero acontecer cinco vezes nada menos e não mais. Então vamos olhar para a sintaxe para um loop for. Então começa com a palavra-chave para e, em seguida, abrimos parênteses e, em seguida, dentro dos parênteses . Temos algumas coisas que precisamos fazer. Primeiro, precisamos definir o que chamamos de contador. Então nosso contador vai manter o controle do número de vezes que ele está sendo executado. Então precisamos de mim o contador tem de valor base. E vou dizer que assegurei que a adoração não importa. Você vai para verbal pode ter qualquer nome. Você poderia chamá-lo de cones, mas apenas certifique-se de que você tem uma variável lá, então eu estou chamando-o I assim em tailandês é igual a zero. Então eu estou inicializando meu dedo do pé, algo que é muito básico, muito baixo em Eu estou começando em zero. Então eu tenho um semi cólon. Então eu vejo que eu menos do que em. Então eu vou dar a ele o valor que ele sempre deve ser executado para ser menor do que isso. Aqui é onde pode ficar complicado e eu só vou para Travis Toe, explicar para que você entenda por que vai ser escrito desta forma. Então eu vou dizer que eu que vai ter um valor inicial de zero menor que cinco andan ponto-e-vírgula novamente e então eu mais. Agora deixe-me explicar o que está acontecendo aqui. Então eu tenho um coador em dez centavos inicializando em zero. Então tenho uma condição em que estou vendo. Repita enquanto esta condição estiver bem, como é cumprida, em seguida, continue a repetir-se em. Então eu tenho esta seção, que é o incriminador, dizendo que a variável contador está contando quantas vezes ela é executada. Então eu queria correr cinco vezes na primeira corrida. Ele terá um valor de zero. Então ele fará a comparação. C zero é menor que cinco. OK, então ele funciona, então ele incrementa. Então não, eu sou um. Então ele compara é um a menos de cinco que é. Então ele corre de novo e então ele vai fazer isso e fazer isso até que eu fique igual a cinco, e então ele vai verificar. Cinco é menos de cinco, o que todos sabemos que não é verdade. Cinco não é inferior a 55 é igual a cinco, então ele sairá do loop. Agora você provavelmente está se perguntando, OK, então por que o zero? E por quê? Calculei que é menos de cinco. Bem, se você colocar seu punho agora e fazer as contas e você não vai zero, isso é um dedo. 1234 Então você teria contado todos os cinco dedos em sua mão. Então, é uma prática típica começar com o seu contador em zero. Então apenas deixe que a comparação executá-lo até que seja menor do que o número que você deseja parar isso certo? A alternativa seria se eu começasse isso em um. Então eu teria que mudar minha condição para ver que eu deveria ser menor ou igual a cinco . Assim, ele teria olhado para o menor ou igual muito brevemente na seção de seleção. Mas o que eu estou tentando apontar é que normalmente, se você olhar para qualquer outro exemplo, se você pausar este vídeo e fazer o Google um exemplo de quatro loops que você verá mais frequentemente do que não, que eles inicializam o contrato zero em. Em seguida, eles fizeram a condição executar até que seja menor do que o número pretendido fora execuções. Então é zero, então transforma o que ele se transforma nele e transforma os três. Em seguida, ele vira para quatro fora do ponto, ele vira para quatro. O loop teria executado cinco vezes. Então, quando se torna cinco, ele faz esta comparação percebeu que isso não é violado em. Então ele sairá do loop. Então isso é parte um fora de escrita ou para loop. Então, depois de fazermos isso, precisamos do aparelho. Então você percebe que chaves são como um estado médio funções precisam deles se as instruções precisam deles. E não, vemos que os loops precisam deles, certo? Então, o que quer que lêssemos dentro das chaves constituiria a ação que está sendo feita a cada vez. Então vamos dizer que eu queria imprimir Eu sou um vencedor cinco vezes. Eu vou dizer consola essa linha direita. Linha direita ligada. Então. O texto que estou escrevendo para a tela é eu, um ah, vencedor com um sinal de exclamação no caso, as cápsulas de óleo e tosse Cleary. Tudo bem, então eu sou um vencedor e eu quero isso impresso cinco vezes na tela. Então lembre-se que no exemplo inicial, eu não fiz manualmente escrevendo a linha várias vezes Desta vez eu estou escrevendo uma vez, mas eu queria imprimir cinco vezes. Alguns vão apenas mudar o meu início um projeto com declarações de repetição glitter. E então vamos olhar para isso e ver se quantas vezes vai imprimir. Certo, então vemos que sou um vencedor sendo impresso cinco vezes. Então esta foi a vez que foi impressa enquanto eu tinha zero. Então ele foi, são de propriedade. Então ele fez a ação e atingiu a brisa atual. Então ele voltou do dedo do pé um incrementos. Então eu fiz um “I plus plus “incriminado de 0 a 1 em diante. Então ele fez a comparação para dizer Se eu ainda tenho menos de cinco anos? Foi assim que funcionou de novo. Então ele fez a mesma coisa voltou incriminado. Então, não, eu também estava. Então essa comparação aconteceu. Percebe que ainda era menos de cinco. Então ele voltou e depois foi para três, e depois foi para quatro. E, em seguida, quando ele bateu o quatro em, em seguida, ele incremental fez em DNO. Eu tinha um valor de cinco. Ele fez. A comparação em cinco não é inferior a cinco. Então esta condição não foi violada. Então ele voltou para as bibliotecas de carros e depois saiu. Então, o que mais teria sido aqui em baixo, vamos apenas dizer que eu disse Toe console que linha direita em, então esta é uma maneira legal, legal de obter, tipo, algum espaço. Então, se você quiser, como um espaço em branco entre duas linhas, você sabe, consola essa linha direita. Quero espaços vazios sob a consola da loja. Essa linha direita lhe dá um espaço em branco. Eu apenas duplicei pressionando dissidentes de controle por estar no controle de linha. Isso irá duplicar a linha sobre isso. Eu vou dizer que o Luke terminou. Certo, então vamos tentar de novo, alguém para executar isso mais uma vez. E então aqui vemos que ele executou tudo e então, quando saiu, continuou a executar o resto fora do tribunal. Então isso é mais uma sequência para que ele não vai continuar até que tudo fora o que ele precisava fazer dentro do loop foi feito, que era imprimir isso cinco vezes para executar cinco vezes e o que eu disse para fazer 45 vezes . Então, uma vez terminado, ele passou a imprimir o espaço em branco. É uma consola vazia. Essa linha direita, em seguida, imprimir para loop terminou? Não, eu vou fazer uma pequena modificação do dedo do pé o que ele faz dentro do loop for. Vou imprimir outra linha. Então lembre-se que tantos comandos como você deseja repetir, podemos colocar enquanto eles estão dentro dos dois calibração alguém toe console que linha direita neste tempo, Eu quero imprimir o valor fora da variável ing incremental ou o contador. Certo. Então desta vez eu vou dizer contador, eu só vou colocar ah Colon em. Então eu vou usar minha interpolação ligada, então conecte esse valor. Então eu só vou dizer que tudo bem, então cada vez que o loop executa qualquer valor que eu tenho, eu vou ser imprimir na tela apenas para que você possa ver que ele começa com zero em vai até quatro, mas nunca em cinco vezes. Tudo bem, então deixe-me tentar de novo. Tudo bem? Então, não, nós vemos que eu sou um vencedor no contador valor zero. Então eu sou um vencedor novamente. O valor do contador vai para um de 2 a 123, então dedo do pé quatro. Então 01234 é igual a cinco execuções. Certo, então é uma boa prática entender por que começamos no zero. Porque quando você recebe um aumento e coleções, então você vai entender que o computador realmente começa a contar de zero para dentro como seres humanos, nós tendem a ignorar zero. Começamos a contar um, claro, mas o computador começa a contar em zero. Então é bom apreciar por que começaríamos a contar a partir do zero. Dito isto, eu não tinha necessariamente que começar do zero. Eu poderia ter começado de 50 e contando até 55. E assim eu poderia ter dito que o Contra deve começar como 55 no git deve executar até atingir 80. Tudo bem, então seja qual for o número de vezes que vai ir entre 55 80 ou se você fizer as contas e disser um T menos 55 qualquer número que você conseguir, esse é o número de vezes que vai ser executado. Tudo bem, então se eu fizer isso rapidamente, o resultado final disso é esta linha. Eu sou um vencedor e o contador sendo impresso a partir de 55 que é um valor começou com até 79. O que significa que quando ele 80 ele violou esta condição em, saltou para fora. Isso é basicamente para quatro loops. Então este é um exemplo muito simples, mas eu acho que você aprecia isso. Alguém vai redefinir este tribunal para que quando você olhar para o exemplo que você vê, eu vou apenas adicionar amostra de impressão cinco vezes. Muito bem, agora temos alguns comentários para guiar o que isto está a fazer. Certo, então não vamos de vez em quando. Então o loop while é o que chamamos de loop controlado por condição. E então eu anexei isso com a expressão pré check. Então, quando fazemos o tempo, então você vê o que o pré versus o post realmente significa? Mas agora vou concentrar-me no controlo da condição. Assim, a parte de controle de condição significa que ele está indo para continente executando até uma condição seja violada ou ele continuará a executar enquanto uma condição é verdadeira. Então, com o nosso loop para um, era contra controle, que significa que estamos apenas executando por um número finito de vezes porque sabemos que queríamos fazer cinco vezes. Então nós especificamos que nós escrevemos de uma forma para garantir que ele não exceda cinco vezes. No entanto, se queremos algo para continuar e sobre e sobre e sobre até ah, condição particular é atendida são violados, então nós usaríamos algo como um loop while. Então a coisa é, saiba que com o loop de fio você pode encontrar o que chamamos de loop finito, onde se você escrever o tribunal por um tempo, loop na condição de nunca ser violado, ele nunca sairá desse loop em DSO. Ele vai correr sobre e sobre sobre a direita. Há sempre os computadores ligados em quaisquer condições necessárias para que ele esteja executando nossa querida, ele só vai continuar a executar. Então eu vou começar mostrando a vocês um exemplo fora do nosso em loop finito com o selvagem para ele. Então eu quero declarar uma variável simples e chamá-la. Eu dou-lhe um valor de zero que eu vou dizer um tempo e é equivalente a zero no notado isso em conversas, nós temos a palavra-chave enquanto e, em seguida, nós abrimos os parênteses e, em seguida, nós colocamos em nossa condição como tudo o que nós faríamos ter feito com a declaração if. Certo? Então a única diferença entre ele e a declaração é que, em vez de dizer se dissermos “ enquanto certo”, então dizemos “enquanto abrimos parênteses”, colocamos a condição, em seguida, abrimos chaves com nossas ações, Certo? Então a maneira como escrevi isso e não vai mudar de zero. Então isso vai dizer um tempo e tem o valor é equivalente ao valor zero. Eu quero fazer isso, alguém para escrever duas linhas e apenas copiar linhas existentes. Alguém imprima uma linha em branco, e então eu vou ver enquanto olhar bem. Então, enquanto o loop está em execução, vai imprimir, digamos, em fio, Olhe, em seguida, a linha em branco. Então ele vai ver no lado dentro enquanto loop on. Vamos imprimir uma linha em branco depois disso. Agora eu vou apenas comentar este barco rapidamente para que ele não seja executado enquanto executamos este programa porque, não, eu quero me concentrar no loop while e você vai notar que ele está indo imprimir continuamente e nunca parar. Então deixe-me executar. Garantir que você está em. Isso é o que parece. Então você vê, é apenas impressão, impressão, impressão, impressão, impressão, impressão, dizendo dentro loop de fio e você pode ver que ele pode como um espaço em branco. Você olha para o parafuso pirataria que está acontecendo e sobre e sobre e sobre e sobre e sobre. Nunca vai parar, e isso é o que chamamos de olhar infinito. Esses loops infinitos são conhecidos por quebrar computadores, então, se o seu computador falhar, quem e você faz isso? Sinto muito, , mas eu tenho uma , máquina bem poderosa, então pelo menos sei que isso não trará minha máquina. Mas o fato é, se você estiver certo, pobre acorde em grandes aplicações em, Você começa isso ou acabar com esta situação? Estas situações estão em loops finitos, pode derrubar sistemas. Tudo bem, então você quer ter certeza de que você entende todo enquanto os loops funcionam para que você não cometer esse erro em nenhum momento. Tudo bem, então vamos sair disso e olhar para como devemos escrever enquanto loops para tirar o máximo proveito dele ou para tirar proveito da condição enquanto não leva a um loop infinito nenhuma ou condição é baseada no fato de que in é equivalente a zero. Então ele vai correr enquanto L n desculpe é equivalente a zero. E daí se eu mudar isso? O cara disse algo como enquanto En tem menos de cinco anos. Tudo bem. Então, enquanto o valor fora e é inferior a cinco, eu queria fazer isso. Não, baseado na forma como está escrito, este ainda será um loop infinito porque qualquer 00 é menos de cinco, e eu não estou fazendo nada para mudar o valor em. Então vai ser sempre menos de cinco meses para continuar a executar. Então isso significa que a única coisa que eu posso fazer para garantir que isso seja violado eventualmente é ter certeza de que eu estou mudando o valor ou colocando algo no lugar que o valor muda . Em algum momento sobre isso compara um vai ficar quebrado ou esta condição será cumprida ou violada . Em vez disso, em alguns pontos que é conveniente para segurar. Queremos um programa para funcionar. Quero que isto imprima cinco vezes. Sim, conseguimos algo assim com um loop for. Mas eu só estou mostrando que eu posso realizar algo que isso com o loop while. Mas os últimos dois fazendo isso vai ser muito diferente. Então eu preciso saber Certifique-se de que eu estou mudando o valor fora no reboque, ser algo que eventualmente irá exceder o nosso valor. Isso torna esta condição verdadeira. Então eu estou indo apenas para adicionar 1/3 linha dedo dentro do meu loop de fio em. Então eu vou dizer e é igual a terminar perto cinco. Tudo bem. Desculpe e é igual a N mais um. Então, quando eu digo qualquer fácil, vá para n mais um, lembre-se, nós discutimos que isso poderia ser encurtado em apenas ver e fechar igual uma vez. Oh, não. Vai ser adicionando um a si mesmo a cada vez. Certo? Então está acontecendo por um. Até que eventualmente ele vai executar no fim vai ter um valor que não vai fazer . Isso não vai ser inferior a cinco, assim como um loop de arame vai sair. Então vamos testar que também executar. E aqui vemos que ele literalmente imprimiu o número certo de vezes. Assim como com o loop for onde começamos um zero e ficamos doentes, foi menos de cinco. Começamos com n sendo zero em, então estamos apenas verificando a condição que é menos de cinco. Mas não há nada no loop ou na estrutura fora do loop. Isso não é naturalmente, isso vai nos ajudar a mudar o valor fora. E assim foi fazer isso manualmente colocando acumulações. Chamará isso de um acumulador quando você fizer um incremento de variável por si só, além de outro valor. Tudo bem, então quando eu disse que n é igual a n mais um que está fazendo um acumulador são mais iguais. Então agora eu estou acumulando valor cada vez que ele funciona. Então, eventualmente, será. Vamos atender a esta condição agora. Este é um exemplo muito simples e não muito prático. Quero dizer, há situações. Você pode usar isso, mas eu sou mais útil maneira de usar no loop while é dizer, comparar a entrada do usuário em obter a entrada do usuário, violar a condição e continuar a fazer isso até que o usuário viola a condição no será encerrado. Certo, então vamos levar a sua experiência com um AB M, por exemplo. E um B M provavelmente sempre perguntará Você quer continuar? Se você disser sim, ele continua se disser não e então ele repete os mesmos passos desde que você continue dizendo sim. Certo? Então, literalmente. Tudo o que eles têm é realmente um loop de fio que está permitindo que você faça operações em. Então você pode indicar quando você quer que ele pare. E então quando você der a condição que diz parar, então você vai dizer, ok, essa condição foi violada. Deixe-me seguir em frente. Então eu vou modificar isso e eu vou ver console que linha direita em. Eu quero dizer ao usuário inserir um número, tudo bem, e eu vou dizer zero dedo quatro. Então eu estou dizendo ao usuário entrada algum número entre 0 a 4 em. Então eu vou fazer uma linha de leitura onde eu vou dizer e é igual para converter. Desculpe, falou. Converter errado converte em 32 no dia, eu vou dizer Console, que é linha de leitura. Então eu estou aceitando a entrada do usuário em Eu não vou incrementar porque não, eu tenho o usuário determinando o valor off em cada vez. Mesmo indo para levar todo esse console aquela linha de rato. Bem, deixe-me colocar de volta. E depois vou imprimir a tela que você inseriu. Quero ver você digitou esse número. Certo, então deixe-me colocar minha interpolação do cifrão. Então o que este loop é esperado para fazer é que ele está indo dedo do usuário para inserir um número . Se eu inserir zero, então se eu inserir zero, então ele será impresso. Você entrou em zero, e então ele vai voltar e vai verificar. A condição é zero menor que cinco. Não, não é. Então, ele vai dizer por sua vez número novamente em, então ele vai continuar fazendo isso até que eu colocar em um número que claramente não é inferior a cinco ou claramente violar esta condição. Então vamos tentar isso. Então, em colocar um número na matriz, colocar em três porcentagens. Você entra. Você entrou em três e então ele está me provocando de novo. Então eu entrei em três. Imprimiu que eu entrei na árvore. Então ele veio, fez a comparação. Eu percebo que esta condição ainda é verdade porque três são menos de cinco. Então foi em frente e me pediu outro número. Se eu colocar em quatro, ele vai fazer de novo se eu colocar em um. Se eu colocar o negativo cinco enquanto um número não é, é um longo como o número é menor que cinco, então ele vai continuar toe fazer esta operação. - Não. Se eu colocar em 10 ele vai sair. Tudo bem, então deixe-me colocar uma declaração adequada para ver se ele saiu. Então eu estou apenas tomando isso anteriormente, Juan em comentá-lo e ver teclado tubarão foi apenas torná-lo fácil de manobrar. Certo? Então, um, enquanto o loop terminou. Certo, então vamos tentar de novo. Então temos de 0 a 4. Eu coloquei zero. Coloquei cinco, então. Bem, tudo bem. Então, entrou cinco. Fiz isso prematuramente, mas tudo bem. Então eu entrei no zero e ele disse: “ Ok, Ok, aqui estamos nós e cinco o avisaram novamente. Então entrei em cinco. Chegou à comparação. Cinco não é menos que cinco. E então ele só desceu para este colchinho e depois continuou com a execução onde apenas disse por que Luke terminou. Tudo bem, então é basicamente assim que podemos usar enquanto perdemos, porque mais uma vez, vai correr contra a condição, e queremos ter certeza de que esta condição pode ser violada legitimamente. Então, porque se não fizermos isso, então todas as operações em um loop enquanto está repetindo serão repetidas até que o computador desligue Andi, eu posso deixar o dedo do pé para algum buffer ou sobrecarga de memória e todos os tipos de coisas que nós Não quero. Então, ao escrever condições controladas loops, certifique-se de que a condição pode ser violada em algum momento e legitimamente então agora vamos passar para o nosso fazer selvagem Andi. Eu disse que eu mencionaria o pré versus post, então a razão pela qual chamamos o porquê olhar, a pré verificação é que vai verificar esta condição antes que ele seja executado. Então, se eu inicializado e dedo do pé tem um valor off cinco ou digamos 10, então a primeira coisa vai fazer é verificar. Esta condição é verdadeira? Esse é o pré-cheque. As verdades da condição? Se qualquer Sten em 10 não é inferior a cinco, então nada aqui será feito. Ele só vai seguir em frente para dizer enquanto você terminou. Então isso é um pré-cheque. A verificação post vai fazê-lo antes, Então ele vai fazer a ação em Então verifique a condição. Certo. Então deixe-me apenas, hum, direito o tempo fazer. E eu vou fazer a mesma operação dentro para fazer bem. Mas então veremos a diferença na execução. Então a sintaxe para fazer while é a palavra du de, ou abrimos e fechamos as chaves. Em seguida, na cinta de roupas encaracolado, você tem que dizer enquanto em seguida você colocar em sua verificação de condição. Então a parte selvagem se parece com o normal Bem, então eu vou apenas copiar este MPC não Aqui parece da mesma maneira. Tudo bem. Então, deixe a única diferença é que nós dizemos enquanto em seguida, abrir os calibrados o fazer. Eu vou dizer: Faça essa ação. Faça o que estiver dentro das chaves. Em seguida, verifique a condição depois. Então este requer um ponto-e-vírgula no final. Então é aí que você pode ficar meio complicado, porque então você vê isso ou nenhum ponto e vírgula e cínico E para este e ali e ali . Então, realmente, Angel é apenas uma prática que vai fazer você se habituar a colocar os ponto-e-vírgula e nós não estamos muito bem. E o estúdio visual está sempre pronto para te dar aquela linha vermelha encorajadora para te lembrar que há algo faltando aqui. Então ele está vendendo ponto-e-vírgula é esperado. Você colocou lá, e tudo ficará bem no universo depois disso. Então eu vou apenas copiar essas ações rapidamente. Mas dentro do fazer enquanto em Patel no espaço para que possamos ver exatamente o que está acontecendo. Então eu vou colocar a declaração que nos diz quando o loop fazer enquanto está terminado. Tudo bem, então eu realmente não vou vir neste outono inverno. Execute-o para que o valor de N seja 10. Lembre-se que o pré-cheque vai verificar a condição Se a condição for verdadeira, então ele vai fazer o que é o que dissemos a ele para fazer em. Então ele voltará e definirá a condição novamente. Se a condição não for verdadeira, então ele não fará nada certo, enquanto que com o Doyle ele vai fazer algo em e, em seguida, verificar. Então isso significa que eu tenho a oportunidade neste para mudar o valor fora n de 10 em diante. Então pode. Bem, podemos violar isso, ou pode torná-lo verdade. Então ele vai apenas dizer, Oh, esta condição é verdadeira. Vamos fazer de novo, então farei pelo menos uma vez, então vamos tentar isso. Então eu clico, começo e noto. A primeira coisa que correu a tela é algo para nos dizer para fazer o loop while está terminado. Então, você sabe, ele simplesmente pulou. Como eu disse, basta verificar a condição. Dez menos de cinco que é falso são não se incomode com essa impressão a linha em branco em Dê-me o tempo que terminou. Mas então o fazer enquanto está me pedindo para o número então ele está fazendo a ação em, então ele está me dando a oportunidade de colocar no número e então ele vai verificar a condição. Certo, então se quisermos fazer algo pelo menos uma vez, é coisa repetível. Mas você quer ter certeza de que isso acontece pelo menos uma vez. Então você quer usar um tempo fazer. Tudo bem, então eu quero inserir um número e digamos entrada três. Vai repetir. Tudo bem. Então, quando eu entrei três não solicitado, então ele atingiu a condição e árvores menos de cinco. Então ele disse, Bem, faça de novo em então, desta vez com o Enter cinco ou bem, eu disse 56. Isso é bom no 56 inserido que é claramente não inferior a cinco no DSO. Ele só passou a dizer, enquanto loop que eu olhar está acabado. Então essa é a única diferença entre o tempo. E para fazer enquanto o bem faz isso pelo menos uma vez em verificações depois, enquanto o loop while vai fazer, ele vai verificar antes que ele faz, e então nós lembramos que ou quatro loop e outros UN comentou. Antes de encerrar isso, o loop for está configurado para executar para espera. Muitas vezes queríamos fugir. Isso é tudo para declarações de petição em C Sharp, lembre-se de praticar e pensar em cenários onde você pode precisar deles. Nós vamos usá-los ou em nosso projeto, mas para não, isso é uma introdução. 12. Métodos e tipos de retorno: este vídeo é sobre métodos e funções em C. Sharp. Eu já criei meu projeto. Eu chamei de métodos. Você pode pausar aqui e ir em frente e criar esse projeto e continuar uma vez que você tenha feito isso em quaisquer linguagens de programação fortemente digitado, Existem predominantemente dois tipos off funções ou métodos. Eu digo que funções e métodos podem desligar de forma intercambiável. Eles são realmente a mesma coisa. Então ah, função ou um método pode ser anulado, que significa que ele não retorna um valor nele pode ser valor retornando Agora eu quero começar com evite porque é realmente fácil explicar por que você precisa de um vazio. Mas antes de fazer isso, eu vou apontar que nós já temos uma função para olhar como um exemplo. Então nós temos estático, vazio, significa Então eu teria dito várias vezes que conhecemos funções porque eles pegam o parêntese no e desligado. A palavra escreve fora estática. Evitar significa que é a nossa primeira função. Observe sua anatomia sobre também o fato de que este também é evitar. Então, se eu vou estar fazendo evite função, eu posso usar significa como meu modelo. Não vou usar a palavra estática. É uma palavra especial para uma situação especial. Então eu apenas mantê-lo simples e eu vou dizer, Evite o nome impresso. Então eu quero que meu telefone seja mostrado para ser chamado nome impresso não está ligado. Então preciso que os pais se aproveitem. Então preciso do corpo do Mike Alibris. Então, se você olhar para ele, a única diferença entre ele e a média é que, bem, eu e tem algo dentro dos parênteses, e ele também tem uma palavra-chave estática, mas caso contrário eles são praticamente o mesmo, e não para mim. Agora, permita-me explicar o que cada componente significa. Então começamos com nosso modificador de acesso. Então temos estática aqui. Esse é um exemplo de no modificador de acesso. Há outros, mas vou deixar isso com isso. Então esse é um exemplo off no modificador de acesso. Mas então temos o tipo de retorno. Então, neste caso, mais uma vez, é vazio e significa que não precisa devolver nada. Alguém que explique o que quero dizer quando eu continuo vendo que é retornar algo ou não assim evitar é o nosso tipo de retorno, o que não significa nada. Não vamos devolver nada. Então temos o nome que estou chamando de nome impresso. Este chama-se malvado, mas não posso ter outra função chamada de mim. Isso é, na maioria das vezes, ilegal. É muito em circunstâncias especiais onde você tem que saber exatamente o que você está fazendo, e isso é chamado de sobrecarga de função. Mas isso é uma conversa para outra hora. Mas é melhor saber que eles não devem ter o mesmo nome a menos que seja muito, muito deliberado. Então evitamos o nome. Em seguida, temos as listas de parâmetros sem parâmetros a serem passados. Então sabemos que os parênteses permanecem vazios. Então, no caso off significa que ele está esperando um parâmetro off type string significado ou string ari, que significa que se eu vou chamá-lo Andi, eu estou fornecendo valores. Eles têm que estar fora do tipo string e em um formato arejado. Então vamos continuar com a nossa função simples de vazio. Esse é o nome digital dele e tudo mais. Eu vou me encontrar. Isto, também, é. Faça um console, essa linha direita. Apenas faça minha ortografia certa, tudo bem, e vamos imprimir meu nome Travel ou Williams. É tudo o que vai fazer. Então nós temos uma função chamada nome de impressão em seu único propósito é executar esta linha que diz Imprimir para o console, o nome Trib ou Williams Então função pode fazer muitas operações, você sabe, assim como Oh, Nós olhamos para os quatro Loop e a declaração if e tantas linhas fora do tribunal ou comandos que você dá ao programa entre as chaves de qualquer corpo fora da quadra. Então você pode fazer tantas operações. Eu poderia pedir-lhe para executar um loop de quatro dentro da função. Posso pedir-te para fazeres uma declaração de “se” qualquer coisa que eu coloquei dentro. Lá vai servir. No entanto, a coisa mais importante depois de defini-lo é realmente chamá-lo. Então esta é uma definição, então há uma definição de função vazia em. Não, nós precisamos realmente chamá-lo para que no corpo fora do meio que eu iria atender a chamada de função. Então o que acontece é que quando clicamos em Iniciar, o estúdio visual está procurando por uma função que me chamou, e é por isso que eu teria dito, Não modifique nada nessa linha ou as chaves estão procurando por essa função. Se esta formação não está lá, então você não tem um programa. Tudo é executado dentro desta função. Não, se eu contar, a primeira linha é procurar outra função. Então vai pausar. Olhe dentro deste arquivo de classe e notei que defini a função dentro da classe chaves Curly. Então, quando tivermos aulas sobre objetos e você apreciará isso melhor. Mas ao definir a função, certifique-se de que ela está dentro da classe chamada Programa, e não está dentro significa que é sua própria função, e é realmente como um irmão fora de mim. E é a sua própria pessoa, certo? É capaz de muitas coisas, mas ele simplesmente não tem o nome significa, tudo bem, tudo bem, então quando eu faço uma chamada de função, ele está indo para o pé. Bem, primeiro do programa executa maldade. Em seguida, ele vê o telefone mostrando chamada em. Em seguida, ele procura por um formulário mostrado chamado Qualquer que seja o nome que eu especifiquei. Então eu chamo os nomes de impressão da função, então isso significa que uma placa de função tem que ser para o meu nome de impressão função. E então eu tenho que abrir e fechar as chaves para especificar que esta é uma função. Agora você vê que eu tenho uma linha vermelha abaixo da minha função e basicamente a mensagem de erro. Se você não sabe o que está fazendo, está cancelado. Sem ajuda. Então eu disse que temos modificadores de acesso na estática é um fora deles. Estática nem sempre é necessária. Mas nesta situação, porque o vazio estático significa é a principal função em sua não todas as versões off apreensão que realmente tem. É estática. Então era para isso que eu não queria chamar muita atenção. Mas se você fizer estão usando ah versão de convulsão que tem é uma média vazia estática e está procurando uma função. Se informa qualquer colocar lá para ser fora igual valor modificador de acesso. Tudo bem, então ele vai dizer que ele não consegue encontrar o nome do seu telefone Sean porque ele não sabe o acesso que atesta. É que eu tenho dedo upend nosso pré escrito isso com o mundo estático ligado. Então nossos erros desaparecem. Portanto, nenhuma chamada de função ar está funcionando. Temos o nome impresso. A expectativa é que quando eu pressionar começar, ele vai começar significa olhar para dentro e ver que a primeira coisa que você deve fazer é função Carless que vai saltar para fora. Procure a função e você percebe quando eu clicar na formação aqui, ele destacou a definição correspondente em. Então ele vai para esta função e dizer, O que devo fazer? Então, quando terminar, ele volta e continua a execução. Então eu estou indo apenas para colocar um pequeno console linha direita abaixo da chamada de função para ver chamada função final. Tudo bem, então vamos tentar isso. Tudo bem, então lá vamos nós. Entrou em maldade, depois foi para o telefone. Sean Call fez o que a função lhe disse para fazer, que era imprimir qualquer valor que eu lhe desse. Depois, quando acabou, continuou a execução de mim. E até o fim. Isso foi muito legal e fácil. E se eu quisesse um baixo os usuários para inserir seus nomes, e então eu queria uma função que foi dedicada a imprimir os nomes que foram inseridos. Então agora eu vou fazer essa função novamente. Eu acho que eu mencionei anteriormente onde eu vou ter outra função que é um nome sprint . Mas desta vez vai aceitar o que chamamos de parâmetros, certo? Então, não, vou entrar em dois conceitos diferentes. Uma é a sobrecarga de funções onde eu só vou dobrar. Vou duplicar isso, está bem? E então você percebe que um estúdio visual não é choro porque ele diz que já tem uma função chamada isso. E então este está chorando porque está vendo que eu não sei com qual função eu deveria estar falando. Estou vendo várias referências da mesma função. Saber, para diferenciar a ferramenta que eu vou adicionar o que eu chamo de parâmetros para o 2º 1 que eu criei . Então parâmetros são variáveis que estão lá variáveis que eu estou declarando dentro fora da função sobre eles muito para passar valores em. E então você pode ter acesso a eles dentro da operação. Certo? Então deixe-me fazer isso devagar e explicar tudo enquanto eu avança. Então eu disse que eu queria um baixo o usuário para ser capaz de inserir seu nome. E, em seguida, a função vai imprimir o que eles entraram. Então isso significa que eu vou ter uma função com o mesmo nome de impressão, mas está afetando para obter algum valor do usuário. Então, para o parâmetro, se eu estou pedindo um nome do que eu posso dizer. Nome da string. Tudo bem, então é uma variável. Eu tenho que dar o tipo de dados no nome assim como Oh, qualquer outra variável é definida. Tudo bem, então. Uma vez que eu fiz isso, eu posso usar essa variável dentro da minha função para fazer qualquer coisa para que eu possa apenas consolar nome da linha direita. Então, uma vez que o valor quer, essa função é chamada e que os valores passados em, então eu vou apenas imprimir o valor e ele sai da função ligado, em seguida, volta a significar Então aqui. Então vamos ligar para este? Não. Então lembre-se que quando tivemos impressão me onde ambos são nome Sprint com todos os parâmetros, esta chamada função dado erro. Então eu estou indo para a direita. Algo rapidamente para dizer ponto console linha direita em seu nome em. Então eu vou definir uma variável em. Eu vou chamá-lo e apenas uma string chamada e e eu vou escrever ler a entrada vindo do nosso usuário. Tudo bem, isso pode parecer um trabalho muito ocupado, mas está tudo bem. Hum, nós vamos passar. E então o que quer que venha através do console uma vez que a pessoa digita seu nome. Estamos começando em que eu vou te mostrar como colocá-lo na função. Tudo bem. Então, ah, função pode ser para qualquer coisa. Você pode usar essa função para fazer qualquer coisa. Estou usando isso para fazer algo muito simples agora, então eu vou realmente fazer algo diferente, certo? Para que pareça que faz mais sentido. Então eu vou imprimir o nome em maiúsculas. Vou dizer o nome Dot Toe Cooper. Tudo bem, então essa é outra função no nosso catálogo de funções de manipulação de cordas onde eu vou passar o nome do usuário. E então ele vai imprimir o nome em maiúsculas. Então, passá-lo para impressão perto de eu vou fazer outra função. Ligue e veja o que o estúdio visual faz quando eu faço os freios. Isso me mostra que eu tenho versões completas, então é ver uma fora para você ter a versão sem parâmetros, e ele diz, OK, isso é engraçado. Há um lá como esse para que você possa deixá-lo em paz. Mas então eles também me dizem de outro onde Ele está esperando algum parâmetro string chamado nome para que eu possa passar em qualquer valor de cadeia que eu quero em que vai ficar armazenado dentro do nome. Uma vez que esta função é chamada, ele está passando que valorizando em reboque a variável chamada Nome em. Então eu estou realizando uma operação com esse valor vindo em nome. Dito isto, você pode ter várias funções. Eu só criei muito fraco e tenho 10. Você pode ter muitos, desde que você siga essas regras com nomes nos parâmetros, então você deve ficar bem. Então, se você queria um que diz nome de impressão em menor do que eu posso criar outro em, eu vou dizer impressão, nome, minúsculas. Então, imprima o nome e quero chamá-lo de minúscula. Eu notei que o estúdio visual está indo para cima por causa dele. Não, porque eu tenho que imprimir nomes em ambos têm apenas um parâmetro, então eles são idênticos, certo? Então, como eu disse, sobrecarga de função, você pode ter o mesmo nome. Apenas certifique-se de que a listagem de parâmetros é diferente. Então, não estou sobrecarregado neste. Só vou dizer o nome impresso, minúsculas. Tudo bem, então ele vai receber algum nome muito grande. Notei que tenho um nome muito grande aqui em um nome verbal chamado aqui em. Não é ilegal. Por quê? Como essas instâncias de nome que você precisa para esta função e o mesmo para esta é exclusivo para esta função, que eles não se vejam. Estas duas funções são realmente curáveis uma para a outra, certo? Este é. Está no seu próprio mundo e este está no seu velho mundo. On main é realmente em seu próprio mundo. A maldade é só a que é chamada primeiro. E temos que me deixar ligar para os outros depois, certo? Então eu vou apenas fazer mais dois chung telefone porque aqui está alguém para dizer Digite seu nome em então nós imprimimos sobre o nome que estamos fazendo esse nome sendo impresso em maiúsculas. Então eu vou dizer e função nome maiúsculo. Tudo bem. Eu não queria chamar a impressão mais baixa desta vez. Alguém para chamar de nome impresso, minúsculas e a inteligência está captando contextualmente. O que há no mais rápido. Ele está realmente me ajudando com a minha função personalizada definida em que eu estou vendo em função minúscula. Então sabemos exatamente o que está acontecendo ao longo do caminho. Então nós apenas nos certificamos de que estamos colocando isso em minúsculas ou nomeados para baixo. É tudo o que fazemos. Beijo mais baixo. Então vamos definir esta execução. Então, para a nossa execução, eu não vendo se eles estão fora do seu, mas tudo bem. Então eu vou dizer que talvez eu queira algo misturado com crianças. Então eu vou dizer e engraçado com um T h maiúsculo em ou e capital, por que apenas para que possamos ver as variações porque temos um que é suposto fazer uma maiúscula. Eu quero que isso seja minúsculo. Então, a expectativa é que tudo deve estar em maiúsculas em um ponto, e tudo deve estar em minúsculas. Esse é outro ponto. Então o caso misto está removendo o viés em relação a ambos os casos. Quando eu apresentador, lá vamos nós. Temos o Anthony. Chegamos ao ponto em que consolamos a linha vermelha. Em seguida, ele passou a chamar o nome da impressão, que ele fez em. Então, o maiúsculo deu-nos António maiúsculo. E quando terminou, ele voltou para mim e terminou no Comando Randall depois disso. Em seguida, ele foi para a formação seguinte, foram, em seguida, inferior cased -lo. Então nós pegamos Anthony Lo beijo e isso e então nós fomos para terminar isso em então significa, tão mau estava correndo de cima para baixo. Como dissemos na sequência de tudo sobre a única coisa que faz parecer que ele estava parando e indo para outro lugar é por causa da forma mostrada cartões. Então as funções são realmente úteis. Quando você tem pequenas operações que você quer fazer que você não quer colocar tudo dentro da média. Você pode apenas fazer uma função e direito, você sabe, um bom, longo, longo, enorme quarteirão fora da quadra, e então apenas fazer referência a ele. Além disso, se houver uma operação que você deseja fazer várias vezes, você não quer escrever ensaios. Toda vez que eu estou copiando e colando o console, que linhas direita direita, Nenhuma linha direita é uma função, e esta função tem algumas linhas fora do tribunal. Os desenvolvedores do C Sharp não lhe disseram que você tem que escrever as poucas linhas fora da quadra toda vez que você quer escrever colocando no console. Em vez disso, eles colocaram em uma função em. Eles te disseram, basta chamar essa função sempre que quiser acessar todas essas linhas fora da quadra. Então é isso para o Void. Eu fiz três simples funções vazias, mas então eu vou entrar em valor retornando. E então eu fui fazer algumas outras operações que se nós fôssemos repeti-los, você sabe, eles são mais linhas fora do tribunal que nós vamos escrever neste, e ele vai ver exatamente o quão conveniente é quando nós apenas temos nossas funções. Agora, nossas funções de retorno de valor são muito semelhantes em termos fora da anatomia. A única diferença, verdade, é que eles não são nulos, mas eles realmente têm tipos de dados. Então, se você quiser algo para retornar uma string, então você tem que defini-la como uma string em. Fiz alguém para explicar o que quero dizer com retorno, então vamos começar. Eu quero escrever um programa que vai aceitar três números de algum usuário em, então determinar qual deles é o maior. Então eu estou começando esta festa apenas escrevendo três problemas para N 12 e três dedos obter três números do nosso usuário Não para seguir em frente. Eu quero chamar uma função que vai pegar esses três números e então me dizer qual deles é o maior. Tudo bem, então eu vou definir uma função. Reparei que estou fazendo isso fora de mim e mais uma vez. Então eu tenho o comentário lá para me guiar. Eu só vou ver int ou se lembrar, nós temos que começar com estática e, em seguida, dizer int no maior número. Esse é o nome da minha função. Então tipo de dados modificador de acesso, que é int não anulado, mas em porque eu estou esperando para obter um número da operação. Se eu estava esperando para obter uma string que o tipo de dados seria string se eu estava esperando para obter um verdadeiro ou falso, o tipo de dados seria bull. Assim, com base no que você está esperando para sair do telefone deles mostrado, isso irá determinar o tipo de dados que você usa. Então vamos começar de novo modificador de acesso estático. O tipo nesta situação é int. Nosso nome da função é o maior número em, então temos ou lista de parâmetros e, em seguida, ou chaves para o corpo. Não, vamos ver essa linha vermelha por um tempo porque está reclamando que nem todos os caminhos do tribunal retornam de valores. Eu continuo usando a palavra retorno O que é devolvido? As funções de vazio não precisam de um retorno. Mas temos uma palavra T dentro de nossas funções de retorno de valor que dizem retorno. Então temos que ter esse valor de retorno. Então eu só vou deixar os retornos aqui, lá só para me livrar da linha vermelha para não. Então você pode fazer isso, se livrar da linha vermelha e deixá-lo em paz. Mas isso terá que mudar eventualmente. Agora, eu disse que estávamos construindo esta função para pegar os três números. Então, se eu estou recebendo a entrada da minha função principal em, eu quero minha função. Isso não é significa, que é o maior número para saber sobre esses três números que eu vou ter que definir parâmetros para cada número. Então eu vou ter que dizer em Andi que eu posso chamá-los em um, ou eu posso chamá-los de dormente um. Então eu não tenho que manter o mesmo nome. Então você sabe o que é isso? Temos uma variável. Temos valentes para o final variável. Mas então nós o chamamos de nome em nossas funções, certo, porque isso é genérico porque, independentemente do nome fora da variável, quando fizemos a chamada de função, estamos realmente apenas passando o valor. Então isso poderia ter sido uma string estática, ou pode ser qualquer variável de string que chamamos. Mas nossa função irá apenas representar esse valor na variável chamada nome ou seja lá o que chamamos de parâmetro. Então, mais uma vez não importa o que chamamos de variáveis de parâmetro, desde que você tenha certeza de que passamos os valores corretos não são assim. Eu fui ver em alguém Andi int num dois em dormente três. Certo, então temos três números que estavam passando. Então vamos usar uma declaração “if”. Então, como eu disse, podemos fazer qualquer operação dentro de uma função, então essa função vai ser um pouco mais complicada do que as vazias que fizemos. Mas isso dito, não é porque um é vazio em um. Seu valor de retorno por que um é mais complicado, eo outro você pode fazer qualquer número fora operações dentro da função como você precisa dedo do pé . Agora vamos acertar o tribunal para esta função. Então, primeiro vou definir o meu maior como o meu entorpecido. Então eu estou vendo int maior é Ik Walter No. Um. Isso é apenas um tempo Assunção. Eu realmente não sei se é o meu maior. Eu só quero algo para representar o maior número em então saber que eu estou assumindo que é o maior entender para comparar, para ver se entorpecido para é maior do que ele em. Se o número três é maior do que é, eu vou dizer algo como se dormente, que é maior que o maior do que o meu novo maior valor, tanto quanto eu sei é conhecido. Então eu vou atribuir esse valor no reboque. O maior. Então não, eu fiz uma comparação. Já assumi que um deles é o maior. Então eu vou compará-lo e entorpecido para E se entorpecido para acaba por ter um valor maior que o maior atual, então entorpecido para é o meu novo maior valor. Não, preciso comparar o maior com a Norma 3. Então a razão pela qual eu estou fazendo isso assim é, se esse valor é o verdadeiro, então eu preciso de uma maneira de comparar o valor que está em dormente com o Validus em dormente três no valor desligado. Lahm, também, não seria o maior. Então eu preciso dizer, se dormente três é maior que o maior, então o novo maior é entorpecido. Três. Você vê isso? Então vamos começar de novo. Estou definindo o maior valor como não mais para começar. Então eu vou dizer, se entorpecido é maior do que maior, significa entorpecido é maior do que o valor que está em Nome um, então é o meu novo maior maior é sempre a minha grande comparação. Então, se isso não avaliar a verdade, o maior ainda não é mais do que eu vou comparar quaisquer valores em maior, que no momento não está mais com o valor que está em dormente três. Se conhecido três acaba por ser maior do que o maior, então o maior não é três entorpecido. Se ambos fora estes falhar, em seguida, maior não foi mais desde o início, por isso sei que fizemos tudo fora desta operação e sabemos o maior. Não, precisamos retornar esse valor após a função ter feito sua operação, e então é aí que o retorno para você palavra uma operação entra, então temos que ver retorno e então estamos retornando maior. Assim, o tipo de dados de retorno tem muito o tipo de dados fora das funções. Eu posso estar devolvendo o nome completo aqui. Estou devolvendo uma corda. Vamos ver o que acontece se eu colocar uma corda seu retorno Olá, então isso é apenas uma era. Porque ele dizendo que eu não posso implicitamente converter string para terminar porque eu estou esperando um tipo de retorno off inteiro, mas você está me dando uma string. Então eu tenho toe retornar o tipo de dados que é usado para definir a função. Então eu estou retornando maior, então o maior. Com o que quer que saia desta operação, estou devolvendo esse valor. Não, em termos de chamada de função. Precisamos de uma maneira de obter esse valor da função. Então lembre-se que o vazio não retorna nada, então podemos apenas uma chamada de função a qualquer momento. Eu só quis dizer a chamada de função e deixá-lo lá. Mas então, quando é um valor retornando porque ele está enviando de volta um valor, eu preciso ser capaz de pegar capítulo ou armazenar esse valor. No entanto, você quer pensar sobre isso. Então eu fui atrás de outro olhar de variável. Eu quero chamar isso de resultados sobre o conteúdo. Off resultados será o que for retornado a partir desta função Call. Então eu estou indo apenas para atender a chamada função maior número em. Então eu vou passar. Lembre-se que estou esperando comprar. Espera-se que não passe mais dormente dedo do pé desconhecido três. Então eu estou passando em n um em e em três. Tudo bem, em seguida, Semi Colon. Então vamos olhar para esta execução mais uma vez eu obter os três números do meu usuário e, em seguida, eu estou vendo que eu quero o conteúdo fora Esta variável chamada resultado para ser o resultado que é retornado Quando eu chamei minha função maior número em passar todos aqueles números. Então, quando ele causou o maior número, ele recebe os três números não mais dormente para dormente. Três ele faz a sua operação no final da operação estavam enviando de volta o valor que é como resultado desta operação. E mais uma vez, uma vez que é enviado Buck, ele não é armazenado dentro do resultado. Então, se eu quisesse imprimir para a tela o maior valor do que eu teria que dizer console que linha direita maior número dois resultados. Tudo bem, uma interpolação divertida aqui. Então, mais uma vez que é segurar que vai trabalhar em algum lugar está indo toe executar e ele vai bater . A função principal nas funções principais é o nome da impressão e o nome da impressão e e a minúscula e tudo ligado. Então ele vai para a promessa. Tudo bem, então eu estou me executando e novamente e ele está pedindo primeiro o nome. Então eu só vou fazer o teste de nome. Deixar você passar por isso. Então você vê casos superiores detestados nele. Em minúsculas. Isso é bom. Mas depois quero o meu número. Então ele bate fora todos aqueles Não, isso é um aviso? Primeiro número é um segundo número é cinco onda terceiro número é 10 em vemos maior número 10. Por quê? Porque atingiu o telefone mostrado chamada, fez a sua operação em, em seguida, retornou o maior que foram, em seguida, armazenados em resultados em. Depois imprimimos de volta à tela. Então, isso é uma introdução rápida métodos e funções em C afiado como você ir junto e nós bater o objeto ou entrar programação mais. Você vai perceber que as funções estão na base desta linguagem e qualquer outra linguagem orientada a objetos 13. Funções de manipulação de corda: Neste vídeo, vamos ver a manipulação de cordas em C. Sharp. Eu já criei meu projeto, e o nome do projeto é manipulação de string. Então você pode pausar o vídeo aqui e criar seu projeto de aplicativo de console chamado String Manipulation, e então podemos pegar a partir daí agora. Hoje só queremos nos concentrar em algumas das dicas e truques e maneiras rápidas de processar cordas em C. Sharp. Nenhuma string é uma parte essencial de qualquer linguagem de programação que eles representam. Bem, eu diria que 90% do conteúdo que estaria passando através de seu aplicativo tudo que é inserido em seu programa através do uso de um teclado praticamente vem em uma string, e é importante entender as ferramentas que C Sharp tem disponível para nós agora começaram pela limpeza de uma variável string, e eu estou chamando de nome completo na DI. Tenha uma frase aqui. Meu nome é, e sempre erro de ortografia é viagem ou Williams. Agora temos feito isso por um tempo agora, e se não, e se não, então isso é fino dedo do pé imprimir a tela que dizemos console, que é uma classe estática dada dedos por um c afiado em. Então temos a função dentro dessa classe estática chamada linha direita em. Em seguida, especificamos a string a ser impressa. Não, esta string pode ser algo que vamos digitar especificamente. Uma string sempre vem entre aspas ou pode ser o conteúdo de uma variável que está fora do tipo string. Portanto, o nome completo está fora do tipo string fora do curso. Você tem que se certificar de que temos nossos casos apropriados. Em seguida, isso irá imprimir o conteúdo fora para dedo variável. O console nos permite testar como isso funciona, então eu vou mudar. Meus inícios são manipulação de string de projeto e início. E lá vamos nós. Oi, meu nome é Trevor Williams. Então ou consola aquela linha de rato impressa. O conteúdo desligado é variável do nosso console. Não, vamos passar para a concatenação agora. Acabei de declarar para mais variáveis. Um chamou o primeiro nome e chamou o último nome. Então eu gostaria de imprimir um bloco contíguo fora da corda. Contiguo é outra maneira de ver continuar. Waas nessa string deve ter meu nome está em então ter o primeiro nome no sobrenome. Então concatenação é a técnica pela qual juntamos o conteúdo das cordas juntos. Então eu vou consolar essa linha direita e então eu vou colocar em alguma corda estática em . Então isso vai dizer que meu nome completo é assim quando dizemos string estática, isso significa que, a menos que entremos em nosso tribunal e façamos um ajuste aqui, isso nunca mudará. No entanto, variáveis são mais fáceis de mudar porque, em seguida, podemos usá-los toe coletar entrada do usuário em seu conteúdo seria definido com base no que está sendo atribuído a ele. No entanto, há momentos em que queremos imprimir dinamicamente o que está em uma variável ao lado de algo que é estático. Então concatenação nos permite juntar texto estático em texto variável ou variável leva até bura texto bill ou mesmo texto estático sob texto estático. O princípio subjacente é que eles são todos cordas agora. Há algumas maneiras de enganar o Capitão 8 no 1º 1 que eu gostaria de mostrar é usando uma cinta encaracolada. Então vamos fechar. Então nós temos res zero credível e, em seguida, uma chave encaracolada sobre isso. Eu quero colocar o espaço calibra uma brisa encaracolada. Não, na verdade, isto é o que você chama de espaços reservados. Eles começam a contar a partir de zero, assim como muitos espaços reservados como você tem. Ou você vai criar tantos espaços reservados para tantas variáveis quanto você gostaria de enganar o Capitão Oito na cadeia estática. E você começa a contar a partir de 00 será o 1º 1 Então um segundo e o 3º 1 seria para. Mas só temos duas variáveis. Então é zero em um primeiro nome no sobrenome. Nota. O espaço também é importante porque ele irá imprimir de volta a string exatamente como ela é formatada dentro das aspas. Então, depois de colocar são titulares lugar lá, temos que sair da corda na imprensa vírgula em. Em seguida, colocamos as variáveis na mesma ordem para coincidir com os espaços reservados como pretendido. Então eu quero dizer que meu nome completo é primeiro nome e sobrenome. Então isso significa que eu preciso colocar a variável que tem o conteúdo para o primeiro nome, seguido pela variável que tem o conteúdo para o sobrenome em seguida. Isso pode acontecer para tantas cordas quanto nós temos. Tantas tantas variáveis de string como temos outra maneira de entrar em contato nele. E eu vou apenas escolher uma linha desta. Eu só reescrevo. Consola a linha certa e reescreve a nossa sentença. Meu nome completo está ligado. Então eu posso usar o sinal de mais para que eu escrevesse. Meu nome completo é como o meu texto estático pressione o sinal de adição e eles dizem primeiro nome e, em seguida, um sinal de mais, porque eu gostaria de adicionar um espaço entre o primeiro nome nos valores de sobrenome . Eu teria que colocar outro bloco fora cadeia primeiro espaço em, esse bloco, agrupamento em, em seguida, fechar sinal e, em seguida, sobrenome. Então, essencialmente, eu estou fazendo como matemática de cordas. Só estou adicionando quantas cordas precisar do dedo do pé. Junte-se a eles, então tudo fora, isso será impresso em uma linha contínua. Então eu vou receber um texto estático. Meu nome completo é com esse espaço. Vê o espaço entre os dois pontos nas aspas? Então eu tinha o primeiro nome e depois adicionar outro espaço. Então vou adicionar o sobrenome a terceira maneira de entrar em contato com ele depois do Cônsul interino. Essa linha certa é fazendo o que chamamos de interpolação. Então, neste caso, nós realmente começar fora ou string com um cifrão. Em seguida, abrimos aspas em seguida, as questões deste Allah são brisa encaracolado na entrada são variáveis diretamente dentro das aspas. Então eu posso ver que meu nome completo é espaço ligado. Injecta o primeiro nome, tem um espaço ligado e, em seguida, injecta o apelido tudo isto ainda dentro das aspas. Vamos testar todos estes três e ver se eles funcionam da mesma maneira. Lá vamos nós. Três técnicas diferentes, mesma frase. Meu nome completo é problema para Williams. Notei que os espaços estão todos lá novamente. Tudo depende de como você formata o texto nas partes estáticas. Agora vamos passar a contar o comprimento da nossa corda. Se eu quisesse saber quantas letras estavam no meu primeiro nome, então eu precisaria encontrar o Coned fora do conteúdo. Então lembre-se que estou colocando em uma variável. Andi, Se estivéssemos permitindo que o usuário insira conteúdo nesta variável, eu não saberia em nenhum momento qual é o valor do primeiro nome, no entanto, eu quero saber. Eu queria provavelmente construir um programa que muitas pessoas apenas digitam seu nome e então dizer a eles que seu nome é X caracteres longo. Então, para encontrar a força de uma string que eu precisaria, primeiro lugar, uma variável inteira e entende Chamar este comprimento int porque eu preciso de algum lugar para armazenar o valor de comprimento. E então eu vou chamar a variável string pelo seu nome. Então primeiro nome, então eu posso ver pontos. Então eu vou para a função ou propriedade em vez de comprimento. Então a diferença Dina função nas propriedades que você me chama funções usando a doença do perdão, mas em seus tempos e você tem que usar o operador ponto. E quando entrarmos na explicação fora do objeto ou na programação, então eu vou explicar que não operador um pouco mais. Mas uma vez que dizemos alguma variável, alguma variável string e então dizemos médico e eu apenas removemos o comprimento. Então controlamos o espaço. Podemos ver que temos um hospedeiro desligado. A propriedade é mostrada pela chave inglesa em função logo pelo Cubo. Então, se eu disser o comprimento do ponto não é obter de volta o comprimento de qualquer string ou qualquer valor que esta variável string tem. Então eu vou executar este programa, e eu acredito que meu nome tem sete caracteres de comprimento, então eu vou colocar essa teoria à prova. Fiz isso prematuramente. Eu não coloquei o console que linha direita, então console que linha direita em estavam escrevendo o valor fora do comprimento verbal. E lá vamos nós. Então meu nome tem sete caracteres, mas ele não tem. Esse espaço também é chamado como valores. Então, se eu encontrar o comprimento fora do nome completo em, eu apenas vou duplicar essas duas linhas em, e então fazer outro príncipe. Mas desta vez vou dizer que quero tirar o comprimento. Nome completo em Get me apenas ver o comprimento um, algumas impressões, o valor fora do comprimento um desta vez em. Então eu vou dedo do pé, ver que corpo que lida, em seguida, Minha frase que está no nome completo variável é na verdade 31 caracteres de comprimento porque cada I vírgula espaço Isso é quatro caracteres em. Então todos eles se somam. Então, tudo o que está entre aspas será contado no cálculo do comprimento C afiado torna mais fácil para nós substituir o conteúdo ou partes de uma string. Mas vou explicar o que quero dizer com isso. Então, um. Uma vez que uma string é declarada, então você não pode simplesmente executar a função e alterar o valor fora da string. Você tem que colocar em operação como um substituto dentro de outra variável, e então você pode usar essa variável. Então eu vou ter que declarar uma nova string variável novo nome em. Então eu vou fazer com que seja igual o primeiro nome do dedo do pé, não substituir. Em seguida, a função de substituição leva dois caracteres. Leva o velho caractere sobre o novo charme antigo, o que significa que letra ou personagem ou símbolo, o que quer que seja que está na corda que eu quero remover o que é. O que é isso? Então eu quero toe substituir a letra T e então eu digo vírgula, eu notei que o char tem as aspas simples, então char não é aspas duplas como string, mas é aspas simples em. Então estamos colocando o chá com Vamos dizer K. Eu nunca vi meu nome escrito assim ou qualquer variação fora do meu nome que começou seu K , mas o novo nome vai ser primeiro nome ponto Substituir qualquer chá com a letra K em. Então vamos escrever isso no console. Então veja o velho adiar a operação. Tudo bem, lá vamos nós. Então olhou dentro do meu nome e encontrou o chá e o substituiu por uma chave. Vamos tentar um com mais algumas letras. Então digamos que eu queria substituir todos os olhos em Williams por buracos de alguém no dedo do pé. Repita esta operação. Não abaixe, então isso. Estou fazendo isso no sobrenome. Então, apelido Dr. Place e estou substituindo eu por Oh on. Então eu estou fazendo um novo nome em Eu estou Printing Union quer console e vamos ver o que acontece. Tudo bem, então em cada instância, muitas vezes eu fui substituído pelo novo char, que é tudo. Como eu disse, isso pode ser com qualquer personagem. Então, se eu quisesse substituir os olhos com um sinal de at ou hashtag ou um número, o que quer que seja, desde que você possa se encaixar entre essas aspas e é apenas um que eu vou colocar se eu colocar 12 vamos ver o que acontece se eu colocar 12 então eu sou entrando no ar, vendo muitos personagens no personagem, literal. Então, mais uma vez, um personagem é único, tudo bem, então ou vai ser vazio duro. Vai ser mesmo que esteja vazio, se eu quiser. Aquele espaço depois de colocar um espaço, mas que não pode tê-lo sem conteúdo ou com mais de um, hum, personagens artes. Deixo que, como todos agora, vamos passar a comparar cordas. Não, de tempos em tempos, provavelmente vamos querer comparar algo que é inserido, talvez por um usuário, e é armazenado em uma variável com alguma string que conhecemos e esperamos. Então, queremos fazer uma comparação. Eu quero comparar com bits fora de entrada, como talvez quando alguém digita em um passe pela primeira vez, e então eles têm que re digitá-lo pela segunda vez. Você quer comparar os dois só para ter certeza de que eles digitam a mesma coisa ambas as vezes? - Não. Você sempre pode usar uma instrução if. Nós passamos por sua declaração, então você pode ver se em vai usar duas variáveis que eu tenho aqui já. Primeiro nome, sobrenome. Então, e se eu quisesse comparar e ver se o nome e sobrenome tinham os mesmos valores ? Então eu sempre posso dizer se o primeiro nome é equivalente ao sobrenome. Então essa é uma maneira fácil. Compare-os tão fora do curso, que podemos ver se eles são iguais. Em seguida, vemos consola essa linha direita. Você tem o nome da costura para o primeiro e o último. Tudo bem, então nós estamos dizendo a eles que tudo bem, você tem o mesmo nome para o primeiro e último mais em. Então eu vou ver se você tem um nome diferente para o primeiro e o último. Então há sempre essa opção fora do se else, isso é perfeitamente bom. Mas às vezes isso pode ser meio impreciso. Então, às vezes, você quer dizer algo como corda em que é mantido sua corda e você pode realmente preferir vir em fluxo. O C afiado vai vê-los intercambiavelmente ligados. Então você tem uma opção. Essa é a comparação dele. Então ele pode dizer string dot Compare em. Em seguida, você passa as strings que você deseja comparar string a e string beans. Então string a seria o primeiro nome e esse é o que você deseja comparar. Sobrenome. Então você vê, há muitas maneiras de fazer a mesma operação. Mas então este é meio estranho, ok, Sightforward. Ele vai dizer se eles são equivalentes do que fazer isso mais fazer que isso vai retornar em inteiro. Então eu tenho que guardá-lo. O valor de retorno dentro de uma variável. Então eu quero dizer em resultados é igual dedo do pé amarrado. Compare primeiro em comum. Sobrenome ligado. Então eu vou ter que fazer uma declaração se nossos próprios resultados para que você possa ter três resultados potenciais desta operação. Pode ser igual a zero. Ele pode ser nosso primeiro ou negativo quando é zero. Isso significa que as duas cordas são iguais. Tudo bem, então quando é um zero, quando este fluxo de operação não comparar com duas strings retorna um zero, então eu posso ver se o resultado é equivalente a zero. Em seguida, ele iria avaliar para a mesma coisa que o primeiro nome ser igual ao sobrenome. Então posso imprimir que você tem o mesmo nome e sobrenome. Então eu posso ver mais também porque então se é um um ou um negativo, embora, simplesmente significa que eles não são iguais. Mas então, quando é um, isso significa que a primeira corda é provavelmente maior ou tem mais caracteres na foice na corda. Tudo bem, então quando é um desejo, isso só significa que, ok, a primeira string é maior que a segunda string em quando é negativo. Um é do outro lado nosso. Mas a coisa essencial a observar é que se você fizer essa abordagem, então os resultados devem ser iguais em 20 para certificar que as duas strings são iguais. Tudo bem, então estes são dois, você pode comparar cordas. Hum, você pode usar o que for apropriado para você no momento. - Não. Anteriormente, quando você estava olhando para programas de entrada e saída, você veria onde quando você está recebendo um número ou você pretende receber algo para armazenar em ah variável numérica ou alguma variável que não é já uma string que você tem converter a partir do dedo do pé da corda. Esse tipo de dados bem, às vezes você precisará fazer o inverso. Então você teria visto que na concatenação anterior você pode realmente con continente sua string com quase qualquer tipo de dados e ele vai aceitá-la. Mas há momentos em que você precisa converter para string. Então converter para string é realmente fácil embora, então eu tenho na variável inteiro aqui já. Então eu vou apenas reutilizar esta variável em. Não se você já tiver uma variável e quiser alterar o valor. Não é necessário especificar o tipo de dados novamente. Eu só posso ver resultado é igual a zero aqui para forçá-lo a que são 123456789 Tudo bem, eu notei ter sinais de mais. Então eu vou ter que removê-los. Desculpe. Tudo bem. Sem espaços. Então não, eu tenho resultado que é um inteiro sendo igual dedo do pé. Ah, valor off 12345789 Esse é um grande resultado inteiro. Não, se eu quisesse classificar isso em uma string, eu queria dizer string grande número é igual a E então eu queria que ele tivesse o conteúdo off resultado. Então eu vou ter uma seta simples porque ele vai dizer que eu não posso converter, são implicitamente converter em inteiro em uma string, o que é bom. Isso é justo. Então lembre-se que inteiros são usados para muff Praticamente eu queria corda. Você não vai fazer esse tipo de muff. Então, se eu quisesse converter meu inteiro no reboque, talvez uma string, por qualquer motivo, eu poderia apenas olhar para a variável que eu pretendia converter. Disse ponto em diante. Em seguida, há uma função mágica que é muito string, então eu só digo resultados encaixados para string, e então ele vai converter isso em uma string no uma vez que é uma string. É menos incômodo inventá-lo porque não há todas as situações que vão ser tão indulgentes. Eles podem exibir grandioso em uma frase nele não vai através de um estreito. Certo, então há momentos em que você vai querer fazer, ah, conversão. Então, vou imprimir uns cones ao meu banco. Meu saldo bancário é grande número, tudo bem, então meu saldo bancário é grande número em então que vai apenas imprimir essa frase com esta cadeia recém-criada. - Não. Mais uma vez, uma vez que é uma string, mesmo que o conteúdo pareça numérico, eu não posso ir em frente e executar uma operação que é int pensado. Talvez eu tenha recebido um pagamento de $1 hoje, então eu quero adicionar não $1. Então eu vou ver um mais e então eu posso apenas dizer um mais grande número. Tudo bem, isso foi através de um estreito porque eu estou tentando fazer aritmética aqui onde eu estou adicionando o dedo número um algo que agora é uma corda. Eu não posso fazer isso. Então eu vou ter o dedo do pé fora do curso. Basta mantê-lo em inteiro na natureza em então. Se eu precisar total para ser uma string depois, então eu posso converter vendo Dr String No, quero dizer este exemplo com números. Mas então isso não é exclusivo para números. Você pode converter gráfico em string. Você pode converter duplo para string. Você pode converter quase qualquer coisa para encadear suas restrições sobre talvez Ari e outros tipos de coleção. Mas o fato é que, uma vez que você vê esta operação, ou se você quer saber se você tem essa operação disponível para você, ele pode apenas digitar você está muito barco em, então usar um operador de ponto em. Então você pode apenas ver se ele está listado lá para você na inteligência. Tudo bem, então eu vou apenas executar este programa e então nós vamos olhar para todos os nossos exemplos de impressão na tela. Tudo bem, então só são rápidos. Nós imprimimos nossa primeira frase, que foi formada no cheio do invariável. Analisamos os três tipos diferentes de concatenação, um com os espaços reservados com sinais de adição e outro com interpolação. Encontramos o comprimento do valor da variável do primeiro nome, assim como o comprimento da sua sentença. Fizemos um lugar de stringer em todos os chás em meu nome, em todos os olhos no meu sobrenome em. Então fizemos uma comparação de string onde ambos os resultados teriam o fato de que é um nome diferente para o primeiro e o último. Depois de comparar o valor do primeiro nome com o valor do sobrenome em, então fizemos uma conversão de string para a nossa variável para variável de inteiro que representa o nosso saldo em fechar este menos do que apenas ir dizer que este é apenas o toque fora do superfície que C afiadores capacidades de manipulação de cordas são muito extensas sobre ele exigiria muito mais explicação e dedo do pé de vídeo realmente passar por cada coisa que ele é capaz de fora Mas isso sendo dito, Eu encorajo você a experimento e apenas barcos tipo. Criar uma variável string em, em seguida, basta usar um operador ponto para ver todas as outras funções que estão disponíveis para você Procurar no ponto severo Sua variável Desculpe, primeiro nome e, em seguida, você diz encaixado em então tudo o que está aqui para ver um estúdio visual. Desculpe tem uma explicação para o que é. Tudo bem. Por isso, encorajo-te a ir em frente e experimentar. Apenas tipo de frase em uma corrida cada um deles e imprimiu um console em ver qual é o resultado. 14. Exceções de tratamento: este vídeo está em torno de manipulação de exceção em C Sharp. Eu já criei o projeto, e estamos chamando este tratamento de exceção. Procure e faça uma pausa aqui. Crie o projeto no currículo uma vez que você tenha feito isso. Agora, como uma exceção é um problema que surge durante a execução. Off de um programa no git não é exclusivo para ver Sharp. É praticamente em todas as linguagens de programação. Geralmente é um dedo do pé de resposta. Você sabe, entradas inválidas são condições indesejáveis para uma operação. Então você pode ter encontrado talvez no A B M, onde eles pediram para você inserir sua seleção e você pressionar um quando você sabe que você campus um. Mas você aperta um. Então, se você vir umatela grande e desagradável, tela grande e desagradável, então isso significa que eles são exceção. O manuseio provavelmente era ruim porque eles não consideravam isso. Isso pode acontecer. Agora, quando você está escrevendo seu pedido, você é o único que está determinando a entrada no que você sabe, o velho colocar em que você quer? Mais importante ainda, você sabe as entradas desejadas, então há situações que você pode prever um potencial Aaron. É disso que trata o tratamento de exceções. Você vai escrever a corte dela do que chamamos de forma defensiva para que você diga que nestas circunstâncias , passando por uma época desagradável, não saia do programa, mas mostrou ao usuário um bom ar. Uma mensagem para dizer: “ Fizeste algo errado quando podíamos ter sido uma operação potencialmente fatal para o teu programa. Fizeste algo errado quando podíamos ter sido uma operação potencialmente fatal para o teu programa. Fizeste algo errado quando podíamos ter sido uma operação potencialmente fatal para o teu Então eu adicionei algumas notas a este arquivo judicial sobre o try, catch finalmente e throw palavras-chave, todas as quais são palavras-chave usadas. Quando estamos falando de manipulação de exceções. Sabei que a tribo é apenas um bloco que diz: “ Vou tentar esta operação. Eu vou tentar fazer isso as capturas calos básicos pegar qualquer aero como parar em cheque Se houver qualquer URL depois que você tentou, Se houver qualquer URL, então eu quero tomar alguma ação. O finalmente basicamente diz isso. Certo, depois que tentamos e talvez algo tenha sido pego, talvez algo não tenha sido pego. Eu ainda vou fazer essa operação de qualquer maneira, então. O lance é uma palavra-chave que usamos para acabar com a execução, então, às vezes, na programação você tentava algo, então você pega uma exceção tipo articular fora em que eles sabiam que o programador sabe que se essa exceção for capturada, Isso vai ser, você sabe, prejudicial para qualquer operação que está acontecendo. Então você pode jogar manualmente o programa. Haute, como em quando você joga, vai literalmente jogar a era para a tela e sair do programa. Tudo bem, então vamos começar esta pequena aventura com um pequeno programa. Eu escrevi já saquê nos spas e escrevê-lo fora de si mesmo. Então estamos apenas aceitando. Dois números estavam fazendo linha direita console em seu primeiro número em. Então eu estou analisando minha entrevista em um método diferente, então nós teríamos feito converter ponto. Então, em 32 agora eu estou fazendo isso de outra maneira onde há realmente um foco em dentro do tipo de dados em chamado no Parse on. Então funciona da mesma maneira. Exceto que os convertidos em 32 tem uma gama mais ampla e as partes escuras. Mas para o propósito deste exemplo, podemos apenas usar a análise de pontos. Então nós estamos pedindo ao usuário para dois números em, então nós vamos fazer alguma divisão e, em seguida, nós vamos para exibir os resultados. Não, vou rodar este programa na primeira vez. Então vamos ver que 10 dividido por dois vai ser cinco. E isso é perfeito. E nós sabemos que OK ou aplicativo funciona Agora você provavelmente está dizendo, OK, isso é direto, esse padrão, isso é o que era esperado. Qual é a moral da história? Então vamos executar isso de novo. E então desta vez eu vou fazer algo que eu sei que vai abrir uma exceção. Então eu vou ver 10 dividido por zero em. Quem me conhece sabe que não há divisão por zero. Não, veja o que o Visual Studio faz quando eu pressionei Enter ele lança o que chamamos de exceção. Então você vê exceção no identificador. Eles estão nos dizendo que esse vídeo, essa lição é chamada de manipulação de exceções. E eles estão nos dizendo que esta exceção foi solto sistema aled que dividem por zero exceção tentativa de dividir por zero, disse Itália. Qual foi a exceção. Então, mais uma vez certas situações são não, que o seu programa só vai liberar porque essas operações são ilegais. Tudo bem, então mesmo na programação, mesmo que estejamos dizendo ao computador para fazer isso, o computador não pode dividir por zero, então manipulação de exceção nos permitiria. E assim, neste estado, temos que continuar no estúdio visual. E então ele vai voltar para os Estados Unidos onde podemos começar a escrever para o tribunal novamente. Eu sei que vamos ter que escrever, Ah, bloquear aquele Say's deixe-me lidar com a exceção. Então, para começar, tentamos para que eu possa apenas dizer Experimente, e depois abrir com chaves peroladas. Então eu vou tentar e operar então eu posso ter apenas tentar um vazio porque você sabe que é um estúdio visual está me dizendo que ele está incompleto. Então, o que vou tentar? Eu não preciso tentar a entrada porque eu sei que eles vão colocar em colocar em colocar em colocar. Mas vou tentar a operação, que é a divisão, certo? Alguém para tentar dividir. Então eu vou seguir isso com uma igreja. Não, há muitas exceções, e acabamos de ver uma muito específica. Vimos um. É um sistema que divide por exceção zero. Você também tem um sistema que eu devo exceção também tem sistema que tempo desculpe perder muito exceção você tem votar fora exceção de memória, tem um número fora exceções. Agora, eu não estou dizendo para você se lembrar de todos eles. Só estou dizendo que há muitos, então todos vêm de uma classe base chamada exceção . Tudo bem, então só digitamos exceção. Podemos literalmente cobrir todas as bases. E eles só iam dizer exceção E. Então eu vou explicar o que é isso. Mas quando dizíamos que a exceção de palavra-chave é como uma classe base que cobre todos os tipos de exceções. Portanto, não importa o tipo de exceção que é capturado, ele será capturado por esta classe. Não, você provavelmente está se perguntando, OK, então por que eu precisaria especificar o tipo de exceção? Bem, há momentos em que, baseado no tipo de exceção que é capturada, você quer fazer algo diferente. Então, como a divisão por zero, você provavelmente quer dedo do pé deles para entrar em um minuto dino amargo ou não divisor denominado. Desculpe, Andi, se é talvez, ah, ah, sistema que eu devo exceção e você quer trazer outra coisa para que você possa realmente ter vários blocos de captura. Então eu estou indo dedo do pé sente os blocos de captura que é o que a captura tentativa parece. Então, quando as pessoas falam sobre manipulação de exceções ou você ouve alguém dizer tentar pegar, pegar, é disso que eles estão falando. Você tenta uma operação, você pega a seta, e então você pode realmente julgar muitos erros. Eu posso ter várias capturas em cada captura teria apenas uma exceções específicas. Posso especificar isso. Quero que a divisão por exceção zero seja apanhada neste bloco de captura. Então eu posso continuar dizendo, bem, na verdade, na verdade, a ordem aqui é importante, então eu sinto muito por isso. Se eu quiser ser específico, então eu tenho que fazer os específicos antes de pegar exceção. Porque, em seguida, se eu pegar exceção antes da divisão por zero, em seguida, pegar Excepcional teria sido capturando qualquer tipo fora exceção de qualquer maneira. E nunca teria conseguido dividir por zero. Certo? Então, a ordem é muito bem, como eu estava vendo. Se nós apenas temos exceção como Visual Studio apenas indicado, então nós estamos pegando todas as exceções possíveis? Não, eu fiz vendas e para explicar o propósito do E. Eu disse E X ou o que quer que seja. Então este é praticamente apenas um objeto que representa a exceção. Então você percebe quando eles mensagem de exceção surgiu mais cedo, eles virou alguns detalhes que são nomeá-lo. Tinha o conteúdo nos disse o que o ar awas. Então todos esses componentes, você sabe, você sabe,todos esses pedaços de informação que todos nós podemos coletá-los e tipo de dentro de uma variável ou algum objeto chamado e em então que nos permitirá, bem, imprimir o que quisermos. Então, digamos que tentamos esta operação. Então, depois de tentar a operação, pegamos a exceção que disse divisão por zero. Então, quando eu pegar essa exceção, eu posso escolher o dedo do console que linha direita na impressão de uma mensagem de erro, operações ilegais em vez de dar aquela época desagradável onde ele parou a operação e começou a nos dizer sobre o sistema que Dividir por zero. Que isso e aquilo porque isso não significa nada para um usuário, você pode dar um Aramis mais elegante é dizer, “ Ei, cara, você sabe, operação ilegal. Tudo bem, então eu vou tentar a operação, depois imprimir os resultados, então eu vou pegar qualquer seta, então eu posso dizer Finalmente, tudo bem, console as linhas certas. Eu só vou falar. Consolamos essa terra certa e vemos a parada e parte desse é o fim do programa. Então lembre-se que o finalmente irá executar independentemente da tentativa de capturar operações. Vai tentar isto. Se for bem sucedido, isso vai fazer isso. Finalmente, se ele tentar e há um erro que ele pega, então ele está indo para o pé. Ainda faço essa família. Então vamos tentar de novo. Então, vamos fazer um bom 10 em frente. Em seguida, você vê os resultados em e, em seguida, termina programas. Então ele tentou e então ele fez o finalmente vamos tentar isso novamente. Então desta vez eu estou fazendo 10 no zero, então você vê operações ilegais. Então eu me dei minha mensagem de erro em. Então ele ainda fez o finalmente alguém me amável. A mensagem de erro, um pouco mais explícita sabe que eu vou dizer operação ilegal em Coloque um cólon, Ondo. Deixe-me usar a interpolação porque vou imprimir o ar real. Uma mensagem da exceção. Portanto, a exceção é genérica. Mais uma vez, não sei se é uma divisão por zero que devo ao nosso sistema. Às vezes você tem um sistema que eu devo exceções. Eles têm 20 eras diferentes dentro desse tipo de exceção, Tudo bem, então às vezes é bom saber o erro exato que está sendo lançado para que você possa ser melhor em depurar o aplicativo. Mas às vezes não é deliberado. Estou sendo deliberado. Não, mas muitas vezes escrevemos código e não estamos a ser deliberados com as setas. Eu provavelmente estava faltando algo, então eu vou apenas dizer e pontos em. Então eu posso ver essa mensagem. Então coma mensagens. A mensagem real anexada às exceções à expectativa é que quando a exceção é lançada ou carrinho em vez de onde o inverno imprime ilegal Operação Cólon e, em seguida, o Aramis real ele. Então vamos tentar de novo. Então 10 e zero mais uma vez e então estamos vendo aqui a Operação Colon ilegal. Então eles estão nos dando a mensagem anexada à exceção, que é que tentamos dividir por zero. Então isso é um bom nós lidar com erros em. Então, mais uma vez, a final. Ele ainda vai executar Onda como ele vai fazer o que ele precisa fazer. Sabemos que dissemos que há uma palavra-chave chamada “Throw on the throw on on on”. Eu saí para colocar isso por cima deste console, aquele aviso de linha direita. Então, meio que se torna dolar. E se eu passar o mouse sobre ele, então ele vai estar me dizendo que ele é inalcançável, cessa, inalcançável, núcleo detectado porque o fato é que o através vai apenas matar o programa direito Lá. Tudo bem, então quando eu disser tentar, então pegue Exception. Se eu disser, então isso acaba com a operação. Não há nenhuma mensagem de erro elegante em Vamos mesmo testar para ver se há mesmo um finalmente. Então eu realmente há um finalmente, mas vamos apenas validar isso. Então 10 e zero quer mais. Então você vê, ele só vai direto para o arremesso. Simplesmente pára. O programa vem para a jogada. O estúdio visual está nos mostrando qual é o problema. Mas, em seguida, se você é aplicativo de console não está sendo executado dentro do Visual Studio. Então há. Não há nenhuma dessa tela para o usuário, tudo bem, então ele iria apenas sair do programa e eles nunca saberiam saídas brancas do programa. Tudo bem? E, bem, há a exceção “Unhand Aled”. Algo sobre isso é a mensagem da era que surgiria para aquele usuário se usássemos através. Então, mais uma vez exceção manipulação Izabal, observando para tipos particulares off erros em lidar com eles elegantemente. 15. Cursos e objetos: este vídeo é voltado para ensinar-lhe um barco. Programação orientada a objetos e, mais especificamente , classes , objetos, métodos e propriedades já criaram o projeto e é chamado de classes e objetos. Procure e pause aqui e vá em frente e crie este novo projeto sob sua solução e retome quando terminar. Não, vamos começar com o que uma classe é em uma classe é uma palavra-chave muito, muito importante Ao falar sobre linguagens de programação orientadas a objetos, eu teria usado essa expressão várias vezes em fez isso. Esta é a explicação Agora nossa classe é um modelo para um tipo de dados, certo? Então, para um pouco mais de contexto, temos tipos de dados. Nós temos int nós temos corda eram barras. Temos char bem no DSO. Há momentos em que provavelmente precisamos de nosso próprio tipo de dados, porque precisamos definir algo dentro de quatro programas que tem propriedades únicas. Andi, mesmo uma mistura de outros tipos de dados baseados que acabei de mencionar na classe DSO A nos permite definir nosso próprio tipo de dados, que pode ser uma combinação de outros tipos e propriedades e métodos que queremos. Tudo bem, então essa foi uma explicação muito não oficial. A Andi. Espero que tenha feito sentido. Mas se ainda não estiver claro sobre o que estamos prestes a criar uma aula, vou explicar em detalhes tudo à medida que avançarmos. Então vamos dizer que queríamos nossa própria turma chamada box. Não, Senhor, já temos aula. Temos a classe de palavras-chave que nos diz Bem, esta é uma classe e chama-se Programa. Mas eu quero outra classe que não seja programa, então eu não posso definir uma classe ou vontade. É geralmente desencorajado para a classe final dentro de outra classe. Mas preciso dela dentro do espaço do nome. Então, dentro das chaves para o meu espaço de nome eu vou apenas criar outra classe nesta imprensa digite duas vezes em. Então eu vou dizer classe, Andi, esta classe vai ser chamada de caixa, então eu quero uma classe chamada caixa. Quero um tipo de dados que pareça uma caixa. Agora eu disse que era uma planta. Então, quando você está definindo uma aula, você precisa se sentar. Ok. Eu disse que preciso de uma aula. Eu preciso de um novo tipo de dados é dado um nome. Como é que normalmente se parece? Quais são as propriedades? E quando eu digo propriedades, elas são as características definidoras deste novo tipo de dados. Bem, posso dizer que uma caixa é um objeto três D. De um modo geral, Onda caixa geralmente tem comprimento, largura e altura. Certo, então sabemos três propriedades que esta caixa terá. Então, para definir propriedades, vou precisar do modificador de acesso. Então nós olhamos para um em quando estamos fazendo métodos, nosso chamado É estático. Bem, há outro. Você tem bem público. Você também tem privacidade. Então, no caso, fora de uma classe, podemos defini-lo como público. Em seguida, damos-lhe um tipo de dados para que o tipo de dados pode ser fora de outra classe ou pode ser fora de um tipo de dados base. Então, mais uma vez, esta sou eu a definir a ideia. Testemunhei outra aula em outro lugar que eu poderia usar um dia na hora. Não. No entanto, estou mantendo simples. Tão público em, então meu tempo de dados para duração provavelmente seria algo como o dobro em. Então eu vou chamá-lo de link. Então eu só vou dizer para começar a vírgula. Tudo bem em. Isso é praticamente o que parece. Então público, comprimento duplo em seguida o getter e setter, significa que isso está me permitindo recuperar o valor sobre isso está me permitindo definir um valor. Tudo bem, então eu posso obter o valor da minha propriedade chamada Length on Die pode definir um valor. E o estúdio visual está meio que insinuando que, você sabe, eu estou violando a convenção de nomes. Então deixe-me ver o que eles vão me dizer lá, apenas sugerindo que propriedades fora das aulas devem ter letras maiúsculas. Certo, então vamos tentar de novo. Não, este alguém para mostrar um atalho de teclado ao definir propriedades dentro de uma classe em C sharp no Visual Studio, você pode escrever a palavra prop em, em seguida, double top tub, e então ele vai tipo fora, você sabe, completar essa linha para você. Então ele vai destacar o tipo de dados. Posso expressar o duplo direito e pressionar em cima, depois passar para o próximo, que é minha propriedade neste. Eu queria ver o fôlego, e estou usando a convenção de nomes sugerida desta vez. Então eu aperto Enter on. Em seguida, adiciona-o à propriedade. Tudo bem, então o que tentou de novo? Prop banheira dupla em, em seguida, dobrar em, em seguida, banheira em. Então este vai ser altura para o centro. Nós terminamos. Tudo bem. E então parabéns. Você acabou de definir seu primeiro usuário. Comeu um tipo ou sua primeira classe. Saiba que eu tenho esse tipo de dados definido pelo usuário. O que eu faço com ele? Embora eu o use. Tudo bem. Então vamos pensar sobre como usamos tipos de dados regulares e ganhou o tipo de dados regular. Nós apenas especificar ou tipo de dados em. Então dê-lhe um nome e, em seguida, talvez, dê-lhe um valor. Certo. Então, quando queríamos um número, teríamos dito algo como, não é esse o tipo de dados do nome. Então dê-lhe um valor. Verdadeiro. Não. Queremos definir caixa como uma barra muito. Deseja uma variável fora da caixa de tipo? Então, caixas um tempo de dados? Não. E queremos uma variável que representa caixa. Então, fim de inicializar uma nova variável ou o que chamamos de objeto. Então eu só vou toe escreve um comentário aqui, criar objeto fora da caixa tipo classe. Então eu vou dizer algo como Box. Então vou chamá-lo da mesma forma que ligamos. INT é o mesmo. Só estou ligando para o tipo de dados. Então eu vou dar-lhe um nome, alguém para dar-lhe uma caixa B comum. Então é muito sensível a maiúsculas e minúsculas Se eu defini classe com uma câmera com um B maiúsculo, então ele vai ser visto de forma diferente como B. Mas poderia ter sido qualquer coisa que eu poderia ter dito Box B Box um a mesma convenção de nomenclatura que nós teríamos usado para ir para e Nome sagrado ou variáveis se aplicariam. Aqui estão a única exceção é que eles podem olhar. O caso realmente importa muito. Então eu tenho minha caixa de tipo de dados e notar que é meio legal concedido assim como o programa. Então isso é uma aula. E, em seguida, caixas chamada concedido a comum ser caixas Kalakota assim como Nome. Então essa é a minha variável estão nesta situação. Meu objeto em que eu vou inicializá-lo para uma nova instância fora da caixa, e este passo é muito importante. Tudo bem, então sem este passo, então bem, seria que não funcionaria essencialmente. Então, se eu dissesse que a caixa está no estúdio visual do Colon cívico aceitaria isso. Mas nada do que fizermos depois funcionaria. Iria apenas lançar erros. Tudo bem, Então, toda vez que você está usando uma nova classe ou um novo objeto definido pelo usuário lamentam e você definiu o tipo de dados são, que está na forma para a classe que você teria criado, então você precisa inicializá-lo dizendo que o nome da classe, algum nome do objeto é igual a uma nova instância fora desse nome de classe novamente em chaves abertas e fechadas . Há momentos em que você pode ver o conteúdo no aparelho, mas esta não é uma dessas vezes, então eu não fui dedo do pé. Traga esse cenário ainda, e prosseguiremos com nosso objetivo. Então saiba que temos o nosso objeto de caixa ou uma variável de caixa, e eu vou começar a chamá-lo de objeto de No. Um, certo. Eu continuo chamando variável doente e pode Arana mental paralelo, mas é realmente um objeto. Uma vez que está fora de um tipo de classe em bits, não inicializado, não está no objeto. Tudo bem, então eu posso dizer caixa em um operador muito, muito especial que eu sei que você viu algumas vezes no provavelmente nunca significou muito para você. Temos a nossa parada completa, então, ponto de caixa. Veja o que a inteligência está fazendo. Está me dizendo que tenho acesso à propriedade. Vê aquela chave inglesa? Esse alcance significa propriedade chamada respiração. Eu tenho acesso a uma propriedade chamada altura, uma propriedade chamada comprimento todos os três fora, que eu acabei de definir dentro da minha classe. Tudo bem, então eles estão me dizendo que eu posso conseguir e eu posso definir, que significa que eu posso imprimir uma caixa desse tamanho se eu precisar do dedo do pé. Eu também posso dizer caixa que o comprimento é igual a algum valor Alguém para fazer isso, alguém para definir algum valor. Então caixa esse comprimento Então caixa que o comprimento é 10. Então vou guardar a caixa que com o nosso hálito triste é igual a 15. E então eu também vou dizer caixa encaixada altura é igual a cinco. Então eu estou definindo valores aqui, certo? Então c sharp torna muito fácil para você criar um objeto em, em seguida, definir valores para esses objetos. Então, quando eu estou colocando ou atribuindo valores, que é eu definindo quando eu estou imprimindo, que é eu ficando para que eu possa realmente fazer um console pontos. Linha direita. Tudo bem, então você vê isso, não operador de novo. E observe a codificação de cores no console de palavras. Parece a codificação de cores na caixa no programa em todas as outras classes que teríamos chamado. Então isso significa que os criadores fora da linguagem C afiado criaram uma classe e, em seguida, esta classe em eu sei isso porque depois que a inteligência operador ponto me emitir tudo o que eu posso olhar para a classe, ele tem muitas propriedades, e os métodos do cubo representa um método. Certo? Então, tem um método chamado linha direita. Também tem uma propriedade chamada propriedade OTA chamada propriedade era. Chamou a isto uma propriedade chamada que a minha turma só tem três propriedades. Este tem tantas outras propriedades que eu quero dizer, pode nunca usar com toda a honestidade, nunca usou algumas dessas coisas aqui, mas as ferramentas estão lá. Então eu só estou tentando mostrar que quando você está criando uma classe , depende de você. Este é um blueprint Mas então ele é inicializado, e então tudo se torna real porque eu posso realmente interagir com as propriedades e métodos que você teria definido. Então eu fui ver um ponto de console na linha direita. Então eu gostaria apenas de imprimir as dimensões da caixa são caixa que a caixa de comprimento que largura Unbox iniciar altura escreve. Só estou imprimindo, mas a violência. Então, como eu disse, quando você está tentando ver os valores que você realmente está fazendo, eu entendo. Mas quando você está dizendo que os valores que você está fazendo estão definidos agora, veja o que acontece se eu remover o conjunto do comprimento. A Andi. Eu removi o get da altura. Tudo bem, então não, tem um estreito porque eu estou tentando definir um valor em uma propriedade que só eu me baixa para acertar . Sim, é público, mas está dizendo que você não é um lugar baixo, um valor dentro desta propriedade em. Então está me dando aquela flecha porque está dizendo: “ Oh, Oh, isso é ilegal. Sua leitura só você pode recuperar os valores, então não está dando homens. O Irwin. Estou imprimindo porque só estou recuperando aqui. Tudo bem, , então, da mesma maneira para a altura que eu só coloquei para definir. Então, sim, eu posso colocar um valor lá, mas eu não posso recuperá-lo. Tudo bem? Por isso, estou a apontar tudo isso também. Porque quando você está indo para estar interagindo com outras classes, bem , uma, quando você está definindo suas próprias classes, você vai ter muito cuidado se você sabe, se necessário para saber que nível acesso que você está dando dedo do pé. Que propriedade? Então, um ser humano provavelmente é. Bem, digamos que você conheceria qualquer ser humano a menos que você dê à luz este ser humano. Você teria conhecido eles com os nomes para que você não apenas vá em frente e definir o nome. Você não define o primeiro nome e o sobrenome, mas você pode obter essa informação, certo? Então, se você definir uma classe que talvez você chame de pessoa, que se parece com um ser humano, você sabe, você está defendendo com propriedades de um ser humano em uma propriedade fora de um ser humano seria o primeiro nome. Outra propriedade seria um sobrenome, certo? Você provavelmente teria o primeiro nome com apenas obter no sobrenome com apenas ficar bem. Mas então você provavelmente tem algo mais que pode obter o nome completo em que você nunca iria provavelmente definir, definir colocar saris colocar um conjunto no primeiro nome no sobrenome são então eu coloquei, mas minha irmã e meu getter em minhas propriedades na minha classe E agora vou executar este programa. Então deixe-me apenas mudar rapidamente sobre os inícios do programa. Tudo bem? Então são muito simples programa. Essas dimensões impressas ou de caixa são 10 15 e 5, assim como todas as que as definimos. 10 15 5 em. Depois imprimimos sobre a sentença. Então, temos feito um monte fora de entrada ou coloca programa. Então você pode realmente modificar isso para receber os três números como entrada e, em seguida, definir os valores e, em seguida, fazer a impressão. Então eu vou fazer isso. Eu queria pausar este vídeo agora e tentei fazer você mesmo. Então você está em pausa e ele vai passar juntos. Artes completaram esse exercício, então eu coloquei alguns comentários e Cannery arejando o tribunal. Por isso, é sempre bom ter as suas declarações num só lugar. Quero dizer, eu aceito que algumas coisas você não sabe que variável você precisa até chegar ao ponto, mas quando você pode apenas tentar e colocar todas elas em uma área em. Então eu pedi para os três números, e então eu os coloquei em. Depois apanhei-os. Tudo bem, então vamos apenas executar isso e CEO que funciona. Então eu estou recebendo o comprimento e esta vai ser uma caixa que é de 10 por 15 por cinco em. Então só vai imprimir. As dimensões são 10 por 15 por cinco. E se eu quisesse fazer algo com esses valores? E se eu quisesse que minha caixa me dissesse que é volume, então eu sei que é comprimento irrita ponte. Sei que é altura, mas depois queria calcular o volume com base nas propriedades. Saiba o que eu posso fazer é definir um método para que eu possa definir uma função dentro da minha classe e apenas para aviso de contexto temos a classe chamada Programa em. Tem uma função. Então passamos por ho para definir funções, e eu vou usar os mesmos princípios exceto que desta vez dentro de uma classe, um novo corpo de classe, certo, certo, então as últimas funções nós os defendemos em vez do elenco programa. Mas eu não quero esses métodos dentro do programa. Eu quero que eles dentro fora da minha classe chamado Box on Este método está indo toe retornar os volumes que eu fui para chamá-lo, Obter volume. Tudo bem, alguém para dizer público em então eu queria retornar um valor, Sir Mobile e seu valor retornando. Temos que especificar um tipo de dados alguém para dizer o dobro. Então eu vou chamá-lo Get volume em então ele não está tomando quaisquer parâmetros e eu vou explicar por que ele não está tomando parâmetros. Ele não precisa tomar parâmetros porque é uma parte fora da classe que tem as propriedades. Então, como resultado, há como irmãos. As propriedades são irmãos. Eles sabem um do outro. Os métodos são irmãos com as propriedades, então você pode realmente apenas referenciá-los diretamente dentro do método. Você não tem que passar em nenhum parâmetro porque eles estão todos dentro daquela caixa. Tudo bem? Então, quero dizer, como eu disse, esta é uma definição de tipo de dados. Então, se eu tenho uma caixa que tem um comprimento com altura ah, é também o volume. Todos eles ainda estão relacionados com esta caixa, então eu posso pensar em uma escada. Você define a classe, você dá propriedades a ela. Talvez você tenha dado pelo método. Nosso telefone de ferramentas evita o que quer que seja, o que eles estão separados. Alguém se opõe a esta caixa? Tudo bem, então eu vou dizer e eles notaram que a linha vermelha porque é o valor retorna. Preciso voltar. Então eu estou retornando tempos de comprimento, pão, tempos, altura. Tudo bem, então é assim que nós obtemos o volume de quaisquer três objetos D, então saiba que eu tenho esse valor. Posso voltar à minha função principal ou deixar-me pô-la na era em que estou a arranjar as propriedades, depois vou dizer em volumes. Eu disse que é bom dedo do pé. Declare variáveis em um ouvido, a menos que você perceba que precisava de outro lugar. Diga, só uma cenoura. Então, em volume vai ser igual a nossa caixa de chamada objeto. Quando eu disser ponto você vai notar que eu tenho o volume não disponível para mim. Então, quando eu digo obter volume, isso significa que carros de função, então quando ele está executando, ele recebe os valores de nossos usuários em. Em seguida, ele define os valores e, em seguida, obter o volume. Mas seu aviso tem em erro aqui porque dizendo que eu estou voltando um duplo, mas eu estou armazenando dentro fora em int. Então meu mal que precisa ser duplo volume é igual dedo do pé. Ponha volume. Então o que vou fazer é dizer que o volume da caixa está ligado. Então eu estou apenas correndo de volta o valor que está dentro da minha variável chamada volume. Certo, então vamos passar por isso de novo. Temos uma caixa. Nós declaramos um objeto de dados chamado caixa estavam preenchendo-o com valores em. Então estamos calculando. Ah, volume. Com base nesses valores, não há necessidade local. Esta escola parece imaginar se você lesse todas essas coisas em um lugar e ele pode ficar confuso. Então, dentro da sua turma, você pode ter tantas funções que eu poderia dizer públicas. Talvez eu tenha outra função que fique com a área. Então eu vou dizer, obter área desta vez fora de qualquer um dos lados e, em seguida, a era é geralmente comprimento por respiração. Então não é a altura escreve. Eu tenho outra função para que eu possa fazer outra onde eu vejo uma área dupla é igual a caixa que obter área. Então, quantas funções eu precisar ou quiser, eu posso defini-las dentro da minha classe em seguida em, você sabe, em uma necessidade necessidade por necessidade base. Eu só declaro meu objeto, faço meu telefone mostrado chamada em, em seguida, obter o valor e você pode ter formações vazias também. Então nem sempre vale retorna. Só estou a reboque. Duplicar esta linha usando o controle de impressão para fora da área que eu estou recebendo de volta. Tudo bem, então vamos tentar executar este programa, e eu vou fazer algo que eu sei que vai lançar um aviso de erro que eu descuidadamente tenho usado o dobro. Então estou sugerindo que meu comprimento, largura e altura podem ser o dobro. No entanto, eu só estou fazendo um em que Pires para a linha de leitura. Então esta é a flecha. Se o meu comprimento era 1,5 e eu pressiono enter, então eu estou recebendo um erro de exceção Aled unhand. Tudo bem, então nós falamos sobre manipulação de exceções onde é bom embrulhá-lo na captura de tentativa para evitar esses tipos de erros. Mas só por simplicidade. Eu só vou mudar isso. Então, se nós temos em Pires escuros, então adivinhe o que nós também temos. Temos dupla arte pars, e se estamos fazendo um duplo ponto partes, também precisamos ter o valor que está sendo piratas entrando em um duplo. Tudo bem, então vamos mudar esses dois duplos antigos. Como eu disse, é muito rigoroso. Então nós apenas mudar o motor duplo, então nós temos duplo N um fazendo um duplo lote pars em duplo, duplo, duplo, duplo, duplo, duplo, duplo em tudo não é relativo a duplas. Então vamos tentar de novo. Então o comprimento é 1,5 na respiração é 3,4 na altura é a noite faz algumas dimensões aleatórias . Então, não, eu estou vendo que as dimensões são esses três valores a área ou o volume Desculpe é 45,9 , então isso é 1,5 vezes 3,4 vezes nove em, então a área é 5,1 porque isso é 1,5 vezes 3,4. Então, não, temos algum tipo de dados que representa uma caixa. Mas adivinha? E se tivéssemos duas caixas ou mais de uma. Tínhamos uma coleção fora das caixas. O fato é que podemos definir quantas caixas precisarmos. Então eu vou dizer que isso é caixa em. Depois há uma segunda caixa que eu preciso estar atento para o trabalho. Dimensões antigas para segunda ver caixa. Oh, então não há nada me impedindo. Então, é como, Oh, Oh, nós podemos ter várias variáveis integer, múltiplas variáveis de string em que você pode ter vários objetos. Soletrar está me derrotando. Ele pode ter vários objetos fora do mesmo tipo de dados, desde que os nomes não sejam os mesmos. Tudo bem, então eu posso ter caixa para caixa cinco dólares agora, imagine tentar preencher as dimensões fora. Ah, nós somos hospedeiros cheios de caixas. Então você sabe que suas 10 caixas e você tem que escrever um programa para allo eles para inserir as dimensões para 10 caixas. Então você está indo tohave caixa para caixa três caixa para caixa cinco e, em seguida, você teria problemas por caixa porque, em seguida, para caixa para eu vou ter toe repetir todos esses passos apenas para ter certeza de que eu estou recebendo para caixa, também. Portanto, há uma maneira mais fácil. Só estou a dar uma ideia de que pode ficar entediante. Mas eu só estou dizendo que isso é o que neste momento, nós teríamos que fazer, então eu vou apenas prosseguir com a caixa também. Então temos a promessa de dispositivos para as dimensões da caixa e estamos sentando e imprimindo os valores estão realmente sentados em calcular a caixa de palavras de vírus. Então eu só vou duplicar tudo isso e eu vou fazer isso de novo por baixo, certo? Mas neste momento, vou mudar esses velhos, então não vou realmente esclarecer em uma entrada. Então, como eu disse, se você tem que re usar uma variável, você pode realmente apenas referenciá-la pelo nome depois de ter sido declarado. Certo? Então nós declaramos isso aqui. Não estamos carregando juntos. Só estamos usando contra eu só estou fazendo referência a ele. Então vou trocar estes velhos até a caixa 1. Então é uma caixa uma caixa para “Desculpe”. Então estamos mudando essas referências. Auto box também em então. Uma vez que eu terminar isso, eu vou apenas explicar rapidamente exatamente o que está acontecendo aqui em. Então eu estou indo dedo duplica todas essas linhas de impressão, nós estamos bem onde eu vou ser a caixa de impressão, também. Dimensões em. Em seguida, anotações que eu vou depois sobre ele. Então eu não vou fazer isso de novo e o que eu vou mostrar a vocês que você pode realmente imprimir diretamente do nosso retorno, certo? Então, depois de notar, sugeriram que você coloque o sermão valor de retorno, mas que obter volume é um telefone, filho que retorna algo. Então, quando ele retorna esse valor eu sei que disse em uso uma variável. O Stamatis retornou o resultado deste cálculo em Então que o resultado dos cálculos foram para ficar armazenado dentro do volume. Não, não ouço volume de impressão. E estou imprimindo ar, que sabemos para onde comprar caixa. A primeira caixa. Vou remover essas declarações para a segunda caixa. Então eu estou sentado. São as alturas a respiração sob o comprimento. Mas então eu estou imprimindo caixa para dutos, e então eu vou apenas chamar a função bem ali. Obter volume sobre isso. Vou imprimir de novo. Encaixe essa caixa de desculpas, também. Pontos ganham área. Tudo bem, então eu estou apenas mostrando a você que você pode imprimir a variável e pode fazer a chamada de retorno. Obtê-lo. Armazene-o em uma variável muito branda e manipulada que pode ser mais desejável se você tiver . Você sabe outras coisas que precisa fazer com o valor. Mas então você também pode apenas devolvê-lo. Imprima diretamente dentro de sua operação de impressão. Certo? Então você tem esses dois. Ah, e claro, você tem que saber quando você está usando qual método. Então vamos executar este programa mais uma vez. Onde tem duas caixas. Então eu tenho duas caixas fora do tipo de dados que eu acabei de criar. Caixa de chamadas. Vou imprimir prompt para inserir valores para a primeira caixa em. Então eu vou calcular o volume na área que eu fui para solicitar novamente o final de nós para a segunda caixa. Então, quero dizer, eu posso modificar o prompt para dizer para a caixa um. Tudo bem, então eu vou fazer isso. E então eu repito isso para os problemas de caixa, também. E depois de obter a violência ou caixa para, estamos apenas definindo as dimensões de acordo. Em seguida, vamos apenas imprimir caixa uma caixa de dimensão uma área sobre o volume e, em seguida, caixa para caixa também na caixa. Então eu estou apenas adicionando estes para que nós tenhamos algumas dicas visuais sobre quais valores são para caixa um em que vales são para caixa também. Então vamos executar isso e ver os trabalhos de espera. Tudo bem, então eu já inseri alguns dos valores 56 e 34 dimensões para a caixa um em. Então eu vou dizer 54 em 10 para dimensões. Então caixa para percenter, e então podemos ver aqui Caixa uma dimensões são essas três em seguida caixa duas dimensões são essas três e esses são os cálculos. Eles vêem que eu ainda estou recebendo a área no volume mesmo que eu estou apenas imprimindo diretamente no console. Direita alinhada o valor de retorno. Tudo bem, então certifique-se de que você não se confunde com o livro brisa cedo e que nós estamos fazendo uma chamada dentro do console que linha direita aqui. Então, quando chega a esta linha e começa bem no texto, ele percebe que Oh, eu tenho que fazer uma chamada telefônica mostrada. Deixe-me ir para a diversão mostrada em então que vai retornar algum valor em então o que ele retorna é o que recebe concatenação fez em reboque a string que está sendo escrito para o console. Então, como eu continuo dizendo que há muitas maneiras de fazer as coisas, eu acho que, você sabe, recuperá-lo. Responder em uma variável é muito mais limpo, muito mais fácil de ler do que algo parecido com isso. Mas mais uma vez, você tem esse método disponível para você. Agora, como ato final, vou mostrar a vocês a melhor maneira de lidar com suas aulas. Então eu teria que passar pela explicação meticulosa fora dizendo por que não devemos definir outra classe dentro deste artesanato. Certo? Então nós temos um programa de aula e eu tive que passar por, você sabe, uma reestruturação bastante fora do registro para ter certeza de que eu não estava dentro desta chave encaracolada. Por dentro do nome Space Girl? Uma brisa no dit é realmente a melhor prática. É pelo menos um muito mais limpo olhando arquivos de projeto quando e tribunal sublinhado. Em geral, quando você cria um novo arquivo por arquivo de classe, então observe que temos uma classe chamada programa. Temos um arquivo correspondente em nosso projeto chamado Programa. Isso é sim, o que significa que qualquer classe que você criar, é melhor prática criar um novo arquivo. Chame de que o nome da classe ponto CS em. Coloque sua definição fora de uma classe dentro desse arquivo. Então, na verdade, vou fazer isso agora mesmo. Então eu vou fazer essa aula que acabamos de criar, e eu vou cortá-la. Então todos os tribunais associados com a classe entendem fazer o controle X, e eu estou citando de dentro de mim em diante. Então nós perdoamos os visitantes para os poucos segundos e tudo vai para aqui onde vai ser como, Oh, eu tenho, eu tenho, ah definição para o tipo de dados aqui. Isso não existe. Ah, e eles iam dizer, visitantes para fazer Está tudo bem. Sabemos o que estamos fazendo. Então vamos para nossas classes de projeto e objetos, certo? Clique. Em seguida, clique. Ou em. Então o que estamos fazendo é adicionar uma nova classe. Vês aquela aula? Então, nós clicamos em classe mais uma vez. Seja qual for o nome da classe, é melhor prática dar o arquivo que nomeia. Vou chamar essa caixa de vidro, então isso vai em frente e criar um novo arquivo. Andi, ele vai até ir em frente como faras preenchendo o nome da caixa de Deus classe porque, contextualmente, ele já está nomeando a classe. Então eu vou apenas substituir este cabo pré-definido em notar que dizendo para referências. E isso é porque basta me comprar criando essa classe na caixa. Nenhuma propriedade ou qualquer coisa no meu minuto detecta automaticamente isso. No entanto, o tipo de dados está de volta, então eu sei o que estou fazendo. Mas então não tem propriedades. Não tem função. Então, todo o resto ainda está aqui. Fio. Então eu só vou substituir este bloco fora do cabo com a classe que eu acabei de criar. Então, quando eu voltar para a minha maldade, tudo está bem. Então, mais uma vez, quando estamos prestes a criar uma classe é realmente melhor ir para o nosso projeto. Clique com o botão direito do mouse ir para anúncio, clique classe dar ou classe e nome. Então vamos dizer que eu criei uma classe chamada pessoa, tudo bem, e então fazer todas as nossas definições, todas as nossas propriedades e eu apenas sinto que apesar de três propriedades rapidamente, eu não queria aborrecê-lo com escrevê-las Segunda pausa e escreva-os se precisar do dedo do pé . Mas seu primeiro nome, sobrenome e idade em que eu vou declarar outro neste momento. Estou usando um modificador de acesso diferente, e este vai ser chamado de privado. Então privado seria salário por argumentos. Escape duplo em Sallah re. Tudo bem, então eu estou definindo isso como público sobre isso como privado saber quando algo é privado, isso significa que nada fora dito fora da classe Can Access City não pode acessar diretamente esta propriedade do objeto. Tudo bem, então deixe-me colocar isso em contexto para isso. Então eu vou voltar para o programa. Eu não vou fazer muitas modificações porque a pessoa está chegando no final desta lição. Mas vamos ver o que acontece. Alguém para dizer “pessoa”. Reparei na pessoa do texto, porque está em um arquivo de classe. É no mesmo espaço de nome, então eles sabem sobre o outro e seus irmãos. Então pessoa em, então, como de costume, depois de declarar um novo objeto fora pessoa, alguém para ver P pessoa maiúscula, que o mesmo da classe comum P pessoa que é nome fora do objeto é igual a uma nova instância de uma pessoa. Tudo bem, então eu posso dizer pessoa o objeto em dizer ponto em seguida a inteligência está me mostrando exatamente o que eu posso acessar. Eu posso acessar a idade porque isso era público. Eu posso acessar o primeiro nome e sobrenome porque aqueles que também são públicos. Mas não posso acessar o salário porque é privado, certo? Então, se eu chegar tão longe como escrever salário porque eu estou desafiando estúdio visual e ver afiado e eu vou dizer certo, você sabe, eu quero ver salário, então vai dizer que você não pode. Não é acessível devido ao seu nível de proteção. Então, porque eu disse que é privado, isso é informação privada. Não posso continuar e dizer que quero ver o salário. Tudo bem, então geralmente quando você tem propriedades privadas são membros privados sente dentro de uma classe, então você me o que você chama de função getter. Então já estamos definidos que podemos ter um padrão, obter um conjunto padrão assim que definirmos nossa propriedade pública obter um conjunto padrão assim que definirmos nossa propriedade pública. Mas quando é privado, você provavelmente não quer fazê-lo assim para que você possa realmente fazer algo como definir uma função. E estou me ajustando para chamar esse público. Chamá-lo de duplo em ir ver obter salário e, em seguida, esta função pública que eu deveria ser capaz de acessar Quando eu digo pessoa ponto vai retornar aipo. Então devolva aipo. Tudo bem, então. E se eu precisasse sentar o valor para o salário? Lembre-se, é privado e não tem nenhum getter e setter, então geralmente eles realmente criariam outra função. E eles chamam isso de sentar-se para que você possa ver público em dobro obter salário e isso vai voltar . Mas então este pode ser anulado porque eu não preciso devolver nada quando eu estiver sentado o salário, entanto, eu vou exigir que você me diga em casa com salário Eu estou sentado para esta pessoa. Então eu preciso de um valor de você. Então eu vou dizer para me enviar um parâmetro em. Eu vou dizer para me dar aipo com. Vamos lá, então. Sem retorno, mas estou sentado. O salário de capital s, que é o meu campo de membro privado, tem o mesmo valor que o salário que está vindo através do parâmetro. Então, salários ele ganhou um salário, então Ah, boa condenação de nome. Na verdade, quando se trata de membros privados é que o uso sublinhado em não letras maiúsculas. Assim, o público acessível teria a letra maiúscula. Mas uma vez que é privado para usar um sublinhado e um caso comum. Então deixe-me mudar o barco. Quero dizer, você viu que funcionou de qualquer maneira. Então não é sobre isso. Trabalhar contra não trabalhar é apenas uma questão fora de questão. Este é o padrão. Então aparece outra pessoa, olha para o teu núcleo. Eles sabem exatamente o que estão olhando de relance. Muito bem, então salário duplo privado que é o nosso campo de membro privado. Precisamos de uma função para obter o valor que está lá, e precisamos de uma função para definir de valor lá. Então, de volta ao programa, eu posso salvar pessoa ponto em Eu só terei acesso a quaisquer métodos ou propriedades que têm o público identificar. Ire são modificadores de acesso. Desculpe. Ah, indicador ali. O filho Clary. Então é isso por isso? Muito, muito então é isso para esta introdução rápida a classes e objetos em C afiado. Vou encorajá-lo a pensar em qualquer coisa. Pensa no teu poço. Em seguida, a última aula chamada Pit on. Em seguida, comece a escrever todas as propriedades diferentes. A Andi. Gosto de pensar nas propriedades como os conhecidos sobre os métodos como os verbos. Certo? Então o conhecido seria como algo que está lá é assim que uma caixa está sempre em turbulento. Sempre foi depois do nascimento. Ele sempre vai ter uma altura, mas, em seguida, obter o volume e obter a área, ou na parte superior na instituição da pessoa, obter o salário ou definir o salário ou até mesmo obter o nome completo. Então deixe-me digitar esse. Eu quero que você complete esta string pública, obter o nome completo. Quero que defina essa função, coloque o nome completo dessa pessoa. Eu queria compartilhar sua quadra comigo. Então podemos passar por qualquer dificuldade que tiveram juntos. Então, mais uma vez, os métodos são mais diversos porque isso é uma ação. Obter o nome completo é uma ação, mas o nome está sempre lá. Isso é mais como um bilhete. Certo, então isso é um desafio para você. Avise-me se você tiver algum 16. Arrays e listas: Ei, pessoal, bem-vindos de volta neste vídeo vai estar olhando para as apressadas e coleções em C afiado. Não, eu disse Ari e coleções, porque bem, Array é o tipo mais utilizado de coleção na maioria, se não em todos, idiomas. Então, entendendo honoree em C sharp, você pode aplicar praticamente os mesmos conceitos para C mais Java e todas as outras linguagens de programação . Dito isto, no entanto, existem outros tipos de tipos de dados de coleta que existem hoje. Já que estamos usando C Sharp, estamos olhando para nossa facilidade. Nós também estaremos olhando para listas em. Então eu vou dar uma olhada nos outros. Mas a realidade é que todos se comportam da mesma maneira. Andi no final do dia é quase um mês de preferência, qual deles você escolherá? Não, para começar. Vou convidá-lo para os spas bem aqui. Vá em frente e crie seu novo projeto em sua solução chamada Ari's and Collections. E uma vez que você tenha feito isso, então você pode continuar no vídeo. Então vamos tomar algum tempo para definir a área, e eu apenas colocar em alguns guias visuais em quatro de comentários para que saibamos exatamente o que estaremos realizando à medida que avançamos. Mas Honore é uma coleção de objetos fora do mesmo ataque de data. Ou se quisesse uma palavra com “B “para usar ali. Você vê, é ah, coleta homogênea de dados. Então isso realmente significa que você pode ter, ah, ah, um monte de números todos diretamente relacionados um com o outro, um, um, um, um monte de cordas todos diretamente relacionados um com o outro. Em toda a vantagem de usar honoree em vez disso fora do Terrível como temos usado até este ponto seria que se eu quisesse um programa para coletar as notas para 10 alunos em uma classe, tudo bem, eu teria que declarar 10 variáveis. Isso seria ótimo um ótimo para classificar três a 10 para coletar 10 notas. Em vez de fazer isso, entanto, eu posso ser claro na pressa para 10 estão indo para começar com a nossa primeira área pela clareira em um pronto para armazenar cinco notas para alguns alunos. Certo, então, mais uma vez, se quiséssemos armazenar fibras do que originalmente, estaríamos declarando cinco variáveis. Ótima. Long concordou em concordar em classificar para Grau cinco No entanto, podemos realmente ver as datas do tipo, que neste caso seria algo como int antes de começar notas em espinha em. Então teríamos colchetes que indica que queremos em uma corrida. Então queremos uma artéria ou uma coleção de inteiros. Tudo bem, então damos o nosso A e o nosso nome. Então, neste caso, como eu disse, estamos agitando notas, então int colchetes graus em, então nós temos que inicializá-lo. Então dizemos que é igual dedo do pé um novo int em então. Bem, esta é a seção que estamos fazendo um tamanho fixo, então sabemos que queremos cinco notas. Então, dentro dos colchetes, vamos ver cinco. Tudo bem, então o Symbicort. E assim você vê que essa inicialização parece um pouco como, Oh, Oh, nós inicializamos nossas classes diretamente em objetos. Desculpe. Então nós temos o tipo de dados no ari. Os colchetes indicam que esta lesão, então parece uma declaração variável . Realmente? Exceto que nós estamos inicializando como, Oh, nós fizemos com os objetos e onde eles não podem ter aulas. Então vemos, me dê uma coleção de inteiros Andi. Quero até cinco. Ok, então agora que temos isso declarado, podemos começar a atribuir valores e suas, ah, algumas maneiras de fazer isso. Mas faremos isso mais tarde nesta seção onde designamos por essa correção, Terry. Mas então você vê que eu tenho uma seção de pressa fixa e então eu tenho uma ressecção de tamanho variável A. Então, isso é quando eu sei que eu tenho cinco notas toe coletar nosso você sabe, na verdade, eu vou reorganizá-lo, então eu vou tentar e fazer cada um em sua própria seção. Então eu vou mostrar a vocês uma foto inicializar e eu realmente não sei necessariamente quantos você vai ter no número centenário deve entrar para que eu possa fazer com o tamanho fixo uma vez e, em seguida, muito além depois de outros pontos, mas pressionando eu tinha quando eu não sei necessariamente quantos grandes esperam, certo. Então, se você está construindo, este aplicativo pode ser para vender toe várias escolas. Algumas escolas podem ter 10 alunos. Alguns arquivaram alguns de 20. Você não quer colocar em um tamanho fixo porque você não pode ir acima do tamanho fixo em Se você vai menos do que o tamanho fixo, então você está basicamente desperdiçando espaço porque está indo toe reserva cinco espaços na memória para notas. Então, desta vez eu só vou dizer int verdes e eu vou amar este grids um em DWI Lembre-se eu realmente dormindo em colchetes, verdes um em, em seguida, semi-cólon. Por isso, aqui estou a ver que quero em Ary por não necessariamente ter a certeza que o Homewood fala. Eu vou precisar para isso todos, mas apenas sei que qualquer artilharia Tudo bem, então eu estou apenas em disquete homem mulher que eu organizar isso. Tudo bem, então só fiz uma organização rápida fora dos comentários. Se você não prefere começar, tudo bem. Só estou fazendo isso como um bizarro. É fraco. E b Caris Que atividade estavam concluindo, em que ponto? Então, quando estamos lidando com um respiro fixo, o que acontece mais uma vez é que temos que declarar ah, casa no espaço. Precisamos Noto atribuir valores a esta área. Tem duas opções. Posso ver o iraniano, que está acordado, depois escolher o subscritor. Então, o que acontece é que ao ver cinco nós reservamos cinco espaços na memória para este array ou para os valores que devem entrar neste. Desculpe. Então nossos endereços para os valores seriam o que causaria sub scripts, certo? Então comer subscript tem, ah, velocidade. Ah, o nome está ligado. Começam do zero e vão até um a menos do que o tamanho. Tudo bem, então o administrador comenta explicando isso. Então, quando você tem cinco espaços, isso significa que você tem endereços de zero a quatro. Então o endereço zero é um. Então um é, em seguida, no segundo espaço de dois é o terceiro espaço três. O quarto espaço em seguida para é o quinto espaço. Então, no zero de Ari é muito, muito, muito valioso. Tudo bem, então, você sabe, no normal meus poucos cones significantes era um espaço, mas no computador zero ver velocidades. Então, tecnicamente, se ou matematicamente se você tem uma área fora do tamanho 10, então você vai ir de 0 a 9 ou qualquer tamanho que você declarar. É basicamente zero a n menos um onde é o tamanho. Certo, isso é uma fórmula pequena. Tudo bem, então eu fiz outro comentário. Se é o tamanho fora da teoria, então os endereços do Ari são zero dois e menos um. Então, mais uma vez, se cinco é o tamanho, então temos zero dedo do pé, cinco minutos, um, que é quatro. Certo, então para atribuir os valores, então eu chamaria cada um pelo seu endereço específico. Então, se eu quisesse colocar algo no 1º 1 então eu digo grades, colchetes, colocando zeros um subscript ou o endereço em que eu veria é igual a que dizem um. Certo, então esse é o primeiro acordado. Então eu vou apenas duplicar isso para acelerar para que eu possa ver notas subscritas Juan subscrita ferramenta subscrita três. Então, roteiro quatro. Tudo bem, então. Eu posso usar um sinal os diferentes valores aqui. Certo, então temos alguns alunos indo bem e alguns fazendo festa. Isso é bom. Tudo bem. Então, outra maneira que você pode atribuir valores seria ver notas é igual a on. Então você tem que declarar que você está subindo uma nova pressa, em seguida, usar as chaves. Desculpe. Uma nova lesão para sobre os tipos de dados terá que dizer novo em então o tipo de dados fora do tipo são realmente tão fora de curso, Se eu colocar um tipo de dados diferente aqui, eu vou obter um erro porque já declaramos que as raças está em tipo ari inteiro. Certo? Então é isso que queremos dizer por sua homogênea em uma área pode ser agitando cordas em inteiros. Tudo bem. Tem que ser um de cada vez. Então eu diria notas em seguida em você, em seguida, em seguida, os ins com o Kurt com as corridas quadradas e em seguida nas brisas atuais. Então eu posso soletrar cargas os valores. Então, se eu quisesse que o script zero tivesse uma partícula de valor que, neste caso, eu colocaria 10 na vírgula no 20 vírgula 30 comum 40 comum 50 direito de saber que eu tenho 123 para cinco valores e então eles meio que implicitamente atribuí-los ao apropriado endereço. Então este é o primeiro valor que ele vai entrar em zero subscrito. Então eu estou sentando valores aqui, e então eu estou sentado ao lado disso aqui. O que eu realmente estou fazendo é substituir esses valores com esta configuração aqui. Certo, então não quero confundi-los para mostrar a você que poderíamos ter feito dessa maneira. Nós também poderíamos ter inicializado o ari que escrevemos, então eu posso realmente apenas comentar. Bem , qualquer um que você queira vir, saiba que o dançarino estaria em designar um extra. Então, se eu tivesse colocado em um valor extra onde eles estão colocando um vestido extra como eu disse raças cinco em dar-lhe outro valor ou eu sentar coma 60 aqui. Eu disse que tenho cinco endereços, mas estou atribuindo seis valores. 123456 estão contando aqui. 123456 Agora isso vai ser um problema. E se eu tentar, vou executar isso, sem saber o problema que vamos encontrar, certo? Para que fosse executado. Então ele está me dizendo que eu tenho um sistema que indexa Altaf intervalo exceção. Então eles estão me dizendo que este índice estava fora índice é outra palavra para endereço r subscript . Certo. Então este índice estava fora dos ossos do Ari. Então, mais uma vez, se você definir para cinco, então você não deve ter mais do que cinco. Você pode ter menos, mas não mais do que tudo bem. Então é assim que o Ari é rigoroso quando eles estão avaliando os dados que estão sendo colocados. Eu só vou remover esses valores que bem iria lançar uma flecha. Não, a outra dimensão atribuindo valores ao Ari seriam os fatos de que você não se sentaria . Andi, você sabe, contratado, chamou essas violetas como Cenário Give inicialmente era que você está construindo um programa para dar a uma escola ou alguma instituição para ser capaz de coletar os valores de, bem, o programa está indo muito para os usuários que inserem os valores no Ari. Tudo bem, então nós já sabemos como entrar já sabe como abri-lo? Nós já sabemos Hold the store Valores dentro off são variáveis quando permitimos usá-lo no porto mais tarde, por isso não estende esse conhecimento um pouco para o re. Então, se eu dissesse a uma instituição que se eles tivessem cinco alunos, eu poderia dar-lhes um programa. Alguns Chris Minto comentam essas linhas. Esses não são exemplos, mas eu estou dando a eles um programa que eles podem que vai colocar lá cinco alunos. Tudo bem, então o que eu gostaria de fazer é ter algo como quatro loops. Eu poderia dizer quatro tão inaudível. Hoops em um loop de quatro é basicamente perfeito para em Ari. Então vamos passar por isso juntos. Então eu vou dizer quatro olhos int, igualdade zero, igualdade zero, e lembre-se que todas as matrizes começam a contar em zero. Certo? Então eu começo com um valor de zero ligado. Então eu vou dizer que eu quero que este programa ou este irmão predito para correr por menos cinco. Então lembre-se que se dissermos menos de cinco, você vai correr de zero dedo cinco menos um que é mais familiar em 0 a 5, menos um. Tudo bem, vamos. Então eu vou dizer, Eu quero incrementar depois de cada corrida. Então o que esse loop de quatro vai nos ajudar a fazer é passar por cada um dos sub scripts são o índice está fora do nosso ari muito rapidamente, certo? Partes que escrevi para consolar as linhas de rato. Dois muito facilmente. Responda isso. Neste ponto, isso não deve ser muito difícil para você. Doente e pausar o vídeo para fora. Mas, em seguida, o que eu estou fazendo aqui é apenas prompting usa alguns vendo entrar notas de estudante em que eu estou apenas vendo console. Certo. Então esta é uma linha certa onde respiramos a linha e à direita é sempre aconteceu por tantas vezes quanto o loop é executado. Por isso, se eu correr bem, não vai pedir-te para entrares na luta da ganância. Então você vê entre raças estudantis e, em seguida, o direito Integrar, integrar, integrar fora do curso. Os direitos não respiram a linha. Então foi por isso que fiz isso. No entanto, hum, estranheza. Esses sprints. Obviamente, não é para isso que estamos aqui. Queríamos realmente causar um baixo eu para entrada. Concordo, talvez percenter. E depois prossegue, certo? Então o que eu faria aqui é um dizer que eu quero a nota com o índice fora qualquer valor que eu ha Então lembre-se, se eu começar um zero em todos um reinício fora zero, então em vez de ver ganância com, ah, hardcore esse índice aqui, como fizemos quando dissemos zero grau este período quer é concordar é que bloco podemos realmente apenas eles concordaram com o valor do índice R subscript off I. Então isso significa qualquer valor que eu tenho no momento em que os quatro está em execução. Esse é o índice dentro do Ari que eu quero manipular. A manipulação aqui seria dedo do pé exceto entradas. Então, é claro que conhece esse dedo do pé. Aceitar entrada. Realmente? Linha de leitura do console. Tudo bem, então. Porque a ganância é um inteiro. Tudo bem? Oh, desculpe. Não verde, mas cria minha bunda. Então raças representa um inteiro Estamos recebendo essa linha vermelha, então precisamos da parte do dedo do pé. Então dizemos em que pars qualquer valor que obtemos do console. Tudo bem, então, mais uma vez, estamos apenas vendo integrado. Em seguida, fazemos uma pausa para entradas. Isso é o que esta linha está fazendo. Então, uma pausa para a entrada para o console que re linha quando a pessoa pressiona entrar. Em seguida, analisamos para ser um inteiro em. Em seguida, tendo analisar que estamos assiná-lo no índice correspondente no Ari com base no valor que eu haas. Então, agora esses mínimos ainda são executados de zero para qualquer valor que colocamos lá, que, se seu fim e está em menos um. Tudo bem, então vamos tentar que disse Tudo bem, então vemos aqui que nós imprimimos o console que a linha direita integra e, em seguida, onde ele se integrou. Esta é a primeira corrida. Então está esperando. Então eu vou colocar 10. E quando eu apresentador corre novamente Não, é contado. Nenhum olho. Alguns colocam 20 e 30, em seguida, 40, em seguida, 50. São 11, senhor. 2345 valores em. Então, quando eu pressiono enter, vemos que ele pára de funcionar. Tudo bem, então é assim que nós dinamicamente exceto valores na área. E como você pode ver, é meio que em linha reta. Zero até o fim. Não é colocar o 1º 1, depois o 3º 1, talvez o 4º 1 não tenha voltado para o 2º 1 Não, é do começo ao fim, certo? Não, isso foi apenas inserir os valores na ganância. Então, no final disso para você, toda a violência teria sido armazenada dentro de notas semelhantes aos esportes fora, onde não é difícil. Qualquer um seria relativo ao que o usuário teria colocado no momento. - Não. Quando a pessoa virou o seu final, eu tenho certeza que eles iriam querer ver as notas que eles entraram. Então, eu só vou dar o dedo do pé. Copie este cordão. Tudo bem. Porque então os quatro que nos seguem voltam pela área novamente. Então, ao invés escrever notas intes, vou ver se você tem as notas para as quais estagiária está bem, eu posso vencer isso. Então eu vou ver em vez de parar para entradas, entendeu? Para limpar isso para lubrificar completamente. E, em seguida, o que eu vou dizer neste para é console linha de direitos ancorados. E então eu quero escrever o valor que está dentro de cada subscrita das minhas notas. Apresse-se. Tudo bem, então cada linha vai apenas imprimir. Está bem? Seja qual for o valor que tenho na altura, são os valores que entram na impressão. Então vamos tentar de novo. Tudo bem? Tão normal para entrar nas notas. E eu vou ser um pouco mais grande desta vez, então você pode ver que eu não estou manipulando, então eu estou colocando em saudações aleatórias 50 84th 6 30 52 em 30 em diante. Então imprimimos todas as notas que você inseriu estão na ordem exata em que foram inseridas, certo para todas as cinco. Não, se você não escrever o seu loop for corretamente e, em seguida, você acaba tentando colocar em um extra grande aqui na área de cinco ou o ary tamanho fixo. Então você vai te dar um desses barcos fora. Ossos estão seguros. Você está vendo em muitos erros de ossos. Isso significa que você é trans referência e índice que não existe com base em sua declaração fora de seu Ari. Certo, agora que olhamos, idiota, idiota, lidamos com o tamanho fixo Ari, vamos dar uma olhada em como lidamos com a variável Sizer. Então elas são variáveis que significam que são propensas a mudar ou são basicamente desconhecidas até uma certa situação. Então, quando dizemos o tamanho variável, isso significa que eu estou dando a este programa para a escola que eu não sei o número de alunos eles têm que não sabem o número de notas que após a entrada. Então eu não posso ser tão rígido como ver cinco direita ou 10 ou 100. Não quero dizer 100 mil quando tiverem 50 alunos. Em seguida, o computador falha sob a pressão quando realmente não tinha dedo do pé. Certo? Então o que eu estou fazendo aqui é apenas dizer que, OK, eu sei que eu preciso de homenageado. Eu não sei o tamanho que vai ser, mas mais tarde, você sabe, baseado no tamanho são baseados em valores que são colocados. Então eu posso fazer uma determinação. Então a Declaração Ari começou. A atribuição de valor de atribuições de área nesta situação com mais modelo. Este direito, vamos apenas copiá-lo e colá-lo para que possamos vê-lo dentro de seu contexto Nós estamos falando sobre lê um direito, então porque nós não demos um tamanho Inicialmente, eu posso ver graus um é igual a Onda. O que quer que esteja na cinta encaracolada, seja qual for o número de valores que coloquei, aceitará isso como sua visão. Se eu colocar cinco, então ele sabe que é uma antena. Satisfeito se eu colocar em 10 tudo bem, então eu apenas colocar em mais cinco valores. Parece barato, mas vamos apenas trabalhar com ele então Ele sabe que seu tamanho é agora 10. Então é por isso que chamamos de tamanho variável são re certo? Não, infelizmente, baseado na natureza dessas matrizes de tamanho dinâmico, um, baseado na natureza estrita do nosso é Na verdade, é meio difícil atribuir valores dinamicamente. Então, depois que você definiu, cidade eles definem aqui nesta terra onde eu diria que é igual a novo em com tudo isso, ou eu definiria seu aqui. Mas então, você sabe, colocar em um loop for em preencher assim, é meio mais difícil. Então, na verdade, veja, Shar nos dá outros tipos de coleção, e uma dessas vezes é uma lista. Tudo bem, então eu vou usar esta oportunidade não, para mostrar a lista. Então eu realmente estou imprimindo os re na variável estão imprimindo o valor. Desculpe. No muito, muito é muito semelhante semi. Basta fazer isso rápido onde? Eu só vou fazer isso, hum, tribunal do anterior “Desculpe”. Então o que podemos fazer é realmente dizer algo como o iraniano, que é grau um. Então eu posso vê-lo encaixado, depois ver o comprimento. Certo. Então, ao ver graus um comprimento de pontos, eu estou dizendo que eu não tenho certeza de quantos valores existem aqui. Mas seja qual for o número de amigos que existam, que é a imagem pelo comprimento do valor, certo? Então, se você só por cima. Você diz que ele obtém o número total de elementos na represa em todas as dimensões do Ari . Tudo bem, então você pega o comprimento de toda a área, então você corre de zero até o contador ser menor que o comprimento fora da área. E assim mais comprido age da mesma maneira também. Se tivéssemos definido o tamanho assim porque ele não encontrou um tamanho ou garante o número de olhos que você colocou lá para descobrir quantos estão lá, você só vê que links, tudo bem. Mas, mais uma vez, a fraqueza aqui é que eu tinha que pré-definir esses valores. Essa não é necessariamente a melhor maneira de o fazer. Então nós temos mais um pouco de tempo, e é chamado de lista ou outro tempo de coleta, e é chamado de lista. Então, em primeiro lugar, vamos fazer se limpar uma lista. Portanto, uma declaração de lista é muito semelhante. Exceto que não há colchetes, eu diria, menos em. Então pouco ver que eu quero uma lista fora da corda. Desta vez, quero guardar os nomes dos alunos nos segundos da escola. Uma lista no tipo de dados, que é string. Tudo bem em dar É os nomes A lista nomes. Há uma lista de nomes de cadeia de caracteres de tipo é igual a on. Então inicializamos do jeito que sabemos. Menos string para que você veja algumas nuances com a inicialização é baseada nos tipos de dados e os tipos de coleta que estamos lidando. Mas, você sabe, como você pratica cada vez mais, você vai se acostumar com os diferentes quatro meses. Não, você percebe um tipo de linha vermelha aqui, então depois inclua outras bibliotecas. Então, pairando, clicando na lâmpada, eu vou obter o sistema, não coleções tão genéricas. Então, quando eu clicar que você vai incluí-lo em. Em seguida, podemos usar o tipo de dados da lista. Certo, Noto adicionou a uma lista. Então esta é a limpeza da lista toe adicionar valores à lista. Tudo bem, deixe-me apenas colocar no comentário sobre valores toe assist. Para fazer isso, simplesmente dizemos nomes, que é o nome do ponto da lista. Então quando dizemos que vemos que temos um monte fora, você sabe, funções disponíveis para nós, podemos encontrar que podemos obter os cones. Então Khan me disse que o que quer que seja, é apenas esse comprimento. Então Collins faz a mesma coisa que o comprimento porque, como você pode ver, eu não sei quantos valores estarão na lista. Assim, a lista também é de tamanho variável. Nós não sabemos. Pode ser um. Pode ser alguns. Pode não estar certo. Então, o controle nos diga isso. Mas adicione alguma coisa. Simplesmente fazemos o nome da lista, que é nomes que tinham tudo certo. Então, quando abrimos as chaves, veremos que é uma função que está esperando um parâmetro fora do tipo de dados que a lista está representando. Portanto, a lista está fora do tipo string, por isso está esperando string algum valor de string. Então eu posso apenas contratar código uma string lá, se eu quiser, para que eu possa ver o nome. E eu apenas colocar meu nome como o primeiro 1 tudo bem, mas então, da mesma forma que podemos realmente fazer Ah, loop que nos permitirá adicionar algo do console agora nesta situação porque não é contra-controle ou nós não sabemos quantos nós queremos adicionar ou não eu não iria querer seu dinheiro porque pagar vai até um limite em qualquer momento então eu poderia usar um tempo Loop on DSO. O que eu vou fazer é dizer algo como Ah, definir uma variável chamada nome em inicializado para uma string em branco. Então eu tinha algumas variáveis aqui que eu estava usando para outra coisa. Ele pode ignorá-los no caso de você estar preocupado com o que eles serviram. Isso é bom. Eu os removi para não confundirem você. Mas agora vou definir uma variável chamada necessidade. Então o propósito fora do nome é a loja. O valor que o usuário vai inserir no console, certo? Uhm, eu vou definir o personagem de fuga para ser como um negativo. Tudo bem, então isso significa que vou usar um loop de tempo para dizer um tempo. O valor fora do nome não é o nosso nome. Vou usar alguma manipulação de cordas sabe que o nome é uma corda. Então ele tem um nome que eu posso conseguir um monte de coisas sobre ele, certo? Então eu posso ver se o nome é igual em. Então eu só vou dar os valores. Então eu quero dizer se o nome é igual a um negativo. Significando se o valor no nome é igual a um negativo. Hum, desculpe. Bem, não é igual a um. Então, só fazemos isso. Tudo bem, então isso é um ouro, certo? Então isso vai dizer, é nome igual ao valor negativo um, e então eu estou vendo enquanto isso não é verdade, então eu quero continuar a execução. Certo. Então deixe-me colocar o meu prompt. Este bar marcou em vez de escrever tudo votar. Eu só vou ver inserir nomes. Tudo bem, então. Abaixo. Vou dizer que o nome é igual a pontos de console. Lê a linha. Certo. Então, eu estou permitindo que o usuário entre e precise no console, hum, valor no console, e eu estou armazenando na variável de nome Direto em. Então eu vou ver se em que realmente copiar esta lógica. Então isso é chamado de nidificação? Não, aqui é onde você tem uma estrutura de controle mangueira outra. Então você tem um loop, que é o tremoço selvagem de qualquer instrução dentro dos loops, eles têm aninhado uma declaração if dentro de um tempo on if declarações e enquanto agir em condições, eu vou usar a mesma condição, Certo? Então, se o nome não é igual ao valor de um negativo, então eu quero adicionar o valor que foi inserido nos nomes menos off, certo? Então nós adicionamos um nome até agora. Então este só vai ser codificado. Mas então dinamicamente, eu quero dizer que nomes, que é a minha lista, não adicionar. Em seguida, o valor de passagem é o valor de string que foi inserido na variável name. Tudo bem, então ele vai fazer isso enquanto o nome não é igual a um negativo. Então isso significa que na primeira vez, se eu entrar Emily, então é isso vai convidá-lo a seguir o nosso verdadeiro vez Então nós adicionamos amuleto. E depois, se eu disser negativo, então ele vai pular sobre isso, e então ele vai voltar e perceber que violou a condição em então é que ele não está em então Da mesma forma que nós poderíamos imprimir valores no array é da mesma forma que podemos imprimir valores na lista. Então eles são, na verdade, algumas maneiras que um vai estar usando um loop for. Certo? Assim como dizer nomes, não cones em vez disso. Então eu estou vendo que no muco muda sal porque eu sou apenas tribunais chatos. Só quero ter certeza de que sou consistente. Então os nomes de estudantes que você inseriu são para mim , então as regras de selos aplicam listas de dedos, certo? Então eu posso realmente ver nomes em, em seguida, chamá-lo pelo seu índice exato. Então, uma vez que algo entra na lista, ele não indexa exatamente como teria feito no Ari. Tudo bem, então eu posso usar um loop for para verificar cada índice para os cones ou o tamanho fora da lista ou o número fora dos itens na lista. Então ele iria apenas iterar através disso. Há também outra maneira chamada A para cada um. Certo. Então isso é provavelmente o que você vê mais frequentemente do que não onde você diz para cada um, então o que você está dizendo é que eu quero cada item na lista ou cada item na coleção . Então, o que? Eu diria que algo como cada item é esperado para ser um fluxo. Então, após a clara, um, o item como o tipo de dados que eu estou esperando para a cadeia de caracteres, certo. Se eu não tenho tanta certeza, eu posso realmente usar minha palavra-chave vier aqui. Então, eu tenho andado a andar por aí usando fogo, e tudo bem. Mas você pode usar var, ou você pode usar o tipo forte. Isso não é problema. Então, neste caso, eu uso um tempo forte apenas o vento de viagem para casa. Mas eu estou vendo para cada corda em. Então eu estou chamando de direitos de item para cada string. item na lista da lista aqui é chamado de nomes, certo? Então, para cada um deles, eu quero consolar. Refiro-me a uma cópia que a Emirates disse ao Console que a linha certa. Então eu imprimia o item. Certo. Então o que acontece com este movimento é que cada vez que ele passa, ele vai pegar o que está dentro fora de nomes, armazená-lo no item em. Então você seria capaz de imprimi-lo para a tela em. Então, quando ele se esgota, todos fora dos itens dentro, ele simplesmente sai do loop por si só. Certo, então este está usando o loop for. França neste está usando o para cada loop. Certo, então essa é a diferença entre listas de verbais. Então, quando você tenta ter autonomia, lista de desculpas no Barry. Então, quando você tenta ter um curry dinâmico, pode não ser. trabalho mantém-se melhor com base na sua natureza. É muito rigoroso, como eu disse antes. Mas, em seguida, quando você tem uma necessidade de uma coleção dinâmica, você sempre pode chamar na lista em. Então você tem outros tipos de dados que você tem inúmeros. Você tem uma pedreira da minha coleção, eu observei . Temos um monte deles. A realidade é que se você quiser tipos de dados complexos, como uma classe, então olhamos para classes e objetos. Se você é uma classe que você precisava para armazenar a lista fora de objetos dessa classe, então você poderia usar a lista. Tudo bem, então apenas adicionou alguns comentários apenas anote o que cada bloco fora de bom está fazendo. Agora o que vamos fazer é correr, e então corremos através de cada um deles. Então a área dinâmica conserta Terry na lista. Tudo bem, então estamos começando com nossa história de correção de cinco graus, então sabemos que isso só vai ser executado por cinco, uh, uh, dados que também compactam espaço não são inseridos. Certo. Então, isso também seria um problema para Chris Piece estão colocando alguma outra corda. Isso não é, você sabe, pode ser decifrado como um número. Então isso causará um problema. Mas sabemos o começo, certo? Então, basta colocar em cinco grades, e então ele mostra isso. Está bem. A ganância de cinco, a ganância que você entrou estão nas notas. Você entrou no nosso. Ok, estou vendo um erro aqui onde ele está vendo que eu não escrevi Index fora da Bones, Earl. Então deixe-me parar com isso no DSI. Exatamente o que deu errado? Está bem , vejo os meus erros. Estava reimprimindo a ganância. Então o que aconteceu é que eu tenho o comprimento fora das notas um para o loop for. Mas então eu não mudei isso do 1º grau. Então esse é o meu erro. Se você acertar essa flecha, peça desculpas. É grandioso. Um por isso. Apresse-se. Certo, então vamos tentar de novo. Tudo bem? Então, prosseguimos para entrar nas nossas cinco raças. Certo, então aqui vemos, imprimimos nossas cinco notas reimpressas. Isso é bom. Depois imprimimos Oh, são as 10 notas do curry dinâmico logo em seguida. São os problemas em que nos pede para introduzir nomes. Tudo bem, alguém para digitar um nome e é Emily. Uhm, eu vou ver Rauenzahn na fin re Andi quer mais do que ele ganhou. Quando eu pressionar enter e eu escrever um negativo como meu valor, em seguida, ele sai do olhar certo? Uma tão negativa. Era o personagem de saída aqui. Estamos reimprimindo todos os nomes da lista. Lembra do Trip ou adicionamos isso manualmente, certo? Mas, em seguida, todos os outros que entramos como nós fomos em seguida, isso é com o para cada loop e você pode ver que os resultados são praticamente os mesmos. Mas para mim, o pecado é maior para os quatro. Cada um é muito mais fácil de escrever. Tudo bem, então isso é basicamente com as listas e coleções. Isso é, ah, uma idéia ampla. Quando você fica mais avançado, você vê que você pode realmente usar coleções e mais listas com tipos de dados maiores, tipos dados mais complexos em. Não se sobrecarregue de ser isso. Ouça, mas à medida que você for junto, você vai ficar mais avançado 17. Crie um projeto de Winforms: neste vídeo será a configuração de uma aplicação de formas de vento afiado C. Já tem estúdio visual aberto e para começar. O que vamos fazer é ir em frente, criar um novo projeto e dos modelos estavam procurando formas de vento. Posso procurar rapidamente e procurar formas de vento. Então eu quero um vento formas ou janelas forma-se quadro dot net. Então é com esse que estamos trabalhando hoje. Então eu seleciono esse modelo clique em próximo. Então eu dou o nome ao meu projeto e este vai ser meu primeiro formulário de vitória você sabe eu não vou fazer isso. , Isso é simplesmente o que eu vou fazer é simular um aplicativo do mundo real. Então, digamos que queríamos construir um formulário para apoiar um negócio de aluguer de automóveis. Vou ver o carro a reboque. Então esse é o nosso projeto. Nome em. Então esse será o nome da nossa solução. Além disso, deixe-me corrigir minha ortografia aqui. Aluguer de carro em cima. Podemos deixá-lo no framework dotnet para que você possa ver que você tem algumas versões deles . Uma estrutura dotnet. Se você instalou o Visual Studio fora da caixa. Você provavelmente tem até 4.72 ou talvez você tem 4.8. Algum desses trabalhos? O que eu deixar para trás em 4.7 ponto 21 você pode colocar o seu para que a versão também para que nós estamos na mesma praia em então eu posso ir em frente e clique em criar quando este projeto é criado. Então você vê algo parecido com isso e eu chamo isso de tela Cities Off Farm sobre qual colocaremos elementos visuais. Mas antes de entrarmos em tudo isso, vamos tirar algum tempo para apreciar a interface em Olhe para as partes mais importantes. Então, se olharmos em nosso explorador de soluções em menos os anos à esquerda podem estar à direita por padrão. Mas tenho os meus resultados na sua configuração que menos para a esquerda se olhar lá dentro, você vê a solução dela. Você vê seu projeto. Mas, em seguida, seus incêndios de projeto realmente compreendem o farm um ponto CS no programa ponto CS Nenhuma forma um ponto CS representa esta representação visual que você está vendo aqui. Então, este é realmente o formulário. Se eu fechar isso por qualquer acidente, você pode, é claro, o topo se você clicar duas vezes em um que diz, que é o que vai se dar bem. Então esta é a sua forma. Cada formulário que você vai adicionar vai ficar assim até você começar a colocar as coisas na fazenda próximo programa de arquivos importantes, isso é sim. Eu posso apenas clicar nele para que possamos ver dentro, e então você vê que ele se parece com um programa de console. Os programas de console vêm com um programa de classe estática por padrão o espaço de nome, que é a pasta que ele está em, então a média de evitar estática, exceto que este não leva nenhum argumento. Mas se você não está familiarizado com programação cônsul do que isso, então problema. A coisa mais importante a notar é que você não quer estar editando este arquivo direito, então programa, não CS. Mais tarde, quando você sabe o que está fazendo, você pode editá-lo, e normalmente você estaria editando este fogo, esta linha e além. Mas as coisas que estão aqui, essas funções são inicializar onda er. Eu não vou gastar tempo dizendo exatamente o que eles estão inicializando isso mais. Por favor, não comente ou exclua-os em. Então este é o que realmente diz o que deve ser lançado quando o programa for lançado. Então temos uma forma que são anos. Ele está vendo lançar uma nova instância fora do farm one em. Quando fizer isso, lançará nosso formulário que estamos projetando. Certo, então vamos realizar uma atividade rápida. Estamos apenas com o início desta aplicação, não fizemos nenhuma alteração. Só temos aqui. Vamos apenas clicar. Comece em. DWI vai ver este gramado da janela. Então você vê que esta janela será lançada. E se eu segurá-la lado a lado, aquela tela Você vê isso? Bem, as telas estão vazias. Minha nova janela é de coração vazio. Então é assim que as formas de vento se parecem. Pelo menos fora da caixa. Não, eu só quero apontar o erro que eu tenho visto as pessoas cometerem ao longo dos anos e então eles têm todo o tempo que eles gastam depurando algo estão tentando resolver um problema que eles realmente não têm. Portanto, é um erro comum minimizar esta janela inadvertidamente em. Então você está tentando fazer uma operação e tentando mudar para sua tentativa de operar de alguma forma e qualquer coisa. Visual Studio não está funcionando porque ainda é realmente um humor ousado. Então, quando você clicar começou vai para profundo tanto Mordor vendo todos esses diagnósticos e OK, talvez você seja novo no Visual Studio. Isso não se destacou para você, mas então você está tentando, você sabe, você sabe, mudar o tribunal e não está mudando nenhum pensamento que o estúdio visual está em um estado de emergência? O que acontece é que enquanto estiveres mais nas pessoas, não podes fazer mudanças no tribunal. Portanto, se o seu visual studio se parecer com isso, mesmo que a janela não esteja ativa na tela, então você ainda está no modo de depuração. Então você precisa se certificar de que você pressiona parar ou quando você fecha a janela. Então eu minimizei. Apenas não. Mas se eu fechá-lo como improvável, o X então ele sai. Barcos de depuração são comuns. O erro é que as pessoas esquecem, você sabe, que os lançamentos testados em seguida eles esquecem o dedo do pé fechá-lo. Então eles voltam aos resultados hoje e tentam fazer os ajustes que precisamos fazer e eles não podem e eles pensam que é um árabe, mas realmente ainda há nas bolhas. Eu só estou apontando isso para o caso de você saber, quando você está indo junto você para que você possa estar ciente de que erro comum Agora, a próxima parte mais importante deste desenvolvimento de formas de vento desencadear recursos seria a caixa de ferramentas. Então, eu tenho a dor da minha caixa de ferramentas desligada, um UNP nos dutos Orwell para o lado aqui. Se você não vir uma dor na caixa de ferramentas, então você sempre pode ir para a visualização. Então você só procura duas caixas estão na caixa de banco deles, ou você pode memorizar o tubarão teclado. E se você quiser? Mas o fato é que está lá. Se você não vê prontamente, basta ir para ver no clique em Box e ampliá-lo. Se você fechá-lo por acidente, você vai para ver, truque para boxe e lançá-lo. Tudo bem, então, a qualquer momento, se eu tiver uma dor que você sente no duro, você simplesmente precisa ir ver, encontrar essa dor e abri-la. Então, vamos começar a olhar para a caixa de ferramentas assim na barra de ferramentas para ver que existem algumas categorias fora controles para a nossa atividade hoje. Eu quero manter o foco no controle comum, por isso, se você apenas, você sabe, expandir controles comuns e demorar um pouco e olhar e pausar vídeo e apenas tomar um tempo e olhar através dos diferentes controles. Você pode pausar aqui e fazer isso, mas eu vou continuar na primeira coisa que eu gostaria de fazer quando alguém inicia meu aplicativo é deixá-los saber qual aplicativo eles lançaram. Quero dizer, eu tenho certeza que eles foram e clicar DoubleClick no aplicativo para iniciá-lo. Mas você ainda quer uma representação visual, certo? Então eu traria uma gravadora. Tudo bem, então ganhe formas de desenvolvimento pelo menos abaixo das interfaces. Dragon Trump é para que eu possa arrastar sobre o rótulo, colocá-lo em algum lugar. Por alguma razão eu recebo esse erro, você pode não. Se o fizeres, eles precisam de uma mancha. Está bem, mas ainda era permitido prosseguir. Não tenho a certeza de onde arranjo aquele árabe, mas vou pô-lo em mim. Preciso verificar o meu isolamento do estúdio visual, mas empurrando, empurrando em frente. Olhamos para o rótulo aqui, depois queremos o dedo do pé. Você sabe, nós vemos o rótulo. Não é o ideal. Ele salva o rótulo um. Um, o texto tão pequeno e assim por diante, e então seu primeiro instinto pode ficar bem. Preciso usar este texto, torná-lo maior ou mudar as tomadas que está nele. No seu segundo instinto pode fazer você clicar duas vezes. Então você clicou duas vezes. Então você acabou nos arquivos do tribunal do mar Sharp. Então isso é o que eu chamo o tribunal por trás. Então agora eu quero explicar duas coisas para você em Eu Você sabe, isso é apenas para ajudá-lo a ter cuidado quando você está fazendo essas atividades. Então eu vou voltar para o projeto. Então o que eu vou mostrar a vocês é que quando você clica duas vezes em nosso controle um elemento visual o que está acontecendo é que ele vai gerar um stub método nele vai gerar , neste caso, um rápido evento. Então, um evento rápido significa que quando eu clicar neste rótulo, este milho vai disparar. Não, eu não preciso de nenhum evento rápido na minha gravadora, sério. E realmente, eu não preciso que nada aconteça quando esse Liveris clicou. Mas eu só estou apontando isso porque quando você clica duas vezes nesses elementos visuais, tudo o que você está fazendo é gerar o método pára assim por diante mais uma vez, a razão para você ter clicado duas vezes, seria toe alterar suas propriedades. Então queremos alterar as propriedades. Queremos mudar o texto que está lá dentro. Eu quero mudar, você sabe, o que quer que seja sobre isso, nós queremos mudar. Então, para fazer isso estamos atrás, certo? Clique nele em ambas as propriedades causa mais uma vez, quando nós clicar duas vezes, ele irá apenas gerar um método que você irá gerar algum evento em. Não é necessariamente o que queremos. Tudo bem, então quando você clicar com o botão direito do mouse no elemento neste caso, o rótulo em então eu vou para propriedades. Então ele vai lançar outro alfinete que minha dor já estava lá. Mas para você pode não ter sido visível, mas vai lançar uma dor nessa altura. Essa dor nos permite alterar as propriedades desses elementos visuais. Deixe-me aproveitar este tempo para explicar que tudo em Dó afiado é uma classe. Os elementos muito visuais que você está arrastando sobre a caixa de ferramentas lá listados aqui, o botão é uma classe, mas quando você arrastá-lo sobre, você tem instância que ela comeu e objeto fora desta classe. Então, no contexto, fora do rótulo rótulo é uma classe nítida c. Você arrastá-lo sobre, você sabe, ter no objeto chamado rótulo um. E esse objeto tem propriedades que podem ser alteradas nessas propriedades são todas encapsuladas dentro do objeto. Andi, por extensão, o tipo de classe. Certo, então eu tenho esse objeto aqui nos meus formulários de ganho chamado rótulo um. E é fora do tipo são o rótulo do tipo de classe. E então eu vou mudar as propriedades para que eu possa mudar os fundos. Espero que pause o vídeo. Veja todas as propriedades possíveis que podem ser alteradas. Ali. Muitos não querem passar por cada um deles. Só estou com o foco no que é importante, que é o fundo. Então eu quero mudar os fundos. Eu expando a propriedade de fundos que eu vejo nome que seria o tipo de fundos que eu posso mudar para . Talvez... Bem, você pode ter outros fundos. Se eu tenho fundos que você não tem, mas eu vou fazer algumas mudanças para que você possa estilizá-lo. Como você vê o ajuste. Só estou trocando. Então eu mudei o nome um tamanho de gengibre, e como você pode ver, que as mudanças estão sendo reveladas em tempo real. Então eu vou mudar o texto que está sendo exibido porque eu não queria dizer rótulo um, mas dizer algo como, Ah, Ah, carro ou no sistema de reboque. Tudo bem, em seguida, atual. Nosso sistema dispara para que eu possa puxá-lo de volta. Eu queria ser enviado. Eu gosto disso. Você pode ver que está mais bem, parece todo o rótulo contínuo. Vou arrastá-lo para o centro, fora do próprio formulário. Lá em cima. Tenho o meu carro etiquetado no nosso sistema. Certo, então peguei o rótulo. Andi, mudei a propriedade que eu queria. Eu sei que posso ver a manifestação dessas mudanças, tudo bem, então vamos começar a arrastar alguns elementos de forma real. E se você tem alguma experiência na criação de formulários que você conhece em aplicativos da Web, então é o mesmo conceito. Você tem um formulário que você tem controles que permitem que o usuário insira informações. Andi, fora do curso baseado no elemento visual para usar. Você está controlando o tipo de informação que você está esperando do usuário em. Então, em última análise, será uma submissão Mas assim, para um sistema de aluguel de carro será coletando o nome do cliente as datas em que o aluguel está sendo eu. A data em que é suposto o carro para retornar sobre o tipo de carro que está sendo alugado em. Então vamos nos submeter, mas agradável e simples. Mas estamos usando alguns elementos de forma e ao longo do caminho. Vamos ver. Exatamente inteiro. Cada um funciona. Então vamos começar com os nomes dos clientes. Então eu vou drogar sobre a caixa de texto para isso. Então eu vejo uma caixa de texto, e isso, eu acho, é o controle mais ideal. E há um pouco de ar de novo. Mas eu acho que os livros didáticos são o controle mais ideal para, você sabe, coletar o cliente. Nomeie o nome do cliente que está levando o carro. Tudo bem. Não, eu só arrastei sobre a caixa de texto. Eu tenho isso no formulário, mas eu não sei se se eu voltar amanhã eu fiz para eu posso esquecer por que ter os livros didáticos lá se alguém vem, vê o pedido? É uma caixa de texto aleatória. Eles não sabem que informação estou esperando deles. Portanto, é prudente da nossa parte certificar-nos de que temos um rótulo acima de cada controlo. Certo? Então eu tenho esse rótulo em ir para mudar as propriedades. Então este trabalho vai ver o nome do cliente Bryant. Então está te avisando disso. Bem, isso é uma dica visual para o que essas caixas de texto servem, certo? Então, para cada controle, temos ah, rótulo que vai tipo de sinal para o usuário. Ei, essa informação que eu sou requerida de você para este controle é então onde? Claro, quanto mais nome. E se você quiser mudar outras propriedades, talvez eu queira que a diversão seja um pouco maior. Então eu quero que isso seja 12. Tudo bem, , então você pode ver isso. Então, era uma espécie de cobertura sobre a indústria de auto-força do livro didático. Posicione-o para que tudo pareça bom e uniforme. Tudo bem, então tem o nome do cliente. Nós estivemos em data fora escolheu namoro e dados. Quais são as datas em que os carros estão sendo enterrados nos dados que acabam de retornar? Porque quero que vejamos o selecionador de data e hora. Hum, então eu drogei isso em cima. Então eu coloquei onde eu quero ir e este aqui. Não vai nos dar um calendário, então vou expandir isso. Eles podem ver o namoro completo lá na cópia e pedaços de coisas bonitas. Então eu quero controlar um calendário para as datas. É maior inserido, e um para os dados está sendo retornado. Então eu posso copiar e colar. Eu só uso o controle C controle V depois de selecioná-lo. E lá vamos nós. Então temos que continuar. O rótulo já tem esse rótulo. Ele tem o tamanho divertido que eu quero em vez de arrastar sobre marca nova etiqueta em ir através das propriedades cada vez. Vou copiar esta etiqueta duas vezes. Tudo bem, então copie e cole na posição. Então esse é aquele. Este está ligado. Então eu posso restringir o rótulo em alterar o texto. Tudo bem. Então, eu só estou ajudando vocês a serem eficientes nisso, porque pode ser demorado quando você está indo para a caixa de ferramentas e arrastando o tempo todo , mudando as propriedades de cada vez. Então, se você pode apenas ficar confortável, perceber que copiar em basting não é uma coisa tão ruim. E você sabe o que mudar. Então, eventualmente, você se torna um mestre. Certo, então vamos mudar essa data do dedo do pé ou no Ted. Andi, vou mudar este dedo. Seja devolvido. Então, os textos são os que devolveram. Certo, a próxima coisa que vamos fazer é listar o tipo de carros e um que está sendo impresso. Então, para isso, eu vou usar uma caixa de combinação para que a queda não. Isto é provavelmente o que você está usando html e isso é bom em formas de vento. Chama-se caixa de combinação. Eles não chamam isso de “apenas largada”. Mas então você pode ver outras listas porque você tem a caixa de listagem. Você também tem a exibição de lista. Então bem, a caixa de listagem é provavelmente o mais paralelo quer uma caixa de combinação porque esta é uma lista suspensa, e esta é apenas aquela área com pelo menos nela. Então eu vou escolher a caixa de combinação, já que é com isso que você provavelmente está mais familiarizado. Ambos como programador são programadores web, Andi. Eu fiz para o usuário fora de qualquer aplicativo. Então este parece semelhante a ah, você sabe, caixa de texto. Exceto que você vê aquele pouco não flecha lá, o que sugere que pode ser uma lista suspensa, entendeu? Expanda isto. Eu sou procurado. Certifique-se de que todos os meus controles têm o mesmo coms. Tudo parece, sabe, uniforme. Tudo bem, vou copiar um dos meus rótulos existentes. Mova para baixo e altere o texto. Então este é tipo fora de carro, certo? Não, eu pulei este passo mais cedo, e eu só mostro, você sabe, então nós precisamos tipo de caixa de texto. Você vai ver que este é o IRA preto aparecer no topo. Digamos que esta é uma caixa de texto. É malte. É uma linha única, e você provavelmente está se perguntando, OK, como eu faço isso mais tempo são segurar. Eu torná-lo mais alto porque você percebe só pode ajustar o que só da esquerda para a direita. Então, se você clicar nessa pequena seta preta, você pode torná-lo multi linha, que então faz isso. Você sabe, se você quiser colocar em um parágrafo ou facilidade o interesse dentro de um parágrafo, hum, quantidade de texto, então você pode fazer multi-linha. Então isso seria perfeito para, tipo, comentários ou algo assim, mas para o custo de um nome, eu não preciso de uma estrutura alta Oh, eu não preciso de um parágrafo olhando estrutura. Só preciso de uma caixa de texto do elevador. Assim, da mesma forma, quando clicamos na caixa de combinação, você vê essa pequena seta preta em Quando clicamos, ela vai, pois nos permitirá dizer editar itens. Então eu vou clicar em editar itens em. Então eu vou preenchê-lo com os tipos fora de carros que eu espero para aparecer quando selecionamos a caixa suspensa. Certo, então os tipos fora do curso podem ser Honda. Ah, Toyota, Andi em um carro muito popular aqui em casa estava Lotte ligado. Também tivemos o inimigo. Tudo bem, então Honda Toyota muito e bogey. Esses são os carros que temos em todo o nosso sistema ligado. Em seguida, toe completar este exercício, vamos ter um enviar botões. Então eu volto para minha caixa de ferramentas, pego meu botão, drogá-lo sobre se é meu erro, mas está na tela. Posso encontrar este botão tão grande quanto eu quiser. Quer dizer, eu posso redimensioná-lo. Posso voltar às propriedades e mudar os fundos. Então eu vou mudar essa diversão para parecer exatamente como os fundos no topo. São as maiúsculas maduras e vazias do roteiro. E o tamanho fora do texto vai ser um pouco disso. 25. Tudo bem, então. Não quero que diga, mas um. Isso está tudo bem. Então eu queria ver Submit. Então este vai ser o botão de enviar. Então vamos dar uma olhada no formulário. Temos o nome do cliente onde os dados pretendem no retorno de dados sobre o tipo fora do carro. Então, vamos apenas clicar em Iniciar, que vai salvar todas as alterações. Compilar tudo e, em seguida, carregar fora. Tudo bem. E aqui estamos nós, então sempre sistema de aluguer de automóveis em. Posso testar a tocha. Tudo bem, então eu posso digitar o nome do cliente. Posso usar meu seletor de datas e selecionar a data. Isso parece muito legal. Então, veja, eu tenho um selecionador de encontros com muito pouco esforço. Se você fizer um programa, você sabe que isso não é tão fácil sobre o tipo de carro a lista suspensa em eu posso selecionar. Mas então você percebe aquele tipo de carro que essa caixa de combinação me permite o tipo. Não está no auto completo, é apenas o comportamento fora dele. Ele me permite realmente digitar um valor que pode não ter sido na lista, o que não é necessariamente idéia porque o ponto de uma lista suspensa é que você não quer . Se quiser controlar a pessoa, veja a seleção. Vamos deixá-los entrar no final, alguma coisa? Em seguida, clicamos no botão enviar, e vemos que bem, mesmo que pareça bom no design, a renderização não parece que escrevemos. Alguns foram depois modificados, talvez a largura para que o T não seja cortado, então eu não posso revelar isso. Depois voltamos, só o envio. Tudo bem, , então, o que eu vou fazer com digitar Karnow a caixa de combinação, e nós voltamos para a nossa propriedade. Então, se você perdeu as propriedades, você sempre pode distrair as propriedades de controle freak em. Então o que vamos fazer é mudar o comportamento, então o estilo suspenso tem mais três dias. É tão simples quando eu clico simplesmente, você percebe que ele não parece mais que eu caiu para baixo. Parece uma caixa de texto. Não é isso que queremos. Então eu vou voltar e mudar as mudanças para o outro estilo A assim que eu puder encontrá-lo. Tudo bem. E não estou achando porque não tenho isso. Tenha o farm selecionado. Então você tem que se certificar de que você está selecionando o controle correto quando você está olhando para as propriedades são que é tão simples. Drop down e, em seguida, drop down listas. Não, na verdade parece mais com o que estou esperando. Então parece que não. Parece ble não editado a partir do design em. Tenho certeza de que quando corrermos de novo, será apenas uma lista suspensa que não me permite digitar nada lá. Tudo bem, então vamos apenas clicar em começar de novo em dar uma olhada. Tudo bem, então isso parece um pouco melhor. E também alguém mostrando corretamente no tipo de carro está me dando a lista sem me permitir digitar nada lá dentro. Tudo bem, então se eu sentir este formulário Andi, eu seleciono meu tipo fora de carro e clique em envios. Minha expectativa é que algo vai acontecer. Ele vai me dar algum feedback, me avisando que eu enviei algo. Então é aí que os eventos. A programação chega, tudo bem. Então nós discutimos anteriormente que quando inadvertidamente clicamos duas vezes no rótulo e por extensão, duplo duplo pode clicar em qualquer outro controle que ele realmente gerará no método em que não é assim que eu quero que você faça. Eu quero ser muito são muito mais deliberados ao gerar, um eventos para que você não tenha problemas mais tarde. Então eu vou mostrar a vocês uma era que você pode, você sabe, se preparar para quando você tem em eventos que você não necessariamente planejou. Então você tenta fazer uma limpeza. Você vai colocar essa flecha. Então eu vou cortar o vídeo aqui, e no próximo vídeo, vamos começar a olhar para o dedo inteiro deliberadamente criar eventos que realmente fazem coisas . Então, quando você está no tribunal atrás, eu chamo de “o núcleo atrás”. Então, digamos que não tínhamos isso. Eu queria chegar ao arquivo do tribunal para o formulário um que CS eu posso clicar com o botão direito do mouse sobre o formulário diretamente, praticamente em qualquer lugar na interface aqui no design em eu vou ver a opção. Essa é a visão dele. Cita-lo diretamente acariciar de você código, se você fazê-lo lá são produzidos no Farm View Court vai aparecer. Então, quando eu clico ver tribunal, ele traz aquele arquivo judicial não, menos eu sei que você não quer editar muito neste arquivo ainda. Como está, a única coisa que é realmente, muito importante, ou melhor, tudo aqui, é importante. Mas este método parar porque mais uma vez, este é o método, modo que foi gerado como um evento rápido no rótulo. Um. Então isso significa que quando eu clicar nisso, este método está indo fogo no dedo do pé. Está vazio, por isso, clicar nele não terá qualquer efeito. Mas, obviamente, não faz sentido. Eu tenho esses métodos vazios. Faz de acordo bagunçado e mais difícil de manter à medida que você avança. Então eu limparia. Então eu fiz. Eu cometi o erro. Vou limpar tops. Eu apago tudo agora, aqui está o problema que você pode encontrar ao excluir isso, e se você excluir alguma coisa, certifique-se que isso é tudo que você exclui. Tudo o resto aqui deve ficar do mesmo jeito. Classe parcial pública. Forma um. O nome da fazenda no arquivo do tribunal está herdando de uma classe base chamada formulário. E, em seguida, temos um construtor em que está apenas executando este componente inicializado. Se não fizer isso, não remova isso. Se você remover qualquer outra coisa, por favor, não remova essas linhas que já estão lá. Tudo bem, então eu removi o evento clique. Em seguida, clique em Iniciar e, em seguida, vamos receber um erro. Está bem, está a mandar-nos. Houve erros construídos. Você quer ir para o último sucesso construído? Para mim, isso não faz sentido fazer porque eu quero ver o seu eu não quero que o continente use o programa em seu estado anterior. Então eu vou clicar em Não. E então a lista ERA vai me dizer que ela não contém uma definição para algo, algo, algo. Então isso é um luto. Mas quando eu clicar duas vezes, ele vai me levar para a companhia aérea sobre o que ele está me dizendo, Não, este é o arquivo do designer dot CS. Então esta companhia aérea é arquivo suficiente que nós não acertamos. Ainda não fizemos nenhuma citação, sua arma derruba o motor? Todo o estúdio de desenvolvimento está gerando essa pontuação para nós. Então cada controle que drogamos está representado aqui no tribunal. Tudo bem, , então, o que está dizendo é que nós criamos um evento clique em Associá-lo com etiqueta 1 Andi. Então ele está procurando por isso dado para essa função, que é uma função que eu acabei de excluir. Então todos nós devemos saber. Mas eu sei que é, se você não fizer, tudo bem. Sempre que você tem uma função e você está chamando essa função, se a função não existe, então você vai receber um erro. Então você tem que definir uma função em. Em seguida, você pode chamar funções de conjunto. Então tivemos a definição da função. Estava lá, apagámo-lo. Mas ainda temos o telefone. Sean, chame o cabo gerado pelo Ártico. Então o que? Nós podemos fazer isso. Então você apenas remove esta linha porque realmente, nós não precisamos chamar a função porque você acabou de excluí-la. Então, fazendo esse ajuste, eu posso clicar em começar de novo em então eu estou no negócio. Então isso é apenas mais uma coisa que eu queria ajudá-lo porque talvez você tivesse gerado alguns eventos cliques são alguns eventos que você não necessariamente queria por acidente, e tudo bem. Isso é compreensível. Mas então você os remove e então você está recebendo os erros. Não tenho certeza ho para passar pelas eras. Isso é completo. Então este é nós projetando o Formulário um no próximo vídeo será olhando para renomear nossos controles e a importância de fazê-lo em espera. Vamos realmente coletar as informações que foram inseridas no formulário. 18. Crie um formulário e a: Vocês estavam continuando o desenvolvimento da nossa aplicação de formulários de aluguel de carros em eram não no estágio em que queremos realmente começar a coletar as informações do formulário em cima. Submeter. Não. Eu vou usar isso cerca de um minuto para explicar um conceito muito importante que pode economizar muito tempo em sua atividade de desenvolvimento. E isso é renomear seus controles. Então, quando estamos projetando este formulário, fomos para a caixa de ferramentas. Arrastamos os controles para substituí-los. Queríamos mudar algumas propriedades. Uma propriedade que não mudamos foi o nome. Então, se clicarmos na caixa de texto, veríamos que ela tem um nome, propriedade, e cada controle que você está indo para clicar tem um nome, propriedade e o nome aqui é seis dólares. Um não. Por padrão, ele vai estar sempre contando. Então, se esta é a primeira caixa de texto, vai ser livros didáticos ganhos. A segunda caixa de texto vai ser livros didáticos para o 3º 4º, etc. Isso não é idéia quando você tem algumas caixas de texto porque você quer saber qual caixa de texto exatamente tem o nome do cliente. Então, deixando-os como o nome padrão de livros didáticos no dedo do pé, etc. Toda vez que você quiser saber a informação, eles vão ter que voltar, clicar na caixa de texto, olhar para clicar na caixa de texto, o nome e dizer, Oh, sim, sim, esse é o que eu quero. Então eu vou te dar um pouco de técnica, não a melhor prática dele. Na verdade, isso irá ajudá-lo a reduzir a quantidade fora investigação em você sabe, tempo que você gasta tentando encontrar que o controle que você quer em que é simplesmente para mudar o nome. Então eu tenho uma convenção simples onde eu uso um prefixo para detetive determinado ou toe o escolhido em vez do tipo off controle que está sendo referenciado em. Depois dou-lhe um nome que está a levar a informação que é suposto ter. Então vamos fazer a caixa de texto. Então eu tenho a caixa de texto aqui que está coletando o nome do cliente. Então meu nome ideal para isso não é caixa de texto um, mas seria algo como T B, que é abreviação para caixa de texto. Ou poderia dizer txt, seja lá o que for. Mas um prefixo que diz que isto é “ah” pega a caixa, certo? Então eu estou vendo tuberculose cliente, cliente eu. Tudo bem. Agora que este sou eu nomeando os objetos, lembre-se que eu disse que cada controle é um objeto. Então, dizendo nome do cliente de TV e não caixa de texto um, Este objeto não é chamado nome do cliente TB as mesmas regras que se aplicam toe nomear uma variável Aplicar aqui sem espaços, sem caracteres especiais ou conjunto do sublinhado Apenas no mais simples o melhor. Certo, então não precisa ter um nome longo e complicado com 50 caracteres. Alguém me perguntou uma vez se havia um limite de caracteres. Eu disse que não é conhecido, mas eu não estou inteiramente certo por que o que ele tinha em mente para um nome. Mas, você sabe, quanto mais simples, melhor. Então o nome do cliente da TV está me dizendo que este é um suporte de caixa de texto que deve estar segurando o nome do cliente em. Eu vou repetir isso para todos os outros controles porque então eu quero ser capaz referenciá-los facilmente do tribunal. Mas vamos começar com o nome do cliente da TV e depois quero o Toby. Eu quero que quando a pessoa clicar em enviar, eu vou imprimir o conteúdo fora do custo. Alemanha na caixa de texto em uma você sabe, outra janela. Vou reconhecer isso. Ok. O carro foi alugado. Toe que a pessoa são de modo que significa como, clique precisa do trabalho eu mesmo um botão pouco precisa fazer algo quando é clicado. Então eu estava falando sobre ser muito deliberado ao criar seus eventos, e vou mostrar exatamente o que eu quis dizer. Então, clicamos no nosso botão, vamos para propriedades em. Então você percebe que a propriedade gira. Nós temos isso, como papel com um alcance em cima. Pode parecer ruim na minha exibição, mas pode ficar melhor na sua. Mas aquele papel com esse alcance, essa é a janela de propriedades é a seção de propriedades fora da dor. Então temos este relâmpago, e se acabarmos, vemos eventos. Então, quando passamos o mouse sobre os relâmpagos, vemos a opção do menu sobre isso. Temos um monte de opções para eventos. Mais uma vez, um evento é como uma reação a uma ação. Certo? Então, um clique é uma ação. O que você quer fazer quando eu for clicado? Isso é basicamente o que é um evento. Então eu tenho o botão ligado. Eu quero determinar que algo deve acontecer quando definir botão é clicado. Então, para isso eu preciso de um stub método para que eu possa clicar nisso. Certifique-se de clicar duas vezes neste olhar, área de olhar credível. Quando eu faço isso, ele gera esse método parar, assim como fez com o rótulo quando clicamos duas vezes em nossa arte de vídeo anterior. Mas, mais uma vez, fui muito deliberado. Eu sabia exatamente o que estava fazendo. Tanto tempo. pesquisa é a maneira mais curta de fazer um evento rápido para um botão. Com certeza, basta clicar duas vezes nele e ele irá gerar esse evento. Sem problema. Mas quero que sejas muito deliberada quando estiveres a fazer isso. Então você sabe exatamente o que está fazendo. Se você não está cometendo erros ao longo do caminho estão reduzindo os erros a cometer ao longo do caminho. Então queríamos um evento rápido, então agora nos leva ao arquivo judicial ou ao tribunal por trás. Então é isto. Basta dar uma olhada no que este evento rápido parece ser. É um vazio privado em então ele tem o nome fora do botão, mas ninguém no placar. Clique. Tudo bem. Então essa é outra razão pela qual você deseja renomear seus controles. Porque se eu tivesse seis botões, eu não iria querer apenas um botão de sublinhado para sublinhar. Clique em vez disso. Se eu chamasse este botão, envie em seguida eu disse, e então eu gerei um evento rápido. Desculpe. Então, se eu tivesse renomeado nas propriedades, o que eu não fiz e não vou desde então, onde está esse cabeça de fogo? Só me explicaram o conceito que você tinha. Eu mudei o nome, toe enviar ou algo como Bt e enviar direito e, em seguida, gerou os eventos. Então eu teria conseguido Bt e submeter Underscore Creek. Então, seja qual for o nome do controle na pontuação, o tipo off eventos, essa é a convenção de nomenclatura que sempre será usada ao gerar esses métodos pára. Tudo bem em, então o que está tomando parâmetros Toe, Objetos remetente e evento R e. Eu não vou entrar no que esses significam, pelo menos não ainda. À medida que você avança, você vê o propósito deles. Mas o que eu quero fazer é deslocar alguma forma fora da mensagem para ver. Obrigado por enviar suas informações. Então eu tenho uma caixa de mensagem simples em C afiado para que eu possa ver uma caixa de mensagem encaixada. É um método chamado show, então se você está familiarizado com o console, essa linha direita é muito semelhante. Consola que direito detém direitos para a caixa de mensagem do console. Esse show mostra uma caixa de mensagem com uma mensagem nela em uma mensagem tem que ser uma string. Tudo bem, então qual é a mensagem que você quer mostrar? Você acabou de ver, obrigado por alugar. Tudo bem, então vamos deixar isso. Isso está de volta. Obrigado por qualquer coisa para não. E vamos ver como funcionam esses métodos ou essa menta de críquete. Então, quando eu clicar, começar tudo bem e então eu preencho meu formulário. Então eu estou apenas colocando dados aleatórios para que o ataque do carro seja alugado no primeiro, e ele vai voltar segunda-feira, e então eu clique em enviar, então você verá a caixa de mensagem. Obrigado por alugar. Certo, foi isso que aconteceu quando cliquei. Então ligou para a foto do telefone. Então esse é o evento por causa do telefone. O filho está lá, mas as notas dizem que não disparou até o clique acontecer. Tudo bem, então essa é a característica pobre de programação orientada por eventos. Então não, eu posso injetar o texto vindo do livro, então eu vou usar interpolação e fazer uma pequena concatenação aqui. Então eu vou colocar o cifrão antes da corda e depois dentro da rua. Só vou injetar. Quero o texto da caixa de texto. Qual é o nome da caixa de texto? Lembre-se de que renomeamos a caixa de texto para ser nomes de clientes TB. Então, quando eu quero fazer referência a esse controle, eu só preciso fazer referência ao nome da TV de controle. Esse cliente não precisa de TV, esse nome de cliente. Se eu passar o mouse sobre ele, você vê que é uma caixa de texto. É um tipo de classe, certo? Mas lembre-se que estes são objetos fora do tipo qualquer controle que eles são. Então este é um objeto fora do tipo caixa de texto, e ele tem todas essas propriedades. A propriedade que me dá os dados que foram inseridos na caixa de texto seria texto. Certo, então há uma propriedade de texto. É que não preenchemos tudo. É porque, bem, bem, você não quer que as tomadas estejam dentro de seus livros didáticos. no início, mas em uma vez quer usar. Eu tenho inter texto nos livros didáticos. Então você quer enviar um SMS dele. Então precisamos ver que não queremos ser o nome do cliente. Esse é o controle dos livros didáticos, não a propriedade fixa. Então, isso nos dará o texto que foi inserido na caixa de texto durante o tempo de execução. Então vamos tentar de novo. Então eu vou clicar. Comece, então eu vou para o pé. Vês? Serei o Gil Walters. Ah, uma grande água doente. Walters soletrando. Desculpe. Muito bem, Abigail Water Walters. E então eu cliquei. Submetam-se, então. Lá vamos nós. Então nós temos a caixa de mensagem mostrando. Obrigado. Onde obrigado a alugar. Obrigado por convidar. Tudo bem. Então eu posso modificar tudo isso de qualquer maneira, então obrigado por qualquer coisa. Tão pobre inglês pelo qual me desculpo. Então eu posso apenas dizer Colon Andi, o nome do cliente que foi inserido na caixa de texto. Tudo bem, então é isso. Então eu vou colocar um ponto de ruptura nesta linha só para que possamos ver exatamente o que está acontecendo . Então, quando eu enganar linha Bem, para mim mentir 20 meu urso. Linha diferente para você, mas eu clique no nome fora do método ou a linha que a definição do método começa em. Acho que é uma uva entre a esquerda, maioria está na linha, os números da linha fria. Então esse pequeno ponto vermelho aparecerá. Então isso é uma depuração ou um ponto de interrupção em vez disso. Em seguida, clique em Iniciar. Então, o que acontece que este ponto de freio vai ser atingido em certas circunstâncias? Então, enquanto o programa estiver em execução, o ponto de interrupção não está sendo. As crianças estavam fazendo todas essas coisas. Esse ponto não está sendo atingido até chegarmos. Submetam-se e depois vemos isso. Certo, isso é que estamos realmente causando uma função. Ele faz uma pausa na execução. Então, uma vez que você vê a seta amarela, ele está apontando para a linha que não é ato em def. Nós, você sabe, sentamos e pegamos. Às vezes eu pergunto, o que está acontecendo aqui? Quando estamos no modo de depuração, podemos realmente ver o que está dentro de nossas variáveis. Então, se passarmos o mouse sobre o centro, você vê que o remetente está nos dizendo que houve algum envio certo? Alguns submetem, são algum controle com o texto enviar, enviou a chamada para este evento, certo? E se você olhar para o que você vê outras coisas mais uma vez, eu não vou poder assistir no reboque o que tudo isso significa? Mas o fato é que as patas do Visual Studio Llosa estão cortejando execução, você sabe, ir linha por linha e ver algo. Então aqui você está correndo para o programa. Você sabe que flechas lógicas são algo assim. Eu só quero ver exatamente onde seu erro Waas Você pode usar esses pontos de quebra uma espécie de pausa e passo através. Eu não vou passar pelo passo através ainda, mas eu vou apenas remover os pontos de quebra apenas clicando de volta onde o círculo vermelho estava. Isso liga e desliga. Então eu posso apenas clicar em Continuar, em seguida, ele vai continuar com a execução em. Em seguida, ele diz obrigado por qualquer coisa em qualquer texto aleatório foi inserido em usar no cliente novo. Seguindo esse princípio, quero que pare esse vídeo agora mesmo. Em seguida, vá em frente e renomeie os outros controles, em seguida, tente e você sabe, produzir uma caixa de mensagem que princípio o conteúdo de cada um desses controles. Andi então você teria algo como algum pedido Novo nome de cliente de aluguel? Este é o dia alugado? Isso é o ser devolvido? Isso está no tipo de corrente? É isso. E é isso que espero ver na sua caixa de mensagens. Tudo bem, então espero que você pelo menos pause o vídeo e tente o quê? Vou guiar-te através das mudanças que acabei de fazer. Então eu continuei em Die renomeado meu controle. Então eu mudei meu seletor de datas, o seletor de tempo para DT alugado. Eu chamo para que os dados em que mudou DT alugou o para o devolvido eu digo DT retornou . Então, se você não fez isso e você quer seguir isso você sabe que você pode seguir ao longo Isto pausa. Você precisa ir junto para a caixa de combinação. Eu tendi a CB tipo de carro de modo que um segundo tem o prefixo para o tipo fora do controle em, em seguida, o nome assim CB quatro caixa de combinação DT para TB diurno para livros didáticos. Quer dizer, cabe a você. Não estou dizendo para usar esses prefixos. Exactamente. Você pode escolher o seu próprio. Apenas uma sugestão humilde que irá ajudá-lo ao longo do caminho. Tudo bem em então eu modifiquei meus botões de envio. Então vamos olhar para alguns do porão que eu escrevi no envio e você vê um acorde muito diferente . Eu vou guiar você através exatamente o que está acontecendo aqui, então eu gosto que eu sou capaz de gerar variável em, em seguida, armazenar o valor do controle dentro da variável. Não, a vantagem para isso é para mim é que quando eu tenho em uma variável, eu posso fazer o que eu quiser. Então é mais fácil manipular quando eu coloco em uma variável do que escrever. Se eu precisava escrever o texto mais cinco vezes depois que ele foi inserido na caixa de texto , eu não quero estar dizendo TV que leva o nome do cliente TB que leva cada vez. Então, se eu colocá-lo em umavariável agradável e conveniente, variável agradável e conveniente, eu posso usar este terrível ao longo do caminho e fazer qualquer outro cálculo que eu quiser. Então, minha humilde sugestão para vocês é que, para cada controle que vocês vão tirar dados , você tem, ah,um ah, dedo variável correspondente. Aceite isso. Então você pode manipular os dados através do verbal como quiser. Tudo bem, então eu tenho um nome de usuário string coletando o texto para os livros didáticos de nome de usuário. Tenho um encontro e depois olha para o que estou a fazer aqui. Não. Então o seletor de data hora vai trazer de volta um valor fora do tipo data hora, Mas eu pretendo imprimir uma string para a tela para que eu não possa colocar uma data hora na string tão facilmente. Então eu tenho que fazer uma pequena conversão de tipo. Onde? Basta ver a corda. Então eu estou começando sobre o valor, que teria sido água muito ajustado dentro da caixa de texto ou o seletor de data hora. Essa é a data, então eu só estou vendo me dar a data como uma corda. Agora há muito mais que podemos fazer. O que? Eu vou mantê-lo simples agora em Eu faço o mesmo para ele em corda. Encontro em. Então eu digo DT retornou o valor em Então eu digo para string alguns convertendo estes para valores de data em cordas de reboque para que eu possa imprimi-los. Não, na quarta linha, eu tenho um tempo variável diferente que nós nunca olhamos para os nossos comícios que eu não olhei com você. Isso é chamado var. Não, este não é realmente um tipo de dados. Este não é um tipo de dados. Vier é como se fosse uma declaração agnóstica que podemos usar indisponível. Em seguida, esta variável será relativa à água está sendo atribuída a ela. Então deixe-me abrir um pouco de espaço entre eles. Então repare para todos os outros. Eu disse que era para ser uma corda, então sabemos que é uma corda. Ao olharmos para ele, sabemos que são cordas. Quando digo fogo, estou vendo fogo porque não tenho certeza de que tipo de valor seria colocado nele para que eu possa declarar seu bar abençoado. E então, se eu atribui o número um para isso, então o tipo de carro se torna um inteiro C lá. Então eu disse fogo. Mas então eu disse, tipo de carro é igual a um. Não é um inteiro, por isso sabe que um é um inter Apenas assim a variável ou o tipo de variável não é no amigo interject disse 1.1 que você barulhento que wr à tona e eu sobre. Não, é um duplo. Então, se eu enviar uma string, então o tipo de carro não é uma string. Certo, então a questão é que o bar é muito, muito, muito, muito convertido, como, na verdade, adoro usar vírus tanto que demorei um pouco. Lembre-se que eu posso escrever a palavra string até agora é muito, muito conveniente. Muito flexível. Você pode usá-lo se quiser. Você vai diminuir o tempo tentando descobrir que tipo de dados você é muito mais embaçado. O objeto precisa ser, só pode ver fogo. Dê-lhe um nome igual e qualquer coisa. Sim, eu intui apenas a maioria que esse é o tipo de dados com que ele está trabalhando naquele momento. Tudo bem, isso é muito conveniente. Então eu só aproveito esta oportunidade para apresentar isso também. Então eu disse, o tipo de carro Vier é igual à caixa de combinação, que eu chamo CB tipo off carro ponto ponto selecionado item porque eu quero que quando você selecionar o um das gotículas, que é um que eu estou interessado em voltar. Então eu tenho que fazer uma cadeia de dois porque o item selecionado é, ah, digitar fora objetos. Então eu tenho que ver converter que a string em. Em seguida, ele me dá sobre o valor de string fora o que foi selecionado. E depois com tudo isso feito, eu não posso se caixa de mensagem. Então este é o objetivo final da caixa de mensagens. Andi, o que vou mostrar está acontecendo. Eu só usei minha interpretação e ler meu parágrafo legal alguém para dizer algo como cliente Nome Polônia em Então, em vez de ter que montar costume TV ou nome que o texto que eu posso dois c nome do cliente porque eu armazenei o valor da caixa de texto dentro fora esta variável. Tudo bem, então eu posso fazer ah linha quebrar aqui. Então o que eu quero é cada valor em sua própria linha. Então, para fazer isso em C afiado em uma corda, eu tenho que fazer algo como, hum barra invertida e barra traseira são então esta é a quebra. Isso é assim que eu entendo que direitos de quebra é quase como nome do cliente. Digite, em seguida, o próximo bit fora interesse informação. Cada vez que você vê isso, é como um perú primeiro. Tudo bem, então nome do cliente em uma linha que eu trago Klein que eu posso pressionar enter e ele vai automaticamente apenas eu apenas a string Calumet, continuar digitando. Então eu estou fazendo isso porque eu não quero digitar muito. Ainda está à direita e fora da tela. Então eu, é claro, o nome em. Então estou injetando a variável. Então eu tenho batido estão em Ted Colon sobre eles. Vou injetar a data variável. Aveia. Tudo bem, então eu fui quebrar de novo. Então, para mim tão rápido, eu só quero copiar. Eles disseram depois de digitá-lo cada intervalo de tempo, ir para a próxima linha em, em seguida, fez devolvido dois pontos em. Então isso seria feito em tudo certo e, em seguida, dizer que eu gerei corretamente. Então o caso importa muito, muito Bricklin novamente em seguida, o tipo de carro. Tudo bem, vamos. Em seguida, injetamos a variável, que é o tipo de carro. Tudo bem, então. Então, a expectativa era que quando preenchemos nosso formulário e então clicamos em enviar, deveríamos ver todas essas informações. Deixe-me adicionar mais uma linha, que é apenas dizer obrigado pelo seu negócio. Tudo bem, então vamos tentar isso. Então apertei o “start”. Tudo bem, então eu custei o testador de amônio entrou no aluguel. É sábado a partir de onde um dia para ser devolvido é o quarto sobre o tipo de carros muito em. Então eu clico em enviar e então lá vamos nós. Temos o nome do cliente, a textura da caixa de texto. Temos que ser alugados na data e hora. A única vez que o tipo de carro é Lotte. Andi, as notas de agradecimento Coração. Para que ele Então vamos sobre obter informações de ou formulário sobre, bem, manipulá-lo depois disso. Então essa manipulação é realmente apenas para apresentá-la. A manipulação pode ser dedo do pé, você sabe, um, ah, computação sobre os valores que estão lá. Pode ser que tenhamos enviado para o banco de dados. Seja o que for, o fato é que, não, nós sabemos como obter a informação. Então, mais tarde, analisamos como adicionamos coisas que a validação em todos os outros recursos, como enviá-lo para o banco de dados 19. Adicionar validações à Winforms de dados: como em nosso vídeo anterior, começamos a construir alguma quantidade fora do formulário de janelas da loja de inteligência. Adicionamos um evento de clique de tal forma que quando preenchemos o em formação e assim que o tipo de carro clique enviar. Em seguida, recebemos a caixa de mensagem exibindo os dados que foram inseridos. Agora, neste vídeo, o que queremos fazer é adicionar um pouco mais de funcionalidade ou alguma ou inteligência. A submissão. Queremos adicionar algumas coisas de validação como eu com um nome de cliente Onda. Então, queremos ter certeza de que quando o clique pessoa envia o nome do cliente no tipo de carro , precisamos ter certeza de que os valores têm feijão entrar índio traje completo e selecionado para o tipo de carro também vai querer ter certeza de que as batidas são pelo menos talvez a batida. retorno não deve ser no passado ou mais longe no passado e ser Trento. Sabe, coisas que são uma dissuasão. É uma espécie de ações futuras quando comparado com um retorno. Então nós estamos indo para eu tinha alguma inteligência para isso em. Também analisaremos possíveis exceções que podem ocorrer enquanto estamos fazendo nossa operação. Então, para começar isso, eu vou modificar meu formulário um pouco, e o que eu vou fazer é adicionar um novo campo em. Vou ligar para este campo. Custou alguém para ir à caixa de ferramentas. Estou indo para o pé, desculpe. A exibição. Alguns. Por alguma razão, ele tinha as minhas ferramentas. Então eu sei que ele está exibindo muito mais do que eu preciso, mas o máximo diretamente, 10 cliques mostram tudo em. Então trouxe todos eles. Então, se você se sua caixa de ferramentas são para as seleções dentro de sua caixa de ferramentas desaparecer, você pode clicar com o botão direito na dor e clicar em mostrar todos os nossos ir para escolher itens e selecionar os que você deseja. Agora, estou interessado em controles comuns porque estou prestes a trazer uma nova caixa de texto, arrastá-la para pegar meu cabelo. Oh, isso é bom em Eu vou usar esta caixa de texto dedo muito o usuário para inserir os custos na estaca em livros didáticos. Estou copiando uma etiqueta existente, você sabe, então eu não tenho que fazer, você sabe, colocar o retrabalho, mudar a propriedade, mudar o texto do nome do cliente para o custo. Tudo bem. Portanto, a expectativa é que quando a pessoa está inserindo esse registro, insere o nome do cliente o custo. O veado no retornou no tipo fora do carro. Não, vou mudar o nome da caixa de texto. Como sabemos, desenvolvemos a disciplina para fazer porque eu não quero ter que saber se é livros didáticos um ou não. Então, usando minha convenção de nomenclatura, que é colocar o prefixo TV. Então fui ver o custo da tuberculose. Tudo bem, então eu sei que eu tenho um custo livros didáticos ou livros didáticos chamado custo ou para o custo. Então não, eu só vou modificar meu cordão para obter o custo. Estou guardando meu custo como um duplo. Tudo bem, então eu digo que o custo duplo é igual. Então seria tão fácil fazer isso. Um TCE não custa SMS, certo? Porque é tudo o que sabemos. Recebemos o texto da caixa de texto, mas aqui está um problema. Estamos vendo que onde quer que linha vermelha e sua cidade não pode implicitamente converter string tipo para duplo. Isso é porque o texto é uma string. Estou tentando armazenar o custo dentro de um tipo numérico da OTAN, que sabemos que é ilegal porque C afiado é tão fortemente digitado. Então eu preciso fazer uma conversão então eu fui dizer converter ponto para dobrar, então eu estou passando o valor que está na caixa de texto. Então o que isso faz é que ele obtém o texto da caixa de texto, então ele converte em um duplo on. Em seguida, nós armazená-lo dentro fora são custos duplos variáveis. Lembre-se que poderíamos chamar essas variáveis de vírus que queríamos. Então, se você quiser mudar o modo, tudo bem. Eu não vou fazer isso, mas pelo menos sabemos as opções que temos agora depois de adicionar o custo, o que eu vou fazer é adicionar esses dados à caixa de mensagem que está sendo impresso, então entenda duplicar um fora das linhas e alterar o texto em conformidade. Custou alguns tinham controle. D nesta linha irá duplicar a linha em tudo o que estou fazendo, trocando votos, os dados para que não custe isso impresso na minha caixa de mensagem. Agora, antes de chegar à caixa de mensagem, entanto, eu quero ter certeza de que todos os dados estão disponíveis ou são fornecidos antes de chegar a este ponto. Então isso só deve ser impresso quando tudo estiver no lugar. Tudo é inserido com sucesso no formulário, então eu preciso verificar e certificar-se de que o nome do cliente está disponível e que o tipo fora carro, do carro, pelo menos esses dois devem ter sido selecionados. Então a ferramenta que eu posso usar para isso é uma simples afirmação if. Eu posso simplesmente dizer se a string foi fornecida ou se o valor é fornecido então ou se ele não foi fornecido, em vez de haver um erro. Tudo bem, então o que eu posso ver. E eu adoro verificar que os negativos primeiro no meu tribunal, eu posso ver se o nome do cliente logo em seguida, se você tem experiência em programação, são de outras linguagens do que talvez outras linguagens permitiriam que você. Ver é equivalente a conhecer Andi. Isso parece bom porque estamos verificando é para ver se o campo nome do cliente, que foi restaurado no campo nome do cliente, que restaurou no nome do cliente variável que estamos verificando. Se o valor for não, parece bom. Mas então, se é uma string em branco do que tecnicamente não sei, modo que a comparação não produziria o resultado que realmente queremos. Então ver afiado realmente usado ou alguma manipulação de cordas, hum, tolos, para que eu possa ver. Eu posso chamá-lo de cadeia de tipo de dados, e então eu posso dizer pontos em. Então eu vou ver que eu tenho que funções que têm um que diz é nulo são vazios, indica onde, se a string especificada é Knoller vazio ou é o que Knoller White Space, que indica se ele não está vazio ou consiste apenas caracteres de espaços em branco, certo? Alguém para escolher é “não “ou “espaço em branco”. Eles podem escolher qualquer um, mas Isla y espaço parece um pouco mais abrangente em termos do que estamos verificando alguém para usar não é mais espaço em branco, em seguida, passar na cadeia que eu estou verificando para ver. Se esta string é não ou conteúdo espaços amplos são. Só está vazio. Seja lá o que for para voltar às nossas cataratas, certo? Alguém para dizer se isso obtém, se isso é verdade ou se o tipo de carro também é menor vazio, eu posso ver se qualquer um destes não é menor espaço em branco. Não há outro espaço em branco. Então, se qualquer um destes é não ou contém espaço em branco ou está vazio, então eu quero exibir uma caixa de mensagem que diz “Por favor, forneça dados da máquina”. Por favor, insira os dados ausentes. E depois, contra ti, não sou, sabes, baseado no tempo do pai a verificar os dois ao mesmo tempo. Limita a minha capacidade de ser específica, certo? Limita a minha capacidade de ser específica, Então, se eu tivesse uma declaração se são condicionados para o nome do cliente sozinho que eu poderia dizer especificamente que você está faltando o nome do cliente se eu tivesse um para o tipo de carro sozinho que eu poderia especificamente dizer que você está faltando o tipo de carro. O lado não, no entanto, é que eu não quero mostrar uma caixa de mensagem para cada erro que está lá. Uma caixa de mensagem que ou linhas todos os erros seria bom. Certo? Então, onde? Eu não sei. Estou vendo apenas uma caixa de mensagem com uma mensagem de erro genérica baseada no se qualquer um dessas condições é avaliado como verdadeiro. Tudo bem. Outra verificação que eu indiquei que eu queria fazer foi nas datas, porque eu estou ficando mordido e eu estou recebendo barcos data ou OTAN tendeu inerte. Então eu quero ter certeza de que a aveia data não tem um valor de dados maior do que estar em. Porque isso faria sentido. Faria sentido que eu visse a dissuasão. É 20 de fevereiro, mas a data de retorno foi o primeiro de fevereiro. Isso não é prático, certo? Então isso é ilegal algures em outro lugar. Se declaração sobre, eu vou dizer isso. Não, eu vou especificamente verificar este e ter um erro de caixa de mensagem específico para isso . E depois vamos refratar para o tribunal e torná-lo um pouco mais fácil ou obits mais eficiente na exibição das mensagens de erro. Mas para não, vamos trabalhar do jeito que você sabe, beijar minhas chaves. Então eu vou ver se e então esses dois são valores de data, então é mais fácil para você como humano. Basta comparar com data é 20 de fevereiro uma datas maiores do que 1 de fevereiro em. Isso seria verdade para o Bird. 20 é um cumprimentado e para a fronteira um. Então, se você quiser ser essa comparação, eu poderia dizer que se a dívida é maior que a data em, então nós temos um erro, certo? Assim como todos. Para estar no Beit alugado nunca deve ser maior do que a data em ser a data devolvida, então eu posso dizer se pouco barco é maior do que o -lo em. Então nós mostramos uma mensagem boxe seleções de datas ilegais, e nós apenas copiamos MPs que um e mudamos o texto. Seleção ilegal de datas. Tudo bem, mas então você percebe que eu tenho uma linha vermelha na minha linha 34 com esta comparação ligada. Isso é porque estamos comparando duas cordas que ele está vendo. Você não pode usar o operador maior que ao comparar string, então este operador maior que é geralmente usado para números. Como se eu quisesse verificar se um número é maior que o outro. Se uma variável numérica é maior em valor do que a outra, então multa. Mas então eu não posso comparar duas cordas, que então me diz que a maneira como eu estou lidando com meus valores de data está inibindo minha habilidade manipular corretamente esses valores. Então, eu vou voltar a mudar o meu tribunal um pouco. O que eu vou fazer é mudar esses velhos para bater o tempo. Então, a volta para design ou controle Pekar realmente retorna um valor de tempo de batida por padrão, certo? Então eu era o único tentando convertê-lo em uma string aqui, mas o valor em si se supervalorizarmos ver isso? Diz que a hora da batida e a hora da data também podem ser comparadas. Pode ser comparado assim como todos os números inteiros e duplos e outros valores numéricos podem ser comparados . Então o que eu vou fazer é mudar o meu casaco um pouco. E eu não vou convertê-lo em uma string desde que eu estou recebendo o valor e então eu estou recebendo um erro porque nós estamos colocando essa data hora dentro de uma string. Então eu preciso mudar meus tipos de dados. Então não, eu só vou adoçar e usar var. Tudo bem, até agora vai atender minha variável assumir a identidade do valor que está sendo atribuído a ela. Então eu estou atribuindo tempos de idéia sobre a variável, e de repente é que eu cumpri pena. Tudo bem. Notei que meu erro foi imediatamente. Então eu estou verificando se este valor diurno é maior do que este valor diurno, então data aveia não deve ser maior do que o ele em. Se for, então vou mostrar a mensagem ilegal. Tudo bem. A próxima coisa que eu vou fazer em termos fora do piso lógico é tentar e colocar algo no lugar que ele não vai mostrar a mensagem de sucesso se essas condições forem verdadeiras. Tudo bem, você sabe instintivamente provavelmente vai dizer Oh, mas nós poderíamos ter dito se então se e então você não estaria errado, mas então eu não escreveria desse jeito. E eu não sou inverno editado fora porque quando temos um se então senão se então apenas um bloco pode avaliar a verdade. Então, isso significa se dissermos se então se então então senão, então nós só chegaríamos a ver uma mensagem de erro que está errado com o formulário. Então é filosófico, certo? Quero dizer, não há uma maneira de fazer isso porque você poderia fazer dessa maneira. E você poderia dizer: Se isso é verdade, então nada mais é executado. Se isso for falso, se isso for verdadeiro, então nada mais será executado em. Então, se nenhum destes for avaliado como verdadeiro, então o outro seria acionado. Então isso seria verdade e isso seria exibido. No entanto, eu quero fazer com que eu quero mostrar ao usuário tudo o que está errado com o formulário quando algo está errado com o formulário. Então é por isso que eu fiz esta declaração e nesta caixa de mensagem de show em então este é declarações este vai mostrar também se ambos estão errados. Mas então eu não quero que isso apareça. Então eu vou apenas colocar em uma nova variável e eu vou chamá-lo Vier é válido em ir para definir isso o verdadeiro direito. Então eu estou declarando que um ouro chamado é válido, certo? Estou ligando. Na verdade, não há nenhuma razão em particular para eu nomear esse nome. É apenas indicativo do fato de que ele está rastreando se o formulário está em um estado válido ou não. Certo. Então Vier é válido em porque eu enviar valor. Verdade, é um ouro saber se esta condição é verdadeira em onde não, vamos exibir um erro. Então sabemos que a fazenda não é válida, certo? Então eu vou me trocar. O valor de é válido. Se a declaração é verdadeira do que é bem, ela não é mais verdadeira. Tudo bem, então é válido não é igual o dedo do pé cai. Então, mais uma vez, começamos por nos definir. Verdadeiro. Queremos que seja verdade. Esperamos que esta forma seja violeta. Mas então vamos verificar não para os parâmetros inválidos no primeiro dos quais é se o nome do cliente ou o tipo de carro não foi fornecido, então vamos dizer, Bem, não é válido. Se isso não foi atendido, então é válido ainda é verdade. Porque então, se esta condição não foi cumprida, então ele não entrou e alterou o estado ou valor válido. Mas, em seguida, se os dados são maiores do que a data no em, o formulário não é válido. Então é valorizado é falso aqui. Tudo bem, então ambos vão verificar e dizer que com o status é válido cai sobre. Então o que eu vou fazer nesta noite passada é dizer, se ele é válido é equivalente a verdade. Então, queremos prosseguir. Tudo bem, então se for enquanto for verdade, então publicaremos nosso sucesso. Sra. acabei de colocar a mensagem de sucesso dentro deste quarteirão. Não, em C afiado, você pode realmente escrever isso como se fosse valorizado. Então você tem duas maneiras de escrever que você pode ver um comentário limitado mais reto. Você pode dizer se é válido, é equivalente à verdade tirada de toda a declaração. Se é verdade, mas e quando você está lidando com um ouro você está realmente vendo, se isso é verdade e então se você quiser pegá-lo, é tão longe quanto você pode ver se não é verdade. Mas eu só coloquei as exclamações e em vez de ver se é válido, é equivalente a quedas direita para que você possa escrevê-lo que tubarão Otway Isso é uma boa escola ou, na maioria das linguagens de programação obliterado desta forma em. Estou apenas deixando este comentário lá para que você possa ver exatamente as alternativas que você tem. Então, se você se sentir mais confortável escrevendo assim, tudo bem. Então vamos passar por isso mais uma vez. Então nós configuramos a bandeira para verificar a validade ou quatro formulário que eu estou apenas dizendo é válido é verdade. Então, quando coletamos todas as informações da fazenda onde assumindo que tudo está intacto sob validade é verdade, então começamos a ver se o nome do cliente não é fornecido ou o tipo de carro não é fornecido, então o é válido é não cai, e mostramos lá uma mensagem que também verificamos se as datas de saída é maior do que a data de entrada. Se isso fosse verdade, então é inválido. E assim mudamos nossa bandeira em exibição. Uma mensagem de erro. Agora, no final de tudo isso, estamos verificando se o é válido. O valor ainda é verdadeiro, porque se nem fora dessas condições foi cumprida, então seu válido ainda é verdadeiro em Def é válido ainda é verdadeiro. Então mostramos o nosso sucesso, desde que o valor do Val IDs não tenha mudado de verdadeiro até ele chegar aqui. Então é o sucesso. Certo, então vamos testar nossa nova lógica. Então nós apenas clicar, começar, e então eu vou encher a fazenda primeiro, então eu vou mantê-la, você sabe, com base no que sabemos. Então coloque no cliente, nunca coloque no custo. Eu coloquei o tipo de carro clique enviar, e então ele vai dizer que o ilegal fez seleção. E isso é porque estou verificando se os dados alugados devem ser maiores do que a morte devolvida aqui. Eu não mudei os valores em ambos os padrões para o parecer grande, então se eu fiz esse ajuste para vermos esse fora. Nossas validações estão funcionando com um clique. Submeter em. Então vemos que está tudo bem. Tudo bem, sabe, vamos começar a quebrá-lo. Se eu mudar a isca alugada para o quinto no devolvido é o terceiro ou o barco datas não é maior do que a data em. Em seguida, quando eu clicar em, enviar seleção de data ilegal. Tudo bem, então nós estamos vendo que ele está atingindo isso. Se declaração, se queremos ser mais estratégicos em ver exatamente o que o tribunal está fazendo, podemos em um ponto de ruptura. Então, já estamos em um barco ancorado. Podemos voltar para o estúdio visual fora dos pontos de pausa. Eu estou indo para este ponto de ruptura para o para Let's Put It para a última variável que a criação . Tudo bem, , então, vamos tentar de novo. Então eu vou pegar todos os custos Alemanha neste tempo, e então eu vou clicar em Enviar em, então o que acontece é que ele bate isso em. Em seguida, usando F 11 você pode ir linha por linha. Então, quando você vê aquele leão destacado em amarelo, significa que seu ponto de ruptura ou sua execução judicial é saber qual é a linha. Se você acertar 11 ele irá para a próxima linha e, em seguida, linha por linha. Você pode prender o que está acontecendo. Então, se eu olhar nesta variável, vejo que ela não tem dados, grava o nome do cliente string em branco. Se eu olhar tipo de carro, Eu vejo que Honda é fornecido. No entanto, quando eu passo através e eu vou para F 11 novamente, ele não vai para esta declaração se porque, em seguida, esta condição foi apenas avaliada para ser verdade . E assim onde parecia que a fazenda não é valorizada em. Em seguida, se 11 e, em seguida, ele vai para a caixa de mensagem e vemos caixa de mensagem Inter dados ausentes, clique em. OK, mas então a execução não é feita em, ele continua e nós dizemos F 11 em. Em seguida, vemos que o barco de data, que é o quinto de fevereiro, é maior do que a data em, que é 1/3 de desconto em fevereiro. Em def. Nós f 11 ele entra novamente e certifique-se que ele sabe que a data em que a validade é farsa e, em seguida, ele exibe essa caixa de mensagem novamente. Então nós temos que caixas de mensagem sendo exibido em. Então ele continua, então f 11 e eles vão para é válido. Saber se é válido, é verificar se é válido é verdade, certo? Neste momento, é falso. Porque se você não foi definido na primeira vez, foi definitivamente definido na segunda vez. E por isso, porque é falso, ele realmente pula sobre isso. Se declaração em, em seguida, continua. Não, nesta fase, podemos apenas acertar 5 para a execução do continente, ou podemos apenas clicar em continuar. Então teríamos conseguido as duas caixas de mensagem porque somos dois erros presença. Certo, então vemos que nosso tribunal de validação está funcionando. Não parece o caminho. Se eu não fornecesse um válido para um tipo de carro, teríamos recebido essa nossa mensagem sobre a inserção de dados em falta? - Não. Vou fazer mais uma experiência e depois mostrar-vos outra maneira que temos de ir chamada para validação. Então eu não vou fornecer um custo. Tudo bem, então nenhum custo será fornecido. Então eu vou bater no dedo do pé, submeter e então você vai ver meu tijolo da corte bem diante de seus olhos. Então, estamos recebendo alguma forma de exceção onde ver a string de entrada não estava em um carrinho por meses. Tudo bem, então o que está acontecendo aqui é que nós não fornecemos uma string para o custo em. Então ele está tentando convertê-lo em dobro. Portanto, essencialmente, isto está a dizer que não posso confortar nada. Dedo de um número? Sim, como um humano, você provavelmente viu, mas nada como um número zero, mas o computador vendo zero como algo e nada como literalmente nada. Certo. Portanto, está vendo aqui que eu não posso fazer essa conversão. Eu não sei o que fazer aqui então. Isto é o que chamamos de exceções. Então, quando temos uma exceção, ela pode quebrar nosso programa. Se eu pudesse continuar a ver que ele sai do programa automaticamente. Certo? Então, quando você está usando seus aplicativos e você recebe esses ares fetais um clique, OK, e então todo o programa fecha. São exceções. Queremos reduzir o número de exceções ou a probabilidade de que as exceções ocorram e encerrar o tempo de execução ou a execução do nosso programa. Então, usamos manipulação de exceção porque podemos amarrar defensivamente até certo ponto, e podemos não ser capazes de chamar defensivamente dedo do pé. Você sabe o quanto mais longe. Então a captura tentativa é literalmente o apanhador que nos ajuda a navegar são propriedade. Essas ocorrências é Então, o que eu vou introduzir dedo do pé este botão clique evento é uma trilha que . Voltando à minha primeira linha, vou tentar. Então eu apenas tento e então eu vou pressionar as coisas duas vezes, e isso gera o bloco inteiro para mim. Então eu estou tentando em operação, então eu estou verificando a exceção. Certo. Então deixe-me começar tirando tudo o que estávamos fazendo dentro desta aplicação dentro deste evento truque. Então, só o tribunal que escrevemos. Portanto, tenha cuidado com o aparelho. Acabei de falar com este último aparelho desta declaração. Você pegou isso e colocou dentro da bandeja. Tudo bem, então estamos tentando todas essas operações e não ele parou de executar no 27º plano ou sublinhado. Estamos convertendo o duplo que o texto para dobrar. Então essa é a linha do problema. Então não tem que ser um problema, mas esse é o que detectamos até agora. A questão é que eu estou tentando tudo isso onde quer que se sinta em tentar qualquer um fora deste marcado do que nós vamos para a captura. Então, quando um desses erros, como acabamos de ver com a conversão, quando esse tipo de erro ocorre, então verificamos. É que pegamos esse erro. Não, vou estender esta igreja. Eu vou colocar a exceção em um objeto chamado E X, que me permite obter os detalhes fora exceção que está sendo lançada. Então aquela mensagem de erro que o Visual Studio mostrou sobre erro de sistema inválido e isso e aquilo e que eu posso realmente obter esse texto deste objeto que eu estou tocando para a exceção, certo? Então eu posso exibir uma caixa de mensagem especificamente dentro da exceção em então eu posso dizer que a exceção ou a mensagem que eu quero mostrar é E X. Isso é objeto para o ponto de exceção em. Então tem uma mensagem. Tudo bem, então eu posso mostrar a mensagem dizendo que, você sabe, este é o problema que você está encontrando. A jogada acabaria com o programa. Sei que pode tomar uma decisão. Você quer no programa quando há uma exceção, ou você quer continuar o programa, mesmo que haja uma exceção, então eu posso apenas remover o todo comentado disse para não. Mas você pode acreditar se quiser, mas o lance mais uma vez terminará o programa. Se você não tiver o lance, ele exibirá a caixa de mensagem. Você clica em OK em, mas, em seguida, você ainda tem seu programa em execução. Então vamos ver como isso funciona. Então eu voltar para começar, então desta vez eu quero testar e ter certeza de que o meu trabalho de manipulação de exceção . Então eu vou fornecer os dados que eu sei o que precisa ser fornecido. Alterar as ações em, em seguida, clique em enviar e, em seguida, você vê cadeia de entrada não estava em um formato de carrinho . Então o que aconteceu foi que tentou a operação. Ele chegou até a parte onde tentou a conversão em. Então ele percebeu que OK, eu não posso fazer isso. Você foi para baixo para pegar a exceção em então que é a mensagem dentro fora da exceção porque nós não digitamos nada em uma caixa de mensagem para ver isso. Certo? Então, esta caixa de mensagem exibindo a mensagem para essa exceção particular. Então, você vê, mesmo que possamos chamar defensivamente contra sentimentos que estamos esperando ou condições que estamos esperando regras de negócios que estavam aplicando. Às vezes, o próprio sistema pode ter um erro que você não poderia ter contabilizado. Então é aí que a captura de tentativa vem a calhar. E podemos pegar certas exceções em Não deixá-los entrar no programa, você sabe, completamente. - Não. Como ato final, eu só vou modificar a maneira como estamos exibindo as caixas de mensagem. Tudo bem, então em vez disso, sendo esta uma caixa de mensagem por erro, o que eu vou fazer é ter uma string onde eu vou compilar os erros. Então, se Validus cai, então mostramos essa caixa de mensagem com todas as frases compiladas fora da Terra. Por isso, neste momento, temos de enfrentar situações do Harris. Nós temos este. Eu vou querer este. Temos que enviar caixas de mensagens. O que vou fazer está claro? Uma nova mensagem de erro var variável. Mas eu estou fazendo este igual a uma corda vazia. Então eu estou começando com um Aramis vazio porque até este ponto, nós estamos assumindo que o formulário é válido para a direita. Em seguida, a mensagem de erro estaria vazia. Então, em vez de dizer, ERM minha caixa de mensagem. Esse show que eu vou ver em vez de mensagem de erro em. Então podemos fazer. Ah, pequena operação aqui. Havia iguais próximos? Tudo bem, então estamos vendo que estamos compilando esse fluxo. Tudo bem, então estamos vendo a mensagem de erro Fechar é igual a, Digite. Faltando dados sobre o número vai ter o novo operador de linha bem ali. Certo. Então, no caso de haver várias linhas que estarão lá, não quero todas as linhas para que eu possa refinar isso um pouco para que eu possa ver o erro. Insira os dados ausentes. Então, se o custo do nome e o tipo atual não são fornecidos, então eu vejo a validade fora do formulário é não cai em. Em seguida, estou adicionando na mensagem de erro a variável que eu já criei. Certo? Então começa em branco em seguida. Se isso for verdade, então não, ele tem algum conteúdo. Então, estou vendo o que estava lá antes. Isto está neste dedo do pé. O que quer que estivesse lá antes, é a sequência da OLP. É uma acumulação, certo? Então provavelmente estaremos acostumados com isso com matemática. Bem, em C afiado, ele pode usá-lo contra cordas também, então eu vou fazer a mesma coisa. Não abaixe. Vou ver se a data de aveia é maior que a data. E então eu também quero acumular essa mensagem de erro na string. Então eu só vou ver esse novo personagem de terra, colocá-lo na corda. Tome toda essa brisa extra no DSO. Se qualquer um destes ou se ambos forem bem-sucedidos, havia apenas compilar a mensagem de erro no is valid teria mudado de qualquer maneira. Não, eu posso colocar isso. Se Elstone aqui para dizer se é válido, em seguida, exibir uma mensagem bots com o sucesso em, então eu vou ver mais eu quero uma caixa de mensagem. Então a caixa de mensagem não aparece. Então eu fui para exibir a mensagem de seta. Seja qual for o conteúdo da mensagem dela, quero imprimi-los dentro da caixa de mensagem. Então isso significa que se você adicionar outro cenário amanhã onde você tem outra declaração se para a validade, então eu posso apenas adicionar mensagem era e ver o que está errado. Então nós apenas para o que colocar em um erro de palavra lá. Tudo bem, então eu só estou jogando isso lá fora de tantas maneiras. Você pode fazer isso. Não estou a dizer que é assim que se faz. Não estou a dizer que isto é um padrão. Eu não estou dizendo que isso é, você sabe, não há outra maneira. Quero que tenhas a tua individualidade. Claro, só estou mostrando que há tantas maneiras de fazer isso quando você conseguiu o que precisa fazer. A Andi. Com talvez menos linhas fora do tribunal, o júri está fora sobre se menos linhas de tribunal significa mais eficiente ou não. Mas o fato é que, se você conseguir, então isso é bom. Então vamos testar e ver como isso seria. Então, se eu começar a candidatura, então eu submeto tudo o que aconteceu quando eu apresentar é que vai explodir nesta terra. Então, se eu enviar com tudo em branco, ele tenta converter o custo do dedo do pé vazio em. Só vai pegar a era. Então, quando eu clicar, enviar é que ele jogou direto para a captura e está exibindo essa era, então tudo bem. Mas vamos fornecer um custo e, em seguida, é arrastar. E se eu clicar em enviar. Não, é ver objeto, não, não, disse dedo do pé. Instância desligada na referência de objeto em sintomas. Está fora do objeto, o que posso dizer que não escrevemos esse erro, então é outra exceção. Então, não, precisamos depurar e ver exatamente o que estamos perdendo, por que estamos recebendo esse erro. Então, se eu colocar o meu ponto de pausa no início fora da linha, já são aqueles minimizam. Coloque meus pontos de pausa e não, eu estou trazendo de volta na minha janela e eu clique em enviar. Então eu vou passar até eu ver onde salta velho. Então, tanto quanto você pode ver, uma vez que ele vai para a próxima linha, tudo está bem, certo? Então ele vai para a próxima linha em então eu acho que é esta linha. Está dizendo que a referência do objeto não está definida para nada. Então eu estou aqui tentando me converter. Nada para amarrar, certo? Portanto, o item selecionado é não. Estou tentando converter a árvore de avisos. Então garanto que quando opressivo, ele vai direto para a captura, e lá vamos nós. Tudo bem, então isso é outra coisa que não nos apetece. Certo, então isso significa que precisamos mudar a forma como obtemos o valor da caixa de combinação . Então outra maneira de obter o valor da caixa de combinação poderia ser os textos de pato. Vou usar o texto do pato para que o texto do doc receba o valor da caixa de combinação. Eu fiz uma alteração judicial enquanto estou no modo de depuração, então eu realmente tenho que reiniciar o aplicativo, certo? Então o texto Doc me daria o texto que está sendo exibido na caixa de combinação. Se não houver texto sendo exibido, então é uma string em branco que é mais segura como estamos vendo. Se tentamos do jeito que tínhamos antes, vamos ter uma exceção. Se tentamos do jeito que tínhamos antes, Podemos não ser capazes de dizer corretamente à pessoa que sente muito por isso. Romance será capaz de dizer corretamente à pessoa o que está errado. Então, usar o texto do documento é provavelmente mais fácil. Então deixe-me apenas reiniciar este aplicativo Mais uma vez, nós reiniciamos porque se fizermos uma alteração judicial enquanto estamos no modo de depuração, ele não se registra no para reiniciar tudo isso. Foi rápido. Isso, hum, são circulares ao lado do botão de parada e é possível. Certo, então vamos tentar de novo. Então eu vou mudar o custo. Vimos que o trabalho de validação de custos chegou à exceção. No dia em que fui clicar em Enviar. Mas antes de me deixar tirar o meu ponto de pássaro porque eu não quero quebrar pontos, eu não tenho que passar por cima. Então, assumindo o ponto de ruptura, eu estou clicando. Submetam-se então. Estamos vendo nossa caixa de mensagem com nossos erros. Erro, Insira o erro de dados ausentes. Seleção ilegal de datas. Tudo bem, se eu mudar um deles então eu coloquei o nome do cliente e clique em enviar, então eu só vou ver Oh, bem, ele ainda está vendo inserir dados ausentes. Então é assim Isso é outra coisa, também, porque eu estou verificando o nome do cliente e tipo de carro na mesma declaração. É difícil ser direitos individuais. Quero dizer, eu provavelmente poderia perder isso. Phil Littleton diz, por favor,digite o nome do cliente no tipo fora do carro. Phil Littleton diz, por favor, Eu poderia ser explícito. Então, obviamente, se eu tiver um e não o outro que o usuário poderia deduzir, então tudo bem. Você pode mudar a mensagem, ou pode mudar o número. Se bloqueios, não vou priorizar o Irão. Não, mas deixe-me apenas produzir o tipo de clique de carro enviar. E, em seguida, estamos vendo uma mensagem de erro bisbilhotando seleção de data ilegal. E depois mudamos isso. É um três e, em seguida, clicamos em enviar, e não, temos um formulário válido em datas divididas de ser inserido. Tudo bem, então é basicamente isso para construir em algumas validações. Mais uma vez, esta não é uma ciência exata. Isso não é exatamente como, é assim que tem que ser feito. É só um cara te dando algumas idéias. Isso é o todo Você poderia ir sobre validar o que você precisa olhar para fora, como ele tão corretamente tratado quando eles são erros genuínos que você não tem contabilizado para aqueles que terminam o tempo de execução fora do seu programa. 20. Crie banco de banco banco SQL: neste vídeo, vamos começar a projetar nosso banco de dados para armazenar os dados provenientes do nosso formulário. Então, para o nosso banco de dados, estaremos usando o SQL Server Express no DWI será projetar pelo menos duas tabelas com base no que temos aqui. Quer armazenar o registro de aluguel e outro para armazenar o tipo fora do carro porque, bem, esta é uma lista suspensa e essa lista de carros está sujeita a alterações. Talvez um seja adicionado. Um fica tirando, sabe? Então, queremos criar uma tabela onde estamos realmente armazenando a lista de carros disponíveis para aluguel. Portanto, nosso primeiro passo é instalar o SQL Express Edition. Então, se você já tem servidor SQL que você está bem. Mas se você não fizer, então você pode prosseguir para ir para Microsoft dot com barra eu quero dizer, Eu vou dar-lhe o link ou você pode apenas google SQL Server em. Então, quando você chegar a esta sociedade muito liso cargas conhecidas e a que estamos interessados é expressa para que você possa obter desenvolvedor. Você pode obter Express Express é que você sabe que ele é gratuito em sua edição ah menor, por isso leva menos a instalação desta vez, e menos recurso é. Mas, em seguida, o desenvolvedor é totalmente caracterizado e é, você sabe, é leva um tempo mais longo. Então, para este propósito, eu encorajaria que você apenas obter expresso. Você não vai perder muito ao longo do caminho de qualquer maneira. Em, então. É um passo de instalação simples. Você pode conferir meu vídeo do YouTube sobre como instalá-lo se precisar de mais orientação, mas você pode ir em frente e instalá-lo no estúdio de gerenciamento em seguida. Quero falar do fato de que o estúdio de gestão foi instalado. Servidor foi instalado e começamos a projetar ou banco de dados No. Depois de instalar o SQL Server Express, você poderá abrir o estúdio de gerenciamento em. Em seguida, você será capaz de fazer login em seu servidor para que você veja o nome do seu PC uma onda barra invertida, o nome SQL Express em. Uma vez que você vê isso, você pode apenas se conectar. Se você não vê isso, então você provavelmente quer me deixar cair uma linha e me pedir alguma orientação. Caso contrário, se você clicar em conectar em não conseguir se conectar, provavelmente você deseja entrar em seus serviços. Verifique o SQL Express e certifique-se de que o serviço está em execução e, em seguida, você pode tentar novamente. De qualquer forma, sinta-se à vontade para chegar. Forme-me para mais detalhes. Aqueles que você conectou ao seu servidor você pode começar a construir seu banco de dados, então eu vou apenas clicar com o botão direito e clicar em nova base de dados. Isso abre uma caixa de diálogo, alguém para chamar meu banco de dados de aluguel de carro. E então eu penso, OK, uma vez que o banco de dados é criado aparecerá no objeto Explorer à sua esquerda. Então, eu só vou aprofundar as duas mesas, certo? Clique e clique em novo em. Estou criando uma nova tabela. Então a primeira tabela que eu estou criando, como eu disse, este carro até soc Um bem, a tabela é para o registro unwto do carro. Então, os dados que pretendo coletar estariam de acordo com o que eu teria projetado meu formulário de coleta. Então eu quero o nome do cliente o custo que o urso alugou lá. Ele não voltou no tipo de carro fora. É um tipo de carro que será uma chave estrangeira. Então, nesta fase, espero que todos entendam o design básico do banco de dados. E por que chaves estrangeiras e chaves primárias? Se não, então você pode conferir meu outro curso sobre desenvolvimento de banco de dados. Eu tenho o Microsoft SQL Server para todos e eu tenho o meu desenvolvimento e domínio de banco de dados SQL . Então, ambos os cursos trazem você entrar fim com o desenvolvimento de banco de dados e explicar por que somos chaves estrangeiras e relacionamentos e todas essas coisas. Então eu não vou gastar essa pontuação passando por esses detalhes. Vou continuar assumindo que você tem a informação básica. Então precisamos tabela para coletar esses campos e, em seguida, temos outra seção para uma chave estrangeira . E lembramos que estamos criando outra mesa só para manter os tipos fora dos carros. Isso informará a lista suspensa aqui. Então, de volta ao meu estúdio de gerenciamento do SQL Server, eu fui para ir em frente e criar a tabela de aluguel de carros primeiro com uma idéia fora do tipo em Ele será ópera de chave estrangeira turva. Desculpe. Então, eu clique com o botão direito, dizer disse chave primária em. Eu queria ser auto incriminador. Então eu vou até eu d a seleção de identidade em DSI é identidades. Sim, eu só não sei e torna-se sim. E isso significa que vai contar automaticamente, certo? O outro campo que eu quero é o nome do cliente neste aqui pode ser um char ambiente talvez. Ah 100 caracteres longo Próximo eu quero o d ele é alugado e SQL realmente tem um tempo escritura bater o tipo também um bate retornado em. Isso também será um tipo de dados de tempo bit. Eu acredito que eu tinha custo, então eu não vou custar. Isso seria um duplo. Então eles têm um duplo. Eles têm o dobro? Alguns dos duplos de alguma forma flutua estímulo Verifique se é um tipo de dados Não é. É realmente cerebral decimal que assim em para os custos estavam usando decimal em. Podemos deixar que o outono sentado lá. Então eu vou ver o carro ou o tipo de identificação de carro do tipo fora do carro I D. E isso é inteiro Nós podemos deixá-lo assim. Em seguida, podemos clicar em salvar para que possamos jogar muito seguro aqui ou controle s e que estavam recebendo este s carro no registro de reboque. Tudo bem, então o nome da tabela é carro até o registro, e mais uma vez ele teria todos os detalhes básicos sobre o carro real no reboque. Então, se eu entrar no lugar para inter carro e eles me colocaram nesse aplicativo as expectativas de que quando eles preenchem este formulário com minhas informações sobre os detalhes do aluguel , ele vai ficar salvo nesta tabela. Tudo bem, então a próxima coisa que eu quero fazer é criar outra mesa, e isso é apenas para a lista de carros. Então eu volto para o Explorador de objetos, eu clico em abrir uma nova tabela e, em seguida, eu quero um I D. Esta é a direita inteira. Clique em Chave primária Cedatos em e, em seguida, torne-a identidade. Passear pela propriedade está indo dedo seleção de identidade deixando cair a sua identidade deve ser Sim. Tudo bem, então. Eu quero o nome fora do veículo, então eu só quero a idéia Nome. Isso é literalmente tudo o que eu quero. Eu quero cada carrinho de sua própria idee identificador único em seu nome. Direita em. Eu fui até mim que um Environ Char fora tamanho 50. Tudo bem. E então eu vejo esta mesa em Eu estou chamando esses tipos fora de carros, então isso é tudo que eu quero. A próxima coisa que eu preciso fazer é fazer uma relação entre o i. D. ou a chave primária para o tipo off carro na coluna que é suposto ser a chave estrangeira para o tipo off carro, então eu apenas clique com o botão direito em qualquer lugar dentro da visualização de design para qualquer uma das tabelas. Realmente. E então vejo relacionamentos na verdade, não, não para nenhuma gorjeta. Eu queria relatórios inteiros do carro. Eu justamente dentro fora do carro Intel registro em. Então eu vou para relacionamentos. Pegue o anúncio E então eu deixei cair as tabelas e especificações quando eu não preciso deixá-lo cair na indústria. Precisa das reticências? Realmente? Então eu só carrego neste botão de reticências? Então ele vai dizer Onde está a tabela de chaves primárias? A chave primária está vindo do tipo fora tabela carro ou os tipos fora carro estável na coluna que é a chave primária é I D em, em seguida, o campo no aluguer de automóveis que muito é dedo do pé é tipo fora do carro I D. Então eu caí e, em seguida, eu sou apenas fazendo o link, algo que uma chave primária dos tipos fora carro estável deve refletir no tipo off carro I D coluna em seu carro na tabela de registro direito, e eu clique. OK, clique em roupas, em seguida, poupe em, então todas as coisas são iguais. Tudo deve ficar bem. Se conseguires uma era nesse ponto, certifica-te de que ambos estão dentro. Então aqui, na tabela de chaves estrangeiras ou no carro, toda a mesa do tribunal, desobediente em que a chave primária também deve ser em Se esses passos são estranhos para o seu você não está familiarizado com eles. Mais uma vez, eu encorajo você a passar pelo meu curso, meu desenvolvimento de banco de dados de desenvolvimento SQL e domínio ou um servidor Microsoft SQL para todos . Esses dois cursos irão mantê-lo atualizado com tudo o que você precisa saber sobre design de banco de dados . Então, para não, é isso para projetar nosso banco de dados que foram, você sabe, nós desenvolvemos uma empresa ou ganhar formulários de aplicação. No próximo vídeo, veremos como realmente vinculamos esse aplicativo ao banco de dados. 21. Conecte o banco de dados SQL: neste pouco será passando por adicionar nossos dados com base em nosso projeto. Assim, no vídeo anterior teria baixado e instalado o Microsoft SQL Server Express. Se você ainda não tinha, você teria usado para projetar duas mesas, uma para o Kyra até gravar uma para os tipos de carros que são as abelhas de dados. Então nós queremos saber, adicionar as referências a este banco de dados sobre o projeto, e então nós vamos passar por isso passo a passo, e a Microsoft torna relativamente fácil fazer isso através do uso off radio dot net Então nós vamos ver exatamente como isso funciona. Portanto, o primeiro passo é entrar em sua solução. Explorer, clique com o botão direito do mouse no projeto no clique em. Então, estamos adicionando um novo item e, em seguida, você vai para a categoria de dados. Soc visual C itens afiados que você vai para dados em. Então estamos escolhendo um modelo de dados de entidade dio .net. Então esse é o que estamos usando. Então vou dar-lhe um nome. Então o nome que vou usar é carro e TV . Certo, então o nome desse modelo de dados é banco de dados de aluguel de carros, e então eu levo um anúncio. A próxima tela me pergunta o tipo off modelo que eu quero. Então, se eu quiser o designer do banco de dados e para projetar um modelo vazio frio, primeiro modelo ou tribunal primeiro do banco de dados, girando em cada um vai dar-lhe uma descrição. Mas o padrão selecionado é aquele em que estou interessado. E se você quiser ler sobre o que ele faz, ele diz, que é só reboque. Crie um modelo baseado em um banco de dados existente. Ele era uma espécie de conexão. String em tudo para que possamos interagir com o banco de dados através deste modelo. Então esse é o que queremos. E f. Designer do banco de dados. Nós clicamos em seguida, em seguida, passamos para uma tela onde ele nos quer. Estes sapatos são uma ligação. Então eu tinha construído sobre o aplicativo usando North Wind no passado. Então é esperança nessa conexão. Mas não é nisso que me interessa. Certo? Alguém vai embora. É uma nova ligação ligada. Então eu vou digitar os nomes dos servidores. Lembre-se de que o nome do servidor seria o nome do computador. Barra de caixa SQL. Senhor, Extra expresso em vez, mas um atalho poderia ser apenas o colocar um ponto a caixa barra ansi SQL express. Então, o nosso médico é equivalente ao seu nome de máquina praticamente nesta situação em, em seguida, deixando que lá você pode ir para baixo para a parte onde você selecionar ou inter nome de banco de dados. Você solta isso e verá todos os bancos de dados que você tem no Escalate Express. Eu tenho dois. Ou você pode ter poucos porque você tem esses padrões. Ou talvez você tenha usado isso de antes, mas o que você está interessado é carro até porque esse é o que estamos usando para este projeto. Então eu seleciono carro no reboque. Posso clicar em testar uma conexão só para ter certeza de que tudo está bem. Mas então eu clique em OK para prosseguir uma vez que é o novo C que o contexto tipo de muda e está mostrando a cadeia de conexão que vai ser gerado em. Na verdade, vou passar pelo que você está olhando nesta seção porque parece confuso. Mas é muito simples quando você sabe o que você está procurando. Então a seção de metal mais tarde está apenas dizendo que, Ok, nós estamos adicionando. Isto é como algumas coisas para declarar o modelo que será adicionado. Isso é gerado automaticamente. Não precisa se preocupar com isso. As principais partes disso seria a parte que é a conexão dele. String é igual à fonte de dados. Então fontes de dados falando sobre o servidor que você está olhando. Então, quando eu digo agrimensor olhando agora, estamos olhando para o nosso servidor local Nosso próprio PC com instância de banco de dados SQL Express, está hospedando nosso banco de dados No caso de este banco de dados não estar em seu PC, então este não seria o mesmo valor. Talvez seja o IP ou o nome da máquina do outro computador onde está o banco de dados. Então eu estou passando por isso para dizer que se você está desenvolvendo isso em uma configuração corporativa onde você sabe que está, você tem seu PC nos bancos de dados em outro PC em outro lugar da empresa, e você precisa conectar seu aplicativo para esse banco de dados central. Em seguida, a fonte de dados seria o nome da máquina ou o endereço I P máquina em particular. Tudo bem. O catálogo fala sobre o banco de dados que você está conectando e então uma segurança bem integrada que pode permanecer verdadeira. Vários resultados ativos. É que é muito importante que várias pessoas sejam conectadas ao banco de dados simultaneamente. Mas como você pode ver, eles já estão lá e eles já estão definindo a verdade. Então as duas partes que eu quero focar em mim e elas são a fonte de dados no catálogo inicial . Mais uma vez, fontes de dados o nome ou o endereço fora da máquina que tem o banco de dados no catálogo inicial seria o banco de dados. Em uma sessão corporativa, você provavelmente seria desligado por segurança, como no acesso a esse banco de dados central seria medido pela segurança. Então, em outras situações, você ano subiu pela idéia do usuário e uma postura dentro da cadeia de conexão para ser capaz cometer. Mas isso é para um encontro posterior. Então agora temos um local. Temos nossa cadeia de conexão. Ele será salvo no arquivo até o conflito para que você possa ver para cima. Doc config é um dos incêndios que temos com nossos projetos, modo que será modificado toe tem esta cadeia de conexão, mas podemos clicar em seguida, e então podemos escolher o mais recente em palavra diferente. Isso é bom. Nós clicamos em seguida novamente. Agora. Esta tela não é perguntado quais objetos queremos importar para o nosso modelo a partir do banco de dados. Então, se eu cair em tabelas, eu vou ver todas as tabelas listadas em um banco de dados, que é tudo fora da ferramenta que acabamos de criar. Então eu posso uma vara mesas. Então, se você tivesse mais tabelas ou você está usando outro banco de dados qualquer uma das outras tabelas, você quer todas as tabelas, você teca tabelas, você quer todas as suas visualizações musicais. Você quer todos os seus três procedimentos. Você leva-os. O que quer que esteja no banco de dados, este modelo de estrutura de entidade é capaz de importá-lo e colocá-lo no contexto fora do seu projeto . Tudo bem, então eu vou tomar tabelas em Eu deixar essas configurações padrão, notar o nome fora do nome carro espacial intermodal. Isso é finalizar clique re, e então ele vai em frente e fazer a sua magia. Assim que terminar de fazer isso, carregando qualquer criação e vemos nossos modelos. Então deixe-me tirar um tempo para explicar exatamente o que você está olhando aqui. Se você estiver familiarizado com o design do banco de dados, então você está familiarizado com diagramas e um fora dos diagramas tão importante seria o diagrama de relacionamento de entidade. Então, o diagrama de relacionamento de entidade mostra, você sabe, como uma representação visual fora de sua tabela, os campos lá, Talvez os tipos de dados em alguma medida sobre também qualquer lançamento filho navios entre cada tabela tabelas e entidade em. Então você tem as relações entre eles. Daí o diagrama de relacionamento de entidade nome. Agora, se você está olhando para isso e você está familiarizado com o que um DRD se parece com o novo aviso que isso se parece com qualquer já eu tenho as duas entidades no meu banco de dados são as duas tabelas. A Andi. Vejo a relação entre eles. Quando eu clicar, esta linha vai destacar que o I d em tipos de carros está relacionado com o tipo fora carro I d. Ele também mostra que você pode acessar diretamente os dados dentro do tipo de carro através que relacionamento vai entrar em que mais tarde. Mas o ponto é que o modelo está dando acesso direto às tabelas dentro do contexto off C nítido. Então, uma vez que você adicionou este modelo e você chegar a este fogo, eu encorajo você a fazer uma construção sobre a construção pode ser feito usando o teclado, tubarão , aveia, mudança de controle e ser, Ou você pode simplesmente ir para construir soluções de compilação. Então é a mesma coisa, mas você não está iniciando o aplicativo. Você não precisa iniciar o aplicativo. Você só quer fazer controle, mudar e ser Deixe tudo re compilar para que tudo saiba disso. Ok, agora a conexão com o banco de dados está lá. Certo, então, uma vez que tenhamos visto isso, temos uma construção bem sucedida e podemos prosseguir com o resto fora do nosso desenvolvimento antes. Tudo bem, qualquer tribunal, eu quero apenas guiá-lo através deste diagrama e assistir. Preciso saber. Então eu vou clicar com o botão direito do mouse no espaço vazio Clique em Propriedades em, então eu vou dizer Tudo bem. Nas propriedades, temos duas notícias muito importantes. Mais uma importante, eles vão embora. Então temos o nome do recipiente da entidade, que é chamado Khar em entidades de reboque. E então temos nomes de espaço chamado modelo de aluguel de carros. Então, sempre que precisarmos acessar nossos modelos de dados aqui, precisamos saber para esses dois nomes, tudo bem. Quando essa hora chegar, você verá, no entanto, outra coisa importante que eu quero notar. Vamos para a solução Explorer. E então você vê que algumas referências foram adicionadas em você. Veja, o novo arquivo foi adicionado e você vê que eles também são arquivos de classe com os mesmos nomes que as tabelas. Então esses arquivos de classe foram realmente gerados por tabela. Então você vê atual eu gravo ponto CS Quando você clica nele, você olha para ele. Foi outra gerada. Quando você olha para ele, parece apenas um C afiado plus. Então o ponto é que quando queremos obter dados ou inserir dados são manipular dados estavam literalmente apenas fazendo tudo isso. Karen interfere, chamada delinquente. Você olha para mais tarde, mas uma interface chamada Link que irá interagir com essas classes mais nativas C nítidas em uma vez que estamos interagindo com eles estavam realmente interagindo com nosso banco de dados. Então, Idi oh dot net nos dá um pouco agradável interfere Taconic toe nosso banco de dados sem realmente precisar toe aerboats preocupação, sq e outros tipos fora dialetos que seriam necessários para esse tipo de operação. Mas podemos manter tudo homogêneo e tudo parecido com acorde afiado c. Não, a última coisa que vamos fazer neste vídeo é realmente muito relacionado com dados. E essa é a inserção, alguns valores padrão para que quando começamos a conectar ao banco de dados, não tenhamos nenhum problema. Portanto, observe que precisamos especificar o tipo fora do carro de ou formulário. Então o que queremos fazer eventualmente é tão vincular, vamos para o design, queremos vincular os itens que estão nesta lista toe o que está no banco de dados. Então fomos para o dinheiro ou saímos pegando essas cenouras, indo editar itens e inserindo esses. O que eu quero fazer é ter estes no banco de dados se mais do que estes são menos do que estes. Mas esses valores, eu não quero que eles codificados duro, porque se o Honda é velho amanhã, eu quero ser capaz de controlá-lo a partir do banco de dados em vez de ter que entrar no design cada vez e mudar essa opção. Certo? Então, quanto você vai limpar estes velhos daqui da seleção? Clique. OK, em. Então eu vou para o meu banco de dados e, em seguida, eu vou inserir esses valores nessa tabela. Desculpe. Clique nas tabelas, elas se expandem. Eu clico em tipos fora carros, clique com o botão direito em Ser pego qualquer top 200 linhas. Então, mais tarde, nós vamos realmente desenvolver uma interface que permite irmã gerenciar os tipos de carros nos dias deste. Mas para não, apenas me alegrar e amarrá-los manualmente. Então temos a Honda. Temos Lada. Temos Bogey Onda, um Toyota. Esses eram os valores que eu tinha na minha forma para os tipos de carros. Temos Honda, Lada, Bogey e Toyota. Esses são os tipos de carros em nosso banco de dados. Então, em seu próximo vídeo, vamos realmente voltar para o nosso código por trás em Executar uma consulta que recupera os tipos de carros em, em seguida, ligá-lo para a lista fora de itens disponíveis dentro de nossa caixa humilde em. Então vamos em frente e ver Hoe fim de semana, coletar dados e enviar para o banco de dados 22. Executando uma consulta específica usando o LINQ: Ei, pessoal. Enganando ou atividade anterior fora adicionando ou modelo de dados para o seu projeto, vamos saber, proceder para começar a executar consultas, toe coletar dados de nosso banco de dados e algum todo apresentado em nossa aplicação. Então nossa primeira atividade é lidar com bem existente fez. Então nós temos Não, Nós temos dados em nossa tabela. Colocamos lá nos tipos fora da mesa de carros onde temos quatro carros. Toby selecionado a partir do objetivo aqui é toe modificar nossa lista para a caixa suspensa em comprá-lo diretamente toe relógios, escola a partir do banco de dados. Então eu entrei no projeto. Fui editar átomos e à direita. Não, não há nada dentro do carro vazio dele, e isso é apenas verificar o quão vazio está. Então eu estou olhando para o aplicativo em si, e você vê, e você vê,não há nada lá, então a expectativa é que depois de sair, nossa operação vai ver os carros lá dentro. Tudo bem, então deixe-me fechar isso, ir para o tribunal atrás, e então podemos começar. Então a primeira coisa que eu quero fazer é criar um objeto que representa nossas datas em modelos. Então lembre-se preso que há alguns nomes aqui que precisamos. Toe conhece o Iraque. Clique em propriedades da água em. Então precisamos saber o nome do contêiner da entidade, que é carro no reboque. Entidades. Certo. Então, no tribunal, atrás do público, parcial e logo acima do controle. O construtor. Desculpe, eu vou entrar privates em, digamos, digamos, ler apenas alguns declarando um objeto fora do tipo de entidade de aluguel de carro. Então este objeto incorpora toda esta espécie é todo o espaço que você está olhando para todo o diagrama. Cada entidade representada no diagrama é encapsulada pelas entidades de aluguer de automóveis tipo. Então, fazendo referência às entidades de inteligência do carro dando nomes de objeto vou chamar entidades Parenteau sem venha. Veja, no dia eu fui para o dedo do pé apenas para semi-cólon então então este objeto vai me dar acesso a cada entidade que está dentro do meu modelo ou a cada tabela que eu teria inserido no modelo. Tudo bem, então de volta aos registros atrás da próxima coisa que eu quero fazer é realmente inicializá-lo. Então esta é uma declaração, mas não está inicializada agora. Isto não é um direito. Então eu só vou dizer entidades de aluguer de automóveis é igual a uma nova instância off em entidades de aluguer de automóveis . Por favor, note que Vier não funcionaria aqui. Você não pode ser partes claras de uma classe até agora. Tudo bem, então você pode fazer variáveis. Até onde não podemos fazer propriedades fora de uma classe até agora, então esta é uma propriedade privada fora da nossa forma . Muito bem, mais uma vez, declaramos uma propriedade privada fora do tipo de entidades de aluguer de automóveis, entidades aluguer de automóveis sendo o nome de todo o nosso modelo de base de dados. Tudo bem, em, então eu dou o nome do objeto com o mesmo nome, apenas com uma visão comum em Dhere no construtor. Só estou inicializando uma nova instância. Então não é mais saber que é Greedo porque, não, não está sendo usado. Mas não se preocupe com isso ainda, não é agora que a próxima coisa que eu preciso fazer é descobrir esperança, não é? Eu vou recuperar os dados da besta de dados para que ele esteja presente no momento em que o formulário aparece. Então, a expectativa é que quando eu abri esta aplicação de cargas de formulário em que ele vai carregar com a lista suspensa totalmente equipada com os dados que ele precisa para realizar a operação. Então isso significa que eu preciso consultar o banco de dados, obter as informações do banco de dados, apresentá-lo no formulário. Tudo isso. No momento em que o usuário estaria pronto para clicar na caixa suspensa. Então eu vou adicionar o que chamamos de eventos de carga de fazenda. Só estou a anotar o formulário. Eu clico formulário na própria caixa, ou a própria tela é selecionada. E depois vai de propriedades. O relâmpago ligado, vai procurar o evento do Senhor. Vês? Então eu estou eu quero que algo aconteça quando o formulário é carregado. Então, quando a fazenda Lords, Eu quero executar essa consulta muito rapidamente. Tudo bem, então eu vou gerar uma defesa formal. Eu só queria ficar assim. E está vendo a forma um no placar, Senhor. Então está vendo o que você quer que aconteça quando os senhores da forma? Então, quando o formulário é carregado mais uma vez, eu quero consultar o banco de dados, então eu vou dizer algo. Eu tenho carros ire é igual dedo do pé, então eu estou declarando alguma variável chamada var. Eu estou chamando de carros estão arrependidos que algum tipo de variável fora de nosso chamá-lo carros em, então eu preciso atribuir algo a ele sobre o que eu pretendo atribuir a ele é registros do banco de dados dos tipos de tabela fora carros. Então, quando eu declarei esta entidade lá em cima, ou este objeto bastante fora tipo carro em entidades, isso representa minha batida obesa, então eu posso então ver entidades de aluguel de carros em. Então use meu objeto primo médico para que eu possa usar o meu não operado para ver as propriedades lá dentro . E quando eu disser ponto você vai notar que eu tenho minha mesa sendo feita referências de registros de aluguel de carros. Se eu voltar para o meu banco de dados no Look Car em outro registro era um nome fora da mesa, mas então ele tem muitos registros. Então essa é uma das coisas entre o modelo faz por padrão tenta olhos plurais os nomes da tabela porque, quero dizer, eu chamo de um nome de tabela atual nosso registro, mas realmente nosso sistema atual ou de registros. Então eu realmente deveria ter chamado de carro em discos. Mas isso não é o ponto. O fato é que usando minha filha operar, eu posso acessar esta mesa. Então essa não é a mesa que eu quero, no entanto. Quero tipos de carros. Tudo bem em. Então. Eu quero isso no formulário fora de uma lista em algum lugar para dizer que a lista do dedo abre e fecha parênteses no DSO. O que isso está fazendo é usar uma linguagem ou um mecanismo que chamamos de Link, então é um nativo C afiado, mas a biblioteca é chamada Link on. É uma boa maneira de Korir banco de dados usando acorde nítido C nativo. Então, mais uma vez, eu teria basicamente estabelecido, por exemplo, uma conexão com o meu banco de dados para a declaração desta propriedade. Eu inicializei no construtor que isso é tudo que os construtores são para as coisas inicializadas . Nosso componente inicial de inicialização ISI lá. Bem, estou inicializando meu banco de dados para uma nova instância em. Em seguida, quando eu quero chamar no banco de dados, Eu uso que objetos que foi previamente declarado e inicializado seu sem operador em. Então eu posso acessar minha mesa e, basicamente, é isso. Então, se você está usado para dar cedo, é isso. Só estou me convertendo em nossas listas. Eu quero em uma data específica que eu chamei uma lista nítida em C. É por isso que eu tenho a lista para. Então, se você está acostumado com o desenvolvimento de banco de dados, isso é a mesma coisa que dizer Selecionar estrela de tipos fora de carros. Mas então isso é SQL. Este não é nativo C. Sharp Soto ser capaz de escrever este tipo de SQL teria tomado muito mais linhas sobre. Você sabe, eu teria que inicializar um leitor de dados do que uma tabela de dados para chamá-lo de objetos e um monte de coisas. Mas Link torna isso tão fácil porque você só é chamado de modelo de banco de dados. Chame a mesa, então, se você quiser em uma lista de uma cidade para listar, e é mais fácil apenas dizer a isso porque isso é um mais universal no momento, é mais fácil de manobrar com. Então saiba que temos a lista de carros armazenados dentro de para carros variáveis. Precisamos colocar isso para você. Então o que eu quero fazer, mais uma vez, é quando a fazenda carregar, que está indo fogo no dedo do pé. Este evento queremos obter a lista de carros do banco de dados em, em seguida, ter a caixa de combinação exibi-los. Certo, então o próximo passo é ver a nossa caixa de combinação em um carro tipo CB. Então vamos dizer que este avião é membro. Então, há duas propriedades que vamos definir. Primeiro queremos definir o membro de exibição em que isso vai ser igual nome do dedo do pé. Então este membro da peça é um texto que você vê, Art. Então lembre-se que quando tínhamos que configurar a maneira de definir os itens e você veria o texto Honda, nós veríamos o texto Toyota, etc. Este membro do jogo é o texto que você vê em. Então, se você olhar para trás para o design do seu banco de dados, você percebe que eu d é 1234 Você não quer que a pessoa esteja vendo 1234 Isso não significa nada para eles. Mas o texto que você quer que eles vejam é o nome Honda Lada corpo Toyota. Certo? Então nome é o membro de exibição no valor que estamos interessados seria o i d. Então temos membro de valor, eles exibem membro, e você tem membro de valor porque é realmente o valor que queremos armazenar, não a tela. Mais uma vez, temos um carro em nosso cartão que tem um tipo fora de carro que eu d fora tipo em, que significa que nós só queremos armazenar a idéia associada ao tipo de carro. Nós não precisamos saber o nome novamente porque é por isso que nós criamos a tabela para apenas armazenar os nomes na identidade . identidade . Então, uma vez que fizermos referência a isso, eu d os nomes na identidade . Então, uma vez que fizermos referência a isso, eu d Eu gravo, podemos olhar para trás e ver isso. Oh, se fui eu três, então sabemos que é bogey ou a pessoa seleciona bogey. Queremos armazenar três no registro. Tudo bem, então o membro de valor seria o que você pretende realmente armazenar, e isso está no fundo direito. Então, depois de sentar aqueles dedos do pé, eu vou ver que a fonte de dados para os itens a serem colocados na caixa de combinação para que C B tipo de fonte de dados do cartão vai ser igual toe cars. Então vamos passar por isso de novo. Estou no banco de dados para a lista de carros. E depois digo que quero a minha caixa de combinação, seja qual for a fonte de dados, seja qual for a parte da tomada. É apenas olhar para um membro de exibição para um nome, disse que o membro valor para ser identidade identidade em seguida, disse a fonte de dados, para ser os carros. Então, quando eu tirar a lista de carros, eles estão todos vindo com Idee e nomear alguém para mostrar o nome Eu fui toe armazenar o eu d em d eu vou definir que esta lista fora de carros com idéia e nome deve ser a fonte para a lista off itens que entram nesta caixa de combinação. Então vamos começar e ver como isso funciona em Douala. Então, não, você está vendo uma lista de itens para o nosso formulário ou quatro ou lista suspensa. Lembre-se, eu limpei o fosso mais cedo, então ele carregou. Não havia nada lá dentro. Não, você está vendo que os dados estão realmente lá dentro sobre esses dados estão vindo diretamente do banco de dados. E para provar que vou fechar essa janela, vá até o banco de dados em mais um carro. Então nós adicionamos mais um carro rasgado frota neste aqui é uma super regra. Certo, então, não, temos cinco carros em nossa frota. Vou voltar a executar, e quando olharmos na lista, a expectativa é que vamos ver o Subaru. Isso foi só um pouco, então esse é o seu primeiro passo para se conectar ao seu banco de dados. Então vamos rever o que fizemos. Nós configuramos eventos ah, Farm Lord porque percebemos que há certos dados provenientes do banco de dados que precisam estar presentes em nossa forma no momento em que o formulário é carregado. Então, depois de inicializar uma conexão com o banco de dados através do uso off, meus objetos são referenciados que os modelos de entidades. Então temos o nosso modelo em t. Eu inicializei no objeto fora do tipo daquele modelo de entidade. Tudo bem, então a tapir claramente inicializou-a aqui. Então eu percebi que eu precisava de dados daquele banco de dados antes do formulário ser carregado. Então eu criei ah forma evento Senhor que preocupava a mesa. Ecologista baseado em Onda fez os passos iniciais para acionar a caixa de combinação. Então, esses passos são praticamente universais. Isso não é exclusivo para o fato de que eu estou usando o modelo de entidade e isso e que é assim que você configurar uma caixa de combinação para herdar de uma lista de itens, se é uma lista estática, nossa lista vindo do banco de dados para que eles sejam usando Link ou você está usando os outros métodos que estão lá. O fato é que é assim que você vincular dados ou você comprar os objetos para o seu controlador são para a sua caixa de combinação. Em vez disso. Certo, mais uma vez, corremos ou Corey conseguiu uma lista de carros ou banco de dados literalmente. Se você ler a partir de ler uma lista que resta que começou a ver, Dê-me uma lista fora dos tempos fora carros do banco de dados em Armazená-lo nesta variável em. Então, mais tarde, dizemos que queremos exibir o nome Onda e armazenar o I D. Então a fonte de dados deve ser da lista dos carros que acabamos de retirar do banco de dados. E assim, quando nosso formulário é carregado, vemos que ele está executando aquela pedreira para obter todos esses dados. Se você quiser colocar o nosso ponto de interrupção aqui no aplicativo de reinicialização e basta ir passo a passo para ver exatamente o que acontece, apenas para ter certeza, então você pode se sentir livre para fazê-lo. Mas esse é o nosso primeiro passo para se conectar ao banco de dados no próximo vídeo, estaremos olhando para a esperança quando clicarmos. Submeta mil. - Não. Tudo o que fazemos quando clicamos em enviar é, você sabe, exibir as informações da próxima vez que quisermos realmente salvá-las em nossa tabela de registros de aluguel de carros. Então é tudo o que faremos no próximo vídeo. 23. Salve dados inseridos no formulário: Ei, pessoal, neste vídeo vai construir toda a funcionalidade para salvar nossos dados de formulário no banco de dados. Então, até agora, o que conseguimos foi construir nosso banco de dados. Primeiro, importamos um modelo de dados em nossos projetos para representar nosso banco de dados no Ben. Nós olhamos para como nós realmente invocamos uma conexão com o banco de dados. Então, em nossa lição anterior, teríamos inicializado os objetos que conecta banco de dados de armazenamento. Nós fizemos uma referência ou declaramos, e então inicializamos em um construtor em. Então não faça isso. Aqui em uma função de um senhor fazenda, teríamos executado nossa primeira consulta usando link. A Andi. Então eu estou apenas mostrando a vocês que isso é o mesmo que coisas como estrelas de tipos fora de carros. Essa é a mesma coisa que esta linha. Então sentimos a caixa de combinação com uma lista de carros no banco de dados. Não, A expectativa é que quando clicamos, enviar em destruir uma pré-visualização fora do formulário. Quando clicamos envios, A expectativa é que vamos salvar o detalhe que foi inserido no nosso formulário. Tudo bem, então eu vou modificar o quarto bit então nós temos um botão clique eventos que estamos usando dedo do pé. Obtenha os dados do formulário. Tudo bem, e então faça algumas validações. Então, se for válido, então exibimos uma mensagem. Se não, então nós exibimos. Ah, bem, se o seu valor do que com exibir uma mensagem favorável. Se não estiver, exibimos mensagens de erro. Tudo bem, então o que vamos fazer é modificar a parte é válida. Então, se for válido e eu quiser salvar os dados, então eu posso exibir a mensagem. Se eu não conseguir ver se os dados, então claramente eu não quero exibir a mensagem. Então, quando queremos salvar dados, precisamos declarar um objeto fora do tipo fora do legado, obedecer, manter e experimentar. Então, quando eu voltar para a minha modelo, então se você sabe que ele fechou a modelo por acidente, tudo bem. Você só volta para a solução exper e então você vê que o segundo arquivo E D M X é o dobro . Clique nisso e reinicie seu modelo, certo? - Não. Seja qual for o nome das caixas, geralmente é muito. O nome está fora da mesa? Tudo bem. Então você vê a caixa Lá, você vê atual no registro. Você vê, este é tipo fora do carro. E se eu olhar na solução Explorer, se eu soltar o e DMX o arquivo ah, então você verá que você tem um ponto CS arquivos sua tabela. Então você tem registro de informações de carros e você tem tipos fora de carros, nenhum tipo fora do carro. Desculpe. Então, esses arquivos representam arquivos de classe que representam sua tabela. Estas são classes que estão limpando diretamente todos os campos em sua mesa para que quando fizemos o registro inteiro do carro, sabemos que configuramos no nome do cliente, o alugado, o alugado, todas as taxas são nós colocamos no banco de dados aqui em nosso arquivo de classe. Então a coisa legal sobre esse processo e usando Lincoln video dot net é que eu posso criar um novo objeto desse tipo de classe em, então eu posso salvar esse objeto no banco de dados. Tudo bem, então vamos passar por isso passo a passo. A primeira coisa que eu quero fazer é no bloco que é válido. Quero declarar um novo objeto que vou salvar. Nosso registro de Parenteau é igual a uma nova instância fora do carro ou tribunal intolerante. Certo? Então, mais uma vez, esta classe diretamente muito é o carro tabela de registro Intel que criamos Aqui estão todos os campos que estão disponíveis para nós no dia diretamente, muito as colunas que estão em nosso banco de dados, que significa que eu preciso para preencher esses campos com os dados que pretendo armazenar dentro campos do banco de dados. Tudo bem, então, bem, todos eles com a exceção desligada, eu faria porque nós criamos I d para ser auto incrementos. Eu não preciso fornecer um valor para I d. Mas custo nome alemão vai ser inserido no formulário. Eles vão para o projeto. Costa, meu nome será inscrito no formulário no tribunal. Atrás já estavam coletando o nome do cliente em sírios em um nome de cliente variável no dso. O que eu vou fazer é tentar esfregar quaisquer valores que estão sendo armazenados nesta variável Muppet no reboque, meu mais recente inter registro off tipo carro em registro. Tudo bem, então eu sei que eu tenho um objeto que representa minha mesa. Vou ver se o registro de aluguel aponta o campo do nome do cliente. Portanto, o campo nome do cliente na minha tabela deve saber ter o valor fora do valor do nome do cliente que eu acabei de coletar do meu formulário. Certo, mais uma vez, esta é a mesa. Esta é a caixa de texto. Desculpe. Armazenando o nome do cliente nos formulários de vento que estou coletando o texto. Eu estou armazenando no meu local Muito porque o nome do cliente? Não, não, que eu coletei localmente. Quero empurrá-lo através da base de dados. Vou declarar um objeto fora da mesa que pretendo preencher com os dados. E então eu vou dizer que este campo de objetos chamado nome do cliente que diretamente esfrega o campo de banco de dados. Eu queria ter o valor vindo da minha aplicação de formulários de vento. Tudo bem, então. Eu quero repetir que o processo para todos os outros ou registro alugado ancorado teatro vai ser igual a Em que campo? O que eu tenho? Armazenar dados alugados sendo o valor pai está sendo armazenado na minha data variável. Aveia. Então, eu não posso deliberadamente nomeá-los meio esparsamente para que você pudesse ver a diferença e não ficar confuso. Assim, os dados alugados vai toe ter o valor que é armazenado dentro da data de aveia fora da mesma maneira. Em detalhes de controle ajustados duplicar essa linha. Será que ele voltou? Vai ter o valor que está sendo armazenado nele em. Tudo bem, então você apenas constrói oh, para o seu modelo. Assim, para cada campo que você pretende armazenar dados em seu banco de dados para sempre sentir que não está presente em seu objeto, você apenas senti-los sobre os dados correspondentes para ele. Então, a doca de aluguer está ligada. Então o próximo será o custo. Isso é igual aos meus custos variáveis. Então o último é os dados do carro. Então, não, eu tenho um pequeno erro aqui com o meu custo. Então eu estou armazenando Costas duplo, Mas então o tipo de classe é decimal porque eu declarei como decimal dentro do meu banco de dados . Tudo bem, então o custo é distante. Milha. Tudo bem, deixe-me ver. Oh, eu poderia ter usado float para que eu pudesse mudar o tipo de dados aqui apenas para torná-lo OK, mas provavelmente é mais fácil. Eu só custei É aqui, então eu provavelmente posso ver alguns pontos decimais esta noite e então eu vou apenas fazer um parsa estripado partes sobre eles análise custo todos os direitos e que vai tirar aqui fora. Ok, um pequeno erro de cálculo lá que não cuidou disso porque a função piratas está esperando uma corda a dez centavos passando em um duplo. Então vamos reunir nossos pensamentos. Eu acho que talvez eu possa usar um custo implícito aqui e apenas ver isso em milhas para ver se isso funciona. Então, às vezes você pode realmente fazer uma luz de fundição Isso Então nós olhamos para duas outras maneiras de fazer casting. Você pode fazer o tipo de dados, análise médica ou você pode ver converter ponto para on. Usamos uma dessas funções. Aqui está outra maneira de fazer nosso elenco. Então você acabou de usar Prentice o tipo de dados que você quer custar. Então o valor vem depois, escreve isso funciona às vezes tão situacional. Basta encontrar o que funciona em você. Mova-se, certo. Então sei que temos o custo sobre o valor final que precisamos para ir para a nossa mesa, que está vindo ou ganhar formas seria o tipo fora carro I d. Certo. Então o tipo de carro I d é um inteiro porque é o valor de chave estrangeira que precisa do tapete volta para o valor de chave primária fora do carro, que é 12 o 12345 com base nos dados que temos aqui. Então já sabemos que estamos carregando a caixa de combinação com o nome no I.D. mas o que estamos coletando da caixa de combinação é o texto. Então, se eu olhar para ele, eu sou realmente coletivo no texto. Preciso coletar o que está atrás da caixa de combinação. Então, para obter o valor selecionado literalmente, a caixa de combinação vai toe tem uma propriedade chamada valor selecionado. Certo. Então eu vou voltar aqui para o meu tipo de carro que eu d em seguida eu quero dizer tipo CB fora carro. Então esta é a minha propriedade de caixa de combinação. Desculpe. Este é o meu controle de caixa de combinação. Certo? E então eu digo ponto Então eu vou ver que há uma propriedade que é um volume selecionado eu possa rolar através se eu não tenho certeza. Ho para amarrar as pessoas selecionado valor, tudo bem. E então você acha que isso é tudo visivelmente pairar sobre ele. Você sabe, é que este é apenas um tipo de objeto genérico, e estamos tentando inseri-lo em um inteiro para que possamos usar outra conversão implícita de tipo de dados . Havia apenas o suporte aberto. Me dê um inter presente asiático off. Seja qual for o valor selecionado está no valor selecionado mais uma vez seria qualquer valor é marcado toe o item que é selecionado com base no fato de que temos membro valor sendo I d. Tudo bem, então o que eu vou fazer é criar um ponto de interrupção no é válido, e então eu vou continuar. Então vamos passar e ver segurar nossa mesa. Objeto é preenchido velho. Tudo bem, então eu sinto a filha. O nome do cliente é o custo do usuário de teste é 25 conjugado. Deixe-me mudar as datas para que não violemos nenhum fora da validação. Eu quero ir com o corpo, alguém para clicar, enviar nós batemos. Nosso ponto de ruptura é válido é verdade. Então, podemos usar f 11 para passar e, em seguida, vemos aqui um que estamos declarando em objetos que representam a nossa tabela. Tudo bem, então não, nós declaramos objeto. Não, começamos a preenchê-lo em entender para passar. Não digite fora carro que eu d em desafiar pairar sobre o meu objeto e apenas perfurado em Introduza Ver todos os valores custo Got set Teste usuário Deus disse que os dois dias foi dito o tipo de idéias de carro não definido ainda porque eu parei nessa linha. Então, se eu pressionar f 11 e ele vai além dessa linha, então você pode ver que a idéia tipo off carro é três. Tudo bem, então é assim que você obtém o IDreal ID que é o valor que foi selecionado da droga. Conhecido mais uma vez. Isso é importante porque nós realmente vamos estar armazenando o I D. Em vez disso fora o nome real do carro não está no DSO eu posso expressar suas cinco Onda. Vamos ver nossa mensagem de sucesso. Não, quando olho na base de dados, não quero ver os dados. Tudo bem, então nós apenas fazemos isso e temos certeza. Então, quando eu selecionar parar 1000 linhas desta tabela, eu não quero ver os dados nesta tabela porque onde realmente não salvamos. Então enchemos a mesa, mas não fizemos nada com os dados que preenchemos. Então, vou sair do livro mais do que então, vamos terminar a esperança do que precisamos fazer. Então saiba que eu tenho preenchido o objeto tabela com todas as necessidades de dados. Eu sei que preciso do dedo, passar para o banco de dados, em seguida, economizar nisso. Isso é realmente dois passos. Tudo bem, então eu vou dizer algo como Onda eles. Só me lembro do nome dos objetos do banco de dados. Então Kyra inserir entidades que representam meu banco de dados, algumas com apenas um carro até entidades ponto em seguida, o nome fora da tabela ou coleção fora de registros da tabela é Kyra até registros. Então eu digo ponto de novo número um anúncio do dedo do pé. E então o que eu estou adicionando está esperando em um objeto fora do registro de aluguel de carro. Adivinha o que eu tenho no objeto fora do carro até tipo de registro na forma de para registro Intel. Certo. Então eu criei o objeto todo o seu registro. Está fora do tipo de carro em registro. Qual é a mesa? DSO eu estou indo toe Adicionar este objeto que eu acabei de construir, você sabe, construindo e colocando todos os dados em. Só estou adicionando. Deite a coleção fora dos registros para aquela mesa. Tudo bem, então. Eu vou vê-lo. Abismo. Quero salvar as mudanças. Agora. Uma vez que eu faço essas duas linhas, então eu clico. Comece de novo. Vou dar o formulário ao Philo. Certifique-se de que tudo é válido em. Em seguida, clique em Submeter em. Então vamos passar mais uma vez. Então eu só vou fazer F 11 através de todas essas linhas e, em seguida, isso é preenchimento ou objetos. Então, se eu passar o mouse sobre os objetos mais uma vez, olhe para os dados que eu vou ver que as sensações realmente divertidas são preenchidas. Você vê um sem Onda. Mais tarde, vamos chegar a por que isso é não e por que não importa no momento estavam criando o objeto estão criando o registro. Ele não importa que isso é não e não importa que isso seja zero desde que eu estou criando porque ele está indo dedo pegou um incrementos de qualquer maneira, certo sobre. Então eu fui para F 11 por isso não recebe as palavras parte adicionando na coleção que f 11 em. Em seguida, salvamos as alterações em seguida, ele se move para misturar linhas, Entende? F cinco em. Então vemos o nosso Oh, você sabe, mensagem de sucesso e clicamos. Certo, mas depois vemos que vimos isso antes que o que procuramos seja diferente. - Não. O registro real está em nosso banco de dados? Então, se eu voltar sobre o estúdio de gerenciamento UAL esque em Die executar novamente este quadrado onde selecionar os itens da tabela, então eu vou ver meu registro no banco de dados. E se você olhar, você vê que nós temos um como o i d. Porque mais uma vez, auto incrementar o nome do cliente que foi uma má tentativa de soletrar o teste de palavras em nós temos a data alugada a data, retornar o custo sobre o tipo fora carro eu d em mais uma vez este i d muito está de volta, então sobre registros. Então eu meio que dei seis. Se não houver seis, é por isso que amarrar a caixa de combinação como fizemos no antigo Senhor. É por isso que vinculá-lo é muito importante. Tudo bem, assim como muitas vezes como um companheiro, este formulário e colocar informações e enviar a expectativa é que ele vai criar um novo registro. Preencha o registro com os dados ativados e salve. Está tudo bem. Em nosso próximo vídeo, vamos olhar para construir outras janelas antigas para que possamos ver, você sabe, você sabe, como os tipos de carros que estão no banco de dados, bem como os registros de aluguel no banco de dados. Nós não estaremos projetando ou certo na lógica. Ele vai estar apenas olhando para estender o design fora de nossa aplicação de apenas uma fazenda para talvez muitas formas. Posso mostrar-nos a data que queremos. 24. Criando formas adicionais e Windows: neste vídeo, vamos estar olhando para projetar formulários adicionais em nossa aplicação atual. Agora, a realidade da situação é que estamos escrevendo um pedido para uma corrente de negócios . Até agora, temos um formulário. Deixe-me apenas trazê-lo rapidamente, e este formulário é realmente apenas coletando dados que vai para a criação de registro I aluguel sobre. Tenho a certeza que se te sentares, penso nisso. Há muito mais em nossa corrente de negócios, então apenas, você sabe, você sabe, registrando o fato de que alguém que nomeou o custo naquele dia ele voltou e alugou o tipo de clique atual. Portanto, há mais no negócio e que há outras coisas que precisam ser feitas. Não, o problema é que você não quer tentar e fazer tudo em um formulário, porque este é um formulário que estamos usando este formulário para chamá-lo de nosso carro no registro Tyler. Formulários de ganho nos permitem construir várias formas, e cada formulário pode ter sua própria e cada formulário pode ter sua própria funcionalidade em praticamente todos eles são autônomos,o que significa que todos são capazes de agir por conta própria. funcionalidade em praticamente todos eles são autônomos, Então, neste vídeo, vamos apenas explorar o que acontece com a criação de uma nova forma, Onda Hole. Gostaríamos de lançá-lo de outra fazenda. Então, de volta ao nosso projeto, vamos clicar com o botão direito do mouse em nosso arquivo de projeto em nossa solução Explorer, lembrar onde a solução e, em seguida, temos este projeto, certo? Então, eu estou certo. Clique no projeto e, em seguida, eu vou clicar. Acrescente, então eu posso ver novo item ou posso dizer formulário. De qualquer forma, vou ter a mesma caixa de diálogo. Mas, finalmente, eu estou indo para o formulário alguém para começar com Novo item e, em seguida, em novo item, eu posso procurar um formulário, mas então eu posso ir para as sub-categorias à esquerda e ver janelas formulários em. Então o que eu vou fazer é selecionar o modelo de formulário, que é um formulário de janelas em branco. Ganhar formulários anteriores, e é assim ver você obter um formulário em branco, um modelo em branco. Também está pedindo um nome, então nossa primeira forma de que teríamos começado o projeto com o que é chamado de formulário um. Isso não me diz o que vai estar nesse formulário, não é? Então, se eu tiver até 10 formas diferentes fazendo 10 coisas diferentes. Eu não quero o formulário um para ele formar três. Eu trato nomear meus formulários da mesma forma que eu trata nomear meus controles. Então eu vou construir este novo formulário sobre. Eu vou chamá-lo de mim e Window e logo explico por que eu estou chamando de mim e janela, porque eu estou realmente vai estar usando este novo formulário para algo muito especial. Então nós chamamos isso de mim e janela e então nós clicamos, adicionamos, e então um dedo de estúdio visual baixo. Crie esse novo formulário e nos dê esta nova tela CC. Parece que todos formam um olhar antes de começar a arrastar sobre novos controles em tal agora o fato de que nós nomeá-lo em mim e janela vem profundamente por padrão com a palavra significa abrir a barra de título. Você também vai notar que o novo arquivo é chamado de mim e janela e todos os outros arquivos associados a ele também é chamado de mim e janela. Eu só estou indo dedão adequadamente capaz de fazê-lo. Então eu só vou voltar para o meu projeto de forma um e eu vou apenas copiar este rótulo. Só estou aborrecendo este rótulo, colocando-o na janela principal. Então eu vou mudar o texto que está nele. Então eu apenas clique com o botão direito do mouse ele vai de propriedades sobre. Então eu só vou mudar o texto para me ver e janelas para que quando ele for lançado, eu saiba exatamente onde estou. Certo. Então eu e janela Desculpe, cara. Janela Lá vamos nós também não quero que a janela média seja impressa assim na caixa de camelo na barra de título. Talvez eu queira outra coisa. Eu só vou clicar no formulário em si, certo? Clique, vá para propriedades em então eu vou mudar o texto que está sendo exibido fora de sua alguma distância para ver significa ser fraude Pressione enter e, em seguida, que parece um pouco melhor sobre os olhos agora Vamos ver como esta janela média parece. Então, quando eu clicar em Iniciar ele ainda vai lançar o formulário um. Não, este é o Forma Um. Temos trabalhado com o Formulário 1 agora temos um novo formulário. Gostaria de ver este novo formulário na janela. No entanto, eu não sei necessariamente como chegar a esse formulário então eu preciso colocar algo na polícia que eu perdi para lançar este formulário quando eu precisar dele. Certo. Então, saindo do barco ancorado apenas clicando em Parar. O que vou fazer no formulário um é trazer outro botão. Então eu vou mostrar a vocês como você pode iniciar outro formulário a partir de um formulário iniciando outro formulário. Então temos a forma um. Ele sempre vai aparecer com o formulário um por padrão. Mas eu quero que quando eu clicar neste botão, eu veja outro formulário. E neste caso, eu tenho janela média como meu próximo formulário ou minha próxima janela que pode ser exibida, certo? Então eu vou apenas para ir para Toolbox, rapidamente, ir para os meus controles, colocar um botão. Só estou colocando um botão aleatório. Nada espetacular. Isto é puramente experimental. É temporário, mas só quero provar que consigo abrir a janela de outra janela. Então eu só vou mudar uma ou duas propriedades neste botão em Não deixe mar. Lança-me e janela. Lança-me e janela. Esse é o texto neste botão, então este botão deve simplesmente lançar a janela principal agora. Teria que fazer isso no clique. Então isso significa que se eu vou esperar o dedo inferior, fazer algo quando ele é clicado que eu preciso de um eventos rápidos, certo? Então, se você terminar essa frase, não há elogios para você. Então eu clique com o botão direito do mouse no meu botão, voltar para as propriedades do relâmpago no duplo clique na era do riacho. Então, há duas maneiras. Agora você pode apenas clicar duas vezes no botão que irá gerar automaticamente um evento de clique. Ou você poderia fazer tudo o que eu fiz indo às propriedades, entrar no raio e criar o evento de ticks. Como eu disse antes, sempre tentei ser muito deliberado, tudo bem. Não, eu tenho o meu botão. Eu notei que eu tenho, mas ninguém clique aqui e, em seguida, eu tenho apenas um sublinhado. Clique em Sublinhado um. Então é aí que os nomes de conflito vindo porque eu não renomeei este botão neste botão também é, mas ninguém. Eu sei que são dois botões com nomes semelhantes com eventos de clique semelhantes, então mais uma vez é melhor se você renomear seus controles. Tudo bem, então eu tenho o evento de clique de botão para o meu novo botão ligado. Então eu vou escrever duas linhas fora da quadra que estão indo para o pé. Diga-me ou diga ao botão que quando você é clicado, lançou esta nova janela ou lançou este novo formulário, certo? Então eu vou dizer eu e janela. Então lembre-se que tudo em C Sharp é uma classe. Então, a quinta 1 é uma classe. Se olharmos para ele, Forma um é uma classe que está herdando de uma classe base chamada formulário, certo. Se eu entrar em mim e janela, ele também tem seus próprios arquivos judiciais. Eu posso clicar com o botão direito do mouse em mim e janela ir para ver cabo em. Então eu vou ver que essa janela malvada também é uma classe fora de si mesma. Chamam-me e sabemos porque é assim que chamamos o ficheiro. Também está herdando do formulário de classe base, certo? Então, o que eu preciso fazer para iniciar em instância fora de uma janela média é declarar um objeto fora do tipo me e janela. Então este sou eu declarando objeto ao inicializar É um novo eu e janela direita, lembrar e ver Sharpest. Então inicializamos em objeto fora de uma classe em. Então eu vou chamar uma função dentro deste objeto chamado Show. Tão semelhante ao buraco que mostramos nossa caixa de mensagem foram sempre disse Sra. Box, não mostrar, certo. E então é isso que aparece da caixa de mensagem para a tela. Enquanto tudo o que estou dizendo aqui é que eu quero uma instância fora de mim e janela aberta. Então eu quero mostrar esta janela uma vez que ela é criada em. Então só discutimos o uso de vírus. Podia salvar-me ali, em vez de me ver com a janela. O objeto é igual à direita. Então você tem as duas maneiras de escrever, qualquer que você se sentir mais confortável, se estiver tudo bem. Então não, as expectativas de que quando eu clicar neste novo botão, este experimento todos botão neste carro na janela do sistema, ele vai lançar ah janela para a janela principal ou lançar fora do formulário janela principal. Então, vamos tentar. Então, isso começa. Tudo bem. Então eu tenho meu carro no reboque, formulário para cima e, em seguida, eu clique em Iniciar janela principal. Andi, lá vamos nós. Tudo bem. Então, quando eu clicar, lança-me e janela. Ele parece apenas um prisma e outro monitor notar que cada vez que eu clicar, ele está indo dedo do pé. Abre este eu e a janela para que possas arranjar alguma inteligência a algum momento para ver se uma instância já está aberta. Então não abra mais, certo? Mas para não, vemos que podemos lançar outra janela a qualquer hora que quisermos. Assim que tivermos o tribunal apropriado no lugar. Agora isso é praticamente tudo para todo. Nós Global lançando um formulário adicional a partir de um formulário existente, entende que Feche todas as janelas Arkin dispersos Stop toe exit, modo de depuração. Todos juntos vou fazer mais uma coisa de acordo com as melhores práticas que estou tentando promover no meu vídeo. Até agora é a forma de renomear um de Apenas formar um que CS porque, sim, foi a primeira forma. Sim, foi a primeira coisa que estava lá. Então, por padrão, é a forma um. No entanto, quando começamos a construir em outras formas, você não quer ter que olhar para o especialista solução e adivinhar que forma um é o carro em uma janela da mesma maneira que podemos apenas olhar para isso e deduzir que janela média representa . Quer dizer, janela é a mesma. Devemos ser capazes de olhar para o encontrado para o aluguel do carro. Eu sei que é a janela de registro do carro inteiro. Então eu vou renomear este formulário em renomeando este formulário. Visual Studio vai permitir que eu mude todas as referências a este formulário uma classe em toda a minha solução. Então, o novo nome, para renomear, eu posso clicar com o botão direito do mouse no arquivo e ver Renomear em. Então eu vou chamá-lo de registro de aluguel são Vamos ser mais específico disco estranho do Brent. Certo? Portanto, lembre-se de que esta janela é toda sobre permitir ou ainda inserir nossos relatórios inteiros. É todo o seu registro percenter então Visual Studio está me perguntando ou me dizendo que eu estou renomeando um arquivo. Não, está a perguntar-me se gostaria de mudar o nome de todas as referências da quinta neste ficheiro inteiro? Eu vou dizer que sim. Eu quero fazer isso e notar quantos anos é um estudante é refratar-nos todas as referências para mim para que quando eu construir controle, mudança e estar não há erros no meu tribunal. Além disso, as maiores vantagens que quando eu olhar em minha solução Explorer, Eu posso diretamente são imediatamente detectar todos os formulários e o que eles são para não são assim. A última coisa que eu vou fazer é olhar no meu programa que CS file No. Em nosso programa que CS arquivo, temos todo o núcleo que é executado, como no momento em que o programa é iniciado. Quando eu clicar em iniciar o que realmente acontece é que o estúdio visual ou será que o mecanismo parece ainda arquivo RCs programado, que executa esta função principal. Então, se você estivesse fazendo os aplicativos de console e você estaria familiarizado com o fato de que há uma função principal em todos os momentos, então o que ele faz é inicializado algumas estrelas visuais, algumas coisas de renderização de texto. Eu não sei. Eu não vou sentar lá e ensinar onde essas duas linhas, no entanto, eu vou apenas aconselhá-lo que se você vai movê-los, certifique-se de que você sabe o que você está fazendo. Caso contrário, você pode deixá-los sozinhos com um que você pode modificar é aplicativo dot run onde ele está sendo executado na compreensão de uma nova instância off. Bem, nós mudamos o nome do formulário um dedo depois de registros inteiros. Então o que acontece é que quando você clica em Iniciar, ele faz. Esta linha faz esta linha em. Em seguida, ele executa uma nova janela de um torrent que eu gravo, e é por isso que essa é a primeira forma que aparece. Então eu sei que temos um formulário de janela média que queremos fazer a janela de aterrissagem para o nosso aplicativo enter. Podemos mudar isso do enunciado. Eu gravo para mim e janela Não, O que tem sido coberto é para cima. Quando o programa é executado, ele vai lançar as janelas médias. Então vamos tentar isso. Então eu cliquei. Comece em. O que vem primeiro é a janela média, Tudo bem, então, não, o próximo nós que temos é transformar ao longo de toda a aplicação no que chamamos de uma interface multi-documento ou um M D. I aplicação, onde a nossa janela principal com furos tira menu que nos permite ir entre todos os recursos sobre os respectivos formulários que serão necessários para suportar uma funcionalidade para esta aplicação . Outras funcionalidades incluiriam talvez, como um arquivo de todos os nossos registros. Tudo bem agora, estamos apenas adicionando, mas nós não os vemos a menos que você vá para o banco de dados, você não quer enviar pessoas para um banco de dados. Você quer que as pessoas possam visualizá-las no aplicativo. Da mesma forma, precisamos ser capazes de gerenciar a lista de carros em. Há outras coisas que talvez queiramos fazer em nossa aplicação atual que não podemos fazer certo? - Não. Assim como eu. E sabemos que não será a janela de aterrissagem ou o primeiro 1 que será lançado para nos mostrar todas as nossas opções depois disso. Ao clicar em cada opção, iniciaremos o respectivo formulário para esse recurso. 25. Crie um aplicativo MDI: Em nosso vídeo anterior, começamos a fazer algumas modificações no chão para aplicação. Mais notavelmente, o fato de que criamos uma nova janela são Neuf win form em. Em seguida, definimos It's Toby, o formulário inicial a ser lançado quando o nosso aplicativo começar. Então, quando eu clicar em iniciar Onda, nós eram tradicionalmente ver a forma atual fora. Não, estamos vendo por cima de mim e janela. Então não, precisamos começar a transformar a janela média em uma janela média real e um contêiner. Começamos a olhar para o conceito fora de interfaces de vários documentos. E então é isso que vamos fazer neste vídeo. Estou relançando o design do Windows e eu vou remover esse rótulo. Eu vou apenas encontrar esta janela malvada um pouco maior, então eu posso sempre apenas você sabe, eu apenas a largura é o natural com fora da janela com uma altura fora. Pior, arrastá-lo é por, você sabe, expandi-lo estão colapsando como de acordo. Não, o que eu quero da janela malvada é poder lançar outras janelas. E agora eu realmente só tenho um outro. Mas você sabe, estamos construindo um aplicativo inteiro eu tenho certeza se você esboçou ou você conceitualizou, você pode imaginar que existem algumas janelas que provavelmente precisaremos construir antes que possamos ter um aplicativo que provavelmente vai vender. Reboque um carro, Inter Agency. Agora vamos entrar na carne fora do assunto. Então o que eu quero fazer é ir para a minha caixa de ferramentas. Vou querer um cardápio. Então eu vou trazer Ah, muitas tiras no dia. Vou apenas adicioná-lo ao topo aqui. E então este ministério me permitirá começar a construir um menu. Assim, como acontece com a maioria dos aplicativos do Windows, você sabe que você arquivou tem visualização do editor. É para etcetera. Na verdade estou usando a tecnologia CME que usa você esse tipo de menu fora que é a faixa de menu , certo? Então eu sou apenas eu apenas arrastado sobre esta faixa de menu em seguida. Não, ele está me permitindo começar a digitar as opções de menu que eu tenho para que eu possa dizer gerenciar a listagem de veículos . Tudo bem, então é como se eu quisesse dizer, você sabe, esse será o meu arquivo e qualquer Tampa multi nível. Então, para o próximo nível, eu vou ter adicionar veículo. Vou ter que remover o veículo, talvez, um, e o veículo Onda ver listagem. Certo, então essas são as muitas opções que eu imaginei para o gerenciamento de veículos. Quero dizer, como você vai junto com provavelmente vai levar também Olga, porque talvez possamos obter pelo menos três off. Estes não são de um formulário, mas para não, estou apenas mostrando que é isso que você pode fazer sobre construir um menu, certo? Então essa é a lista de veículos de dinheiro. Então vou dizer dinheiro para alugar nossos discos. Então o próximo nível seria estranho o nosso recorde de informações. Ah, fins-de-semana ver arquivo. Então este seria o arquivo fora de todos os seus dedos que tem ocorrido no banco de dados até agora. Então provavelmente vamos querer editar o registro de aluguel, certo? Então o russo eu não vou colocar deletes porque talvez você gostaria que seu usado para ser capaz de adicionar todo o registro, que nós temos uma tela para já. Isso sempre começou. Gostaríamos que eles vissem todos os registros que aconteceram. Talvez os queiras a Eddie Tarrant. Eu gravo porque você sabe, se alguém mudar de idéia sobre um contrato de aluguel eles deveriam trazer sobre terça-feira, e eles querem trazer de volta quarta-feira em vez disso. E eles devem ser capazes de entrar e editar o registro de aluguel. Você não faz coisas assim, então eu vou deixar isso assim para não ligar. Vamos ficar, começar e ver como isso se parece. Tudo bem? Então, não, nós temos ou May e Window. E vemos que temos nosso menu quando clicamos nesses botões enquanto nada está acontecendo , certo? Então ainda temos algum trabalho a fazer, a fim de obter essas opções de menu realmente úteis. Então o primeiro 1 que eu acho que devemos trabalhar é o registro completo, já que esse é o verdadeiro recurso que temos vindo a construir para conhecer de qualquer maneira. Então o que eu vou fazer é voltar ao meu menu, expandi-lo, Andi, eu não conheço algumas pessoas. Eu tenho esse problema como eu tenho, mas quando você clica nele, é suposto expandir. Se não funcionar, então bem, eu clico nele até que seja credível. Há escolhas duplas quebrando minha própria regra principal. Mas quando eu clico nele e ele se torna um pouco apresentador, e então ele cai para baixo. Então, se você tem dificuldade em fazê-lo cair como eu acabei de fazer, então é isso que eu costumava fazer o nosso próprio. Isso eu não sei. Eu sou um estúdio visual está se comportando assim, mas eu só estou trabalhando com isso. Caso contrário, você não deveria ter um problema. Então o que queremos é um evento rápido sobre este item de menu, porque a dedução seria que quando eu venho para gerenciar seus registros inteiros e eu clique total registro. E a expectativa é que minha janela de registro de aluguel não deve entrar. Então, mais uma vez clique em evento. Posso sempre clicar com o botão direito Goto Properties Goto Landing Boat e mudou o nosso Eu posso apenas clicar duas vezes nele, e ele irá gerar esse clique. Os eventos pararam para mim. Notei que a convenção de nomes vai me dizer o texto que está no Barton, e então é um item de menu de faixa de ferramentas. Sublinhe o clique. Tudo bem, então essa é a convenção de nomes porque eu inadvertidamente, porém, clica na malvada. Tenho os registros de aluguel gerenciados, eventos rápidos aparecendo. Não, lembre-se que se você estiver errado, clique em evento e você simplesmente excluí-lo. Você vai ter que fazer alguma quantidade de limpeza porque se você deixá-lo de uma vez ligado, então você volta para o seu projeto. Você vai acabar com este erro de aparência desagradável, que é realmente pior do que realmente é, porque você pode simplesmente clicar em Ir ao tribunal sobre na seção. Aqui nele irá mostrar-lhe a linha no tribunal gerado que está tentando chamar a função que você acabou de excluí-la para que você possa simplesmente remover essa linha. Então você não deve ter problemas depois disso. Claro, Como você vai junto, você só faz turno de controle e ser para continuar a construir o seu aplicativo para se certificar de que você não tem ar. Digamos, veja, meu construtor é bem-sucedido em Eu posso fechar qualquer guia indesejada e minha visualização de design voltou ao normal. Então, onde estávamos? Estávamos olhando para configurar os eventos clique para mais de muitos tira são para tirar muitos itens , Então, se você se lembrar de como nós me lançamos e janela de ou formulário de informações carro, então você pode escrever o tribunal. Caso contrário, vou rever mais uma vez. Então o que fizemos em todo o nosso registro externo foi colocar neste botão puramente experimental. Mas o que ele fez foi lançar as janelas principais. Na verdade, vou remover o botão porque não preciso dele. Não é útil ou não é necessário avançar. Então eu o removi do projeto. Mas eu vou para o tribunal por trás. Eu só vou rever o núcleo que escrevemos no evento clique botão. Espero que você perceba também que remover o controle não remove os eventos que foram anexados a ele. Então o Adventista lá dentro só tem zero referências porque não há nada que chame de arte. Então, dentro deste evento rápido, o que fizemos foi lançar uma instância fora da janela ou do formulário em que queremos iniciar. Então chamamos a função Dark Show dentro desses objetos. Na verdade, eu vou apenas remover este evento de clique indesejado, então, se você tiver, você pode removê-lo. Se você sente que quer ficar com ele, não é problema. Você deixa isso em paz, mas eu vou voltar para a minha janela principal, meu evento clique na janela que eu pretendo lançar é adicionar registros de aluguel. Então eu preciso de uma variável. E vou usar o fio desta vez. Alguém para salvar o registro Parenteau ID Ire. Tudo bem, então apenas fale alguns erros ortográficos aqui. Nosso registro de aluguel é igual a uma nova instância fora da minha classe. Adicione o registro da Renta. Então, note fora. Claro que isso. Sim, é o mesmo nome, mas um é um caso comum. Uma unicidade. Capital A. Este é um nome de classe. Este é um objeto. Nome. Tudo bem. Assim como certifique-se de que você aderir às regras rigorosas onde ele vem. Invólucro do dedo. Tudo bem, então saiba que eu seria liberado este objeto para a próxima coisa que eu preciso fazer é adicionar um aluguel um disco ancorado, então tudo bem. E então eu posso economizar, em seguida, pressione start on. Então, quando nossa janela for lançada, vamos testar o pensamento. Então eu cliquei. Adicione o registro inteiro dela, e aí está. Mais uma vez , veio na minha outra tela. Então não, temos nosso botão trabalhando. Vai funcionar da mesma forma quantas vezes eu vou clicar. Ele vai lançar essa janela direito, então isso não é desejável. Um e dois reparam que este formulário ele veio em minha outra tela porque ele pode vir em qualquer ponto onde se sinta confortável. E essa não é necessariamente a experiência que queremos. Nós preferimos que esta forma seja amarrada à janela média, e que quando eu fechei a janela principal, tudo se fecha. A Andi. Tudo está amarrado ao eu nas janelas. Então temos mais duas coisas que precisamos fazer. Então eu vou voltar para o meu design da janela principal. Vou mudar uma opção muito importante onde a fabricação dos recipientes M D I em causa . Então interface multi documento significa que cada formulário seria visto como um documento praticamente em, em seguida, a aparência MD I ou que multi documento interfere pai ou recipiente seria o lugar de armazenamento para todos fora. Esses documentos são todos esses formulários. Assim que um formulário é criado, ele é criado dentro dos períodos e não pode existir fora da aparência. Então, o que precisamos fazer é em mim e janela que direita, clique vai ou propriedades e, em seguida, olhar para a nossa propriedade é MD I recipiente. Então você vai achar que sob o estilo do Windows em. Então você pode mudar. É um recipiente MD I. Me dê isso. Verdadeiro. Então observe a diferença em sua aparência Quando cai, parece, você sabe, animada, brilhante, mais vibrante. Parece mais vivo quando vejo Truell. Então parece ótimo lá fora e meio morto. Tudo bem, mas esse é um desses males necessários para que ele seja o contêiner MD I. Agora fizemos dele o contêiner. Mas temos mais um passo em que, quando estamos lançando nossa janela, precisamos dizer à janela que ela é “peer in spirit”. Quem apareceria é bastante certo. Por isso, agora só se lança. Mesmo que esta seja a aparência MD I, a janela que está sendo lançada não sabe que é uma criança MBI I. Tudo bem, então eu vou adicionar essa outra função onde eu vou dizer todos os seus pontos de registro ou o quê? Eu vou mudar uma propriedade, em vez disso, eu estou vendo pronunciamento dizer registro ponto m A aparência I direita é igual dedo do pé este. Tudo bem, então deixe-me explicar exatamente o que está acontecendo aqui. Então um que já sabemos que estamos lançando nossa janela. Sabemos que estamos mostrando, então estamos declarando o objeto e então estamos mostrando no meio. Embora eu esteja dizendo que tendo criado esse objeto, você deve saber que sua aparência de MD I é essa. E esta é uma palavra-chave em C afiado que significa qualquer classe em que você está. Então eu e janela está sendo representado pela palavra-chave que isso porque MD I pai espera algum formulário ou alguns objetos fora de um formulário a ser atribuído. Então, quando eu digo isso, isso é como uma manifestação são um objeto fora da janela principal. É uma palavra-chave em qualquer classe. Então, se eu for para os outros registros inteiros e eu ver isso dentro da classe de discos de Eloranta , isso representa no registro de aluguel. Portanto, é sempre relativo à classe em que está sendo usado. Então, quando eu digo isso dentro da janela principal, note que quando eu clicar nele, ele me destaca e janela. Mas C afiado é automaticamente dizer isso. Ok, eu sei que represento a janela má. Então eu estou dizendo que esta janela média é a aparência MD para o registro de aluguel A. Ah, outro objeto do tribunal inteiro em seguida, eu quero mostrá-lo. Então vamos ver que diferença isso significa. Então, quando eu clicar em Iniciar ou janela lançamentos e podemos ver que verde morto, podemos ver a diferença em Então eu vou lançar um disco Arent. Isso é o que eu quero fazer Um aviso que foi lançado diretamente dentro da janela. Desta vez eu não tive que ir e arrastá-lo sobre a tela. Onda também notou que ele está completamente contido dentro desta janela média. Não pode ir a lugar nenhum, não importa o que faça, não pode ir a lugar algum. Posso minimizá-la dentro desta janela masculina, posso maximizá-la dentro desta janela malvada, posso fechá-la no meu caminho. A janela principal ainda está viva no DSO Isso me permite Então, quando eu terminar de fazer essa roupa , então vá em , frente e veja o arquivo ou veja a listagem fora de veículos, o que quer que seja, eu posso fazer isso depois. Tudo bem, então é assim que a janela principal do MD Eu prefiro segurar o conceito MBI I funciona. Eu criei me e janela para que pudesse ser o contêiner MDR no futuro. Todos os outros formulários serão lançados não gerenciados dentro desta janela média. Antes de ir , , quero fazer algumas mudanças cosméticas. Então eu vou mudar a janela média de mensagens de apenas eu e janela para dizer algo como, hum, você sabe, aluguel de carros Cruz, hum, em seguida, dentro do nosso formulário de aluguel de carro foi para dizer depois da relação sexual, em vez de dizer Kyra até o sistema ligado, também com a mudança que leva dentro da barra de título para essa forma. Então eu saio e deixa-me fazer tudo à vista. Então clique com o botão direito do mouse no meu formulário entrar em propriedades no Maine. Protocolo de janela. Este aluguel de carros do Krul que é o nome fora do nosso negócio são, você sabe, carros no sistema de gestão de reboque. Desculpe, sistema de gerenciamento atual. Vamos fazer uma causa genética um produto que pretendemos vender, então não queremos marcá-lo antes de vendê-lo. Certo? Então esse é o nome em nosso significado em nosso eu e janela. Vou falar com Adam anti registro, e vou mudar a propriedade para a fazenda um texto. Então eu vou diretamente para propriedades que me mostram os eventos que eu apenas clique sobre as propriedades. O James. Um texto sobre este vai ser anúncio para registro da OMT sobre ir para mudar o texto no rótulo. Finalmente, em, este vai ver adicionar registro de aluguel. Certo, então há algumas mudanças cosméticas. Apenas ainda fazer a nossa aplicação olhar e se sentir um pouco mais oficial em. Então você pode pensar em começar. Podemos dar mais uma olhada em tudo. Certifica-te de que tudo está do jeito que queríamos. Então, quando eu vou para depois de todo o registro vai lançar a nova janela dentro do aplicativo em que parece um pouco melhor em não mais fácil para os olhos. Saiba que tudo parece que faz mais sentido. E podemos fazer um artista de maldição só para ter certeza de que não quebramos nenhum núcleo existente. Então eu vou colocar em um registro de aluguel de teste na apresentação lá vamos nós. Se você quiser ir ao banco de dados e verificar se ele entrou, você pode fazer isso, mas eu sei que ele entrou porque nós não modificamos o formulário. Então, cada formulário. Mais uma vez, é autônomo. É o seu próprio documento. Ele vai se comportar com sua própria inteligência baseada no que você tem concedido ao chamado fogo para essa forma. 26. Visualizar dados em uma grade: neste vídeo, vamos começar a projetar um dedo do pé de tela, nos ajudar a gerenciar ou listar veículos. Então vamos começar nosso aplicativo e nos atualizar com o que fizemos até agora. E temos muitos listagem aqui que nos permite adicionar remover, editar e ver listagem. Então, na verdade, eu vou fazer tudo isso de, bem, uma janela ligada bem, . Sabe, caso a caso provavelmente projetará outra coisa? Então eu vou modificar esta listagem inteira ou escuta. São muitos tira e apenas ter gerenciado veículo listando alguém para remover todas as opções de criança fora desse menu em? Eu posso apenas clicar em excluir. Então, quando eu clicar que um e ele selecionado, eu poderia expressar excluir nele vai realmente apenas remover que muitos itens. Então é onde você pode ir de barco removê-los, certo? Então eu quero um que diga gerenciar listagem de veículos, e quando eu clicar nele, eu vou lançar um novo formulário que está muito indo para o pé. Veja todos os veículos no banco de dados e, em seguida, execute as atividades da multidão a partir daí. Então eu vou fazer tudo de uma janela. Então, em primeiro lugar, eu fui dedo do pé nenhum clique Onda fazer os eventos truque naquele botão. Então há um número de atividades que eu preciso ser feito e apenas um grande X. E eles não precisam ser feitos em nenhuma ordem particular. Então eu estou criando o evento clique. Mas eu não vou colocar nada no críquete porque, bem, bem, a razão final para o evento rápido seria lançar a janela. E eu ainda não criei esse formulário, certo? Então, sim, eu tenho o evento de ticks, mas eu preciso criar o formulário. Então, você sabe, ordem particular. Tenho coisas para fazer. Só estou dizendo isso para dizer que você não acha que temos uma ordem rigorosa de nossa série fora de atividades que têm que ser realizadas em uma ordem específica. Certo? Então, já tenha um evento rápido. Podemos voltar a isso, mas vou clicar com o botão direito do mouse no meu projeto. Ir para adicionar Digam novo item em mais uma vez. Estou criando um formulário em branco no. Então desta vez eu vou chamá-lo de gerenciar listagem de veículos. Tudo bem, então meu formulário é listagem de veículos gerenciados. Eu posso passar algum tempo fazendo algumas mudanças cosméticas onde eu vou encontrar o texto na barra de título, Não olhar. Então você sabe, programação parece Tudo bem, então gerenciar a listagem de veículos em. Então eu vou começar a olhar para alguns novos controles no primeiro novo controle seria o controle de visualização de grade. Então, na minha caixa de ferramentas, eu fui para ir para os dados da subcategoria em então eu estou com C um. Isso é sua grade de dados vistas a exibição de grade de dados, exibe, linhas e colunas fora de dados e concordou que você pode personalizar. Certo, então é isso que vamos dirigir. Então eu luto com essa visualização de grade de dados, e você percebe que é apenas uma grande caixa verde. Então, eu só vou expandir esta grande caixa até certo ponto. Se eu usar essa corrente que eu recebo pelo menu, eu posso editar colunas em colunas, você sabe, habilitá-la. É apagar e adicionar. Eu seria filho telefone brilha para a grade se eu quiser. Eu também posso médico nos recipientes se eu documentar continente este recipiente inteiro e isso não é necessariamente o que eu quero, porque eu vou colocar em um rótulo no topo para dizer, gerenciar a listagem de veículos em. Eu também vou colocar algumas outras coisas aqui. Então, você sabe, talvez você comece com uma idéia do que você quer fazer, e então você percebe que Oh, mas você não tem que fazer isso que nós poderíamos fazer de outra maneira. Às vezes isso acontece. Então vamos começar por não ter isso duffed sobre eles para trazer mais rótulo. Então eu tenho uma gravadora no anúncio todo nosso disco já. Então, em vez de ir e tentar projetar no novo rótulo, entender Para copiar isso, voltar para o meu novo formulário, colá-lo, certifique-se de que eu posicioná-lo em ir para mudar o texto. Vou às propriedades, mudo o texto, e esta é uma lista de veículos gerenciados. Tudo bem, então este reposicioná-lo em conformidade. Nossa é a nossa nova janela para gerenciar a lista da semana No. Mais importante, a parte mais importante disso é nossas visualizações de grade ou visualização de grade nos dará como uma representação tabula fora de quaisquer dados que dizemos que queremos ver direito para que você possa pensar excel ou mesmo no banco de dados. Quando fizemos uma estrela seleto de uma tabela e vimos notamos que obtemos essa representação tabular . Isso é exatamente o que essa visualização de grade de dados nos permite fazer. Portanto, a primeira coisa que fazemos com eles eu chamo de controles essenciais porque eu rotulo é essencial, mas não tanto. Mas eu quero saber o nome fora da minha visão de grade, certo? Então eu vou para propriedades depois de pensar revisão, e você pode tomar algum tempo e olhar para as propriedades e perceber que essas propriedades com cada controle, suas diferentes propriedades fora do curso, cada controle é único em seu próprio direito. Mas a propriedade comum 11 vai ser o nome. Não quero que minha exibição de grade de dados seja chamada de exibições de grade de dados. Eu vou chamar isso de Devi, você sabe é GV Grid View direito em Este é o carro, o veículo da loja troca por cima de um. Lembra-te do meu prefixo e depois do nome. Seja o que for que este controle é para tão grande vista para a lista de veículos, então eu estou indo toe configurar este formulário que quando ele carrega, Eu executar uma consulta para os veículos. Andi, eu coloquei esses dados ou os dados que estão voltando daquela pedreira dentro desta visão da grade, certo? Então lembre-se que fizemos algo semelhante ao que quando estávamos olhando para lançar nosso carro onde deve ou adicionar ou em forma de registro Tyler, quando queríamos ter certeza de que nosso ou caixa de combinação tinha todos os dados necessários da listagem fora cartões . Certo. Então, neste caso, queremos que uma visualização de grade toe tenha os mesmos dados quando o formulário é carregado. Então, desde que eu queria acontecer quando os senhores da forma. Então, quando isso acontece, esses são os eventos que eu quero. Então eu vou clicar no formulário, ir até as propriedades do relâmpago ligado. Estou dizendo que quando os senhores de forma que eu quero esta coisa em particular dedo do pé acontece sob, enviou um duplo clique dentro da seção Senhor. E não, está dizendo: “ Ok, Ok, este é o quatro nome no placar, Senhor. Então, quando os senhores do formulário, o que eu quero que aconteça? Então a próxima coisa que eu quero fazer fora do curso é estabelecer a conexão de banco de dados, e então eu posso começar a ganhar minha consulta. Então, se você esqueceu, segure que funciona. Você pode voltar ao arquivo do tribunal Eloranta Record onde o que fizemos foi declarar objetos que representavam nossas conexões no banco de dados. Inicializamo-lo de dentro para o construtor ligado. Então, onde precisávamos acessar o banco de dados. Simplesmente chamámos aquele objecto, certo? Então vamos seguir esse mesmo padrão. Então, na nossa nova forma, a primeira coisa que quero fazer é na aula. Estou definindo um privado em que estou fazendo leitura. Só que a maioria se lembra, porque em dotnet isso sempre acontece. Não, você sabe, você pode fazer isso sem ler. Só que isso é bom. Mas eu queria estar fora do tipo de entidades de aluguer de automóveis, embora se você esqueceu de onde este nome veio do que no arquivo e d. M X que você teria criado para este projeto. Isso é um carro intel db dot cd uma mistura no meu caso. Mas se você tem um nome diferente, ele deve ser dot e DMX. Você pode clicar duas vezes para ver seu modelo de dados, mas quando você vai para propriedades, você verá o nome do contêiner da entidade, e esse é o tipo de classe que representa a conexão com sua data de abelhas. Tudo bem, então se você esquecer o nome ou você está fazendo um do zero, você apenas procurando entidade, recipiente e qualquer nome que esteja lá que é o seu tipo de dados. Tudo bem. Então, de volta em nosso novo arquivo judicial para o nosso novo formulário, dizemos privada leitura somente os tempos são entidades de aluguel de carros, que é o nome do contêiner da entidade nisso. Vou dar a ele o nome do objeto. Então o Visual Studio está sempre fazendo sugestões, e isso é muito legal. Eu tomei uma das sugestões na forma anterior onde eu disse, Aluguer de carro estranho. Deixe-me encontrar o arquivo do tribunal rapidamente. Então, no anterior, onde eu acesso o banco de dados, eu usei os estúdios de recursos sugerem um e tudo bem. Mas muitas vezes na Internet, você provavelmente vê algo como contexto sendo usado ou no placar. Db. O fato é que o nome do objeto não é não é. É inconsequente para a funcionalidade, tudo bem, então eu posso dizer meu objeto qualquer coisa. Então, nesta situação, eu vou nomeá-lo sublinhado db Isso sendo dito, no entanto, eu promover a consistência. Então, se você começou em um caminho continuou naquele parque, se você quiser mudar o caminho, mudar o caminho, direita, garganta sua quadra para não ter sublinhado DB neste formulário em, em seguida, carro em registrar entidades Renta em outra forma e, em seguida, outra forma. Você se sente de outra maneira e você chama de Contexto são CTX Não faça isso. Os pais têm uma convenção de nomes consistente. Estou fazendo assim só para mostrar que o que quer que chame de objeto é inconsequente . Tudo bem, então eu vou usar DB nesta situação. No entanto, mais tarde, vou passar por um dedo do pé tudo normalizado na pontuação. Db. Tudo bem. Então privado Leia sobre o carro até entidades db no interior do meu construtor na noite abaixo do componente inicializado. Eu vou dizer na pontuação, D B é igual a uma nova instância fora superior e entidades. Então essa é a inicialização, certo? Então, quando nossas salas de programa são quando este formulário é lançado, ele sabe sobre o DB, então ele inicializa seus componentes e o banco de dados Andi Então, durante todo o resto do formulário, qualquer momento que precisamos falar com nosso banco de dados, temos o nosso objeto de banco de dados sublinhado. Então a primeira coisa que quero fazer é correr aquela pedreira para levar o carro a algum lugar para salvar carros Ire . Andi eu uso carros e veículos de forma intercambiável. Então, qualquer que você queira usar, tudo bem. Mas Vier carros é igual a conexão de banco de dados ancorada. Eu não quero o carro em um disco então eu posso ir rolar até eu ver a tabela que se parece com o que eu quero, que é tipos fora de carros. E então eu posso dizer isso para listar. Então eu quero a lista, ou pelo menos fora dos tipos de carros no meu banco de dados. Então eu estou armazenando todos aqueles dentro de uma variável chamada Carros não estão ligados. Então o próximo passo seria deixar a grade de dados Não, que ele deve estar exibindo o que está voltando para dentro da lista de carros para que eu possa dizer GV certo? Então, porque eu renomeei e quando é um ótimo ciclo de visão, é doença da fonte de dados da lista de veículos GV. Bem, reboque, certo? Então a lista de carros que voltam do banco de dados servirá como fonte de dados para minhas ações são ótimas. Então vamos ver como isso parece. Clique em Iniciar em. Então, quando a janela aparecer, eu estou clicando e nada está acontecendo. E por que nada está acontecendo? E vemos que ainda temos um fluxo, qualquer item. Mas nada está acontecendo. E isso é porque eu não terminei meu clique. Significa que terminei de ligar o formulário. Ou pelo menos para não. Eu conectei o formulário de alguém para voltar para o meu design malvado da janela ou para o arquivo do tribunal ou outro. Então aqui está que eventos rápidos depois de ambos o projeto? Porque eu perdi um menu itens que eu preciso excluir este. Tudo bem. Bom. Sabe que limpámos as interferências no nosso processo judicial? O que precisamos fazer é deixar o botão lançar os novos formulários. Alguns apenas para salvar ira neste vai ser listagem de veículos é igual a nova Andi. Eu chamo de veículo minha lista de veículos. Tudo bem, , então eu tenho que dizer que é MD I aparência. Este veículo está listando que pai do FBI Easy Quarter este, que é uma janela malvada. Andi, Finalmente, depois de quando tudo isso fora do caminho eu quero mostrar. Certo, então vamos tentar de novo. Alguém é um lançamento nosso aplicativo em. Então, quando eu clicar em gerenciar listagem de bico Agora estamos vendo nossa listagem em. Olha para isto. - Não. Então estamos vendo a visão da grade, Andi. Quero dizer, parece um pouco anêmico. Veja a grande caixa verde e vemos a grade preenchendo o máximo possível fora da caixa. Vemos que estamos recebendo sobre a identificação e o nome nesta coluna aparentemente aleatória do banco de dados do carro de chamada para registros. Mas o fato é que estamos vendo a atual nossos registros naquela visualização de grade para que possamos voltar para esta janela em pode ser limpá-lo um pouco, alguém para sair dessa. Então eu vou modificar a largura dessa ótima vista porque eu realmente não preciso preencher Você sabe, que muito espaço para duas colunas. Então eu estou vendo o nome nos registros de aluguel de carros da Dwell. Eu não explico o que é essa coluna aparentemente aleatória, mas eu quero adicionar os botões. Então eu tirei a capacidade de editar adicionar, remover os carros do menu, listando na janela principal. Então o que eu vou fazer é colocar botões dentro desta janela que serão responsáveis por nos ajudar a fazer essas ações, certo? Então eu fui dedo do pé tem quatro botões são três botões. Então, quero dizer um botão e estou apenas copiando. Estou a rebocar. Pegue uma lança. Tudo bem, então, para os meus botões para as propriedades um eu quero que ele leva para ver o que eu queria fazer Então Mas em um vamos dizer que nós queremos que eu este o novo carro adicionar, certo? O botão três. Eu quero esta e outras propriedades de spin para que eu não tenha que continuar indo e indo também botão três. Quero que este esteja no carro. Então este seria apagar carro. Tudo bem, então. Outro passo importante ter meus botões é que eu não quero que eles sejam Bt e um botão. Um botão, dois botões. Três. Eu quero que eles tenham nomes sensatos que eu possa referi-los no tribunal atrás. Certo. Então, mas em um, eu vou renomear para Bt e esse é o meu prefixo para carro anúncio botão. Tudo bem. Editar carro vai ser BT e ele carro. Tudo bem. E então o final seria Bt end. Deleta o carro. Tudo bem, então eu posso ir em frente e criar eventos de ticks para eles de não se eu quiser. Então eu vou clicar duas vezes no carro adicionar e notar porque eu dei a ele um nome sensato. O truque é muito claro. Bt e no carro no placar. Clique direito para que eu possa simplesmente ir em frente e criar todos esses eventos grossos em conformidade. Então, basta voltar e clicar duas vezes em cada um até eu ter esses eventos rápidos. E é por isso que eu não gosto de fixar propriedades porque ao escrever código, não é útil, certo? Então eu tenho três eventos de clique de botão para três botões no meu formulário, então isso é apenas algumas coisas cosméticas. Vamos começar de novo e ver como isso se parece. Certo, então não, vemos que uma grade é um pouco menor. Temos os dados sendo exibidos na costa, mas depois à direita, vemos nossos botões. E enquanto eles são todos botões mortos porque eles têm eventos de cliques, mas os eventos de clique não estão fazendo nada ainda, então não, eu quero limpar um pouco da grade. Eu não quero a idéia e colunas de nome obesas, exibindo em letras comuns como essa. Então o que eu faria é dentro da minha função do Senhor da forma. Quando eu disse que a fonte de dados tão notado que um, a grade de dados está gerando as colunas relativas aos dados, ele está sendo alimentado. Então eu estou alimentando a lista de carros na lista, carros, cada objeto tem I.D. I.D. tem nome em alguma lista de registros de aluguel de carros. Certo? Que logo explicarão exatamente o que é isso. Bem, pelo menos mais tarde, veremos exatamente o que é isso. Então o que eu vou fazer para a minha grade de dados é que eu vou dizer ponto lista de veículos GV em então eu quero especificar que eu quero a primeira coluna, que eu sei que vai ser I d. Então eu posso ver colunas. E se você já trabalhou com árias ou coleção Então estamos trabalhando com o mínimo em que é um tipo de coleção. Se você alguma vez trabalhar com honoree, você sabe que os colchetes representam um você pode especificar exatamente qual subscript fora do ari você quer, certo? Então, se não o fez, tudo bem. Então deixe-me explicar. Então as colunas aqui, Este é um ótimo controle de visão. E depois digo que quero as colunas. E se são colunas, isso significa que é nossa coleção. Há mais de uma coluna que eu quero a primeira coluna, que eu sei como um programador vai ser I d. De qualquer forma, então eu posso dizer colchete zero, porque em computadores você começa a contar de zero não são um direito . Então o primeiro subscrita fora binário zero. Então o primeiro zero subscript em então eu quero a propriedade fora deste que é o texto do cabeçalho para ser igual ao texto. Eu estava em nossos bonés. Certo? Então eu estou vendo isso depois que eu colocar essas coisas carros em. Então eu entro e eu disse que a fonte de dados neste ponto todas as colunas teriam sido geradas. Estou dizendo que a primeira coluna que foi gerada eu quero que o texto do cabeçalho seja I d. E então eu quero a segunda coluna. O filho ia duplicar essa linha e o substrato de Jesus de 0 a 1 em diante. Quero que este seja o nome em maiúsculas. Tudo bem, então vamos ver. Segure isso. Então, se eu clicar em Iniciar, então eu vou ver que eu estou recebendo nome idee sobre eles desde Ian Kerr Inter Records. Mas pelo menos os cabeçalhos de coluna estão mudando de acordo, modo que é encorajador, pelo menos , Tudo bem, então a próxima coisa que eu quero fazer é eliminar o fato de que eu estou recebendo, mas que aparentemente aleatório carro Inter Coluna de registros. Mas antes de fazer isso, deixe-me explicar um pouco o que isso representa. Então eu abri meu modelo de dados, que é o arquivo E DMX, e eu estou vendo este BRD. Se olharmos nos tipos de tabela, fora do carro ou tipos de carros, vamos ver que temos o i. D. Temos o nome e, em seguida, abaixo temos esta propriedade de navegação chamada registros de aluguer de automóveis . Certo. Por isso, dá-me um bocadinho. E deixe-me levá-lo nesta jornada. Se você tem um sistema de aluguel em, então você tem um carro que é alugado várias vezes. Então isso significa que este carro está associado a vários registros, certo? Então, se eu quisesse saber quantas vezes eu acredito que nosso carro chamado Lada ou Honda, quantas vezes meu Honda foi alugado, então eu teria literalmente uma lista das vezes que este carro foi alugado, certo? Então é exatamente isso que esta propriedade de navegação representa. Diz que para qualquer carro que você vai olhar, eu posso mostrar a lista de todos os nossos registros que ele está associado porque eles estão relacionados. Tudo bem, então. Da mesma forma, o registro atual sabe o tipo exato de carro que foi alugado neste disco. Então este é todo o link Andi Andi em trabalho diferente, na verdade global. Está ajudando você a formar boas relações entre suas mesas e coroar em várias tabelas com muita facilidade, mas sem se meter muito em, sabe, complicar. Exactamente. Segure sua direita usada. Não, não preciso da referência do carro nos registros ainda. Então, de volta ao meu arquivo judicial, eu vou ajustar esta pedreira um pouco para selecionar exatamente o que eu quero. Então isso é fazer uma estrela seletiva. Fizemos uma estrela selecionada em nosso Arent nosso registro mais uma vez para ou caixa de combinação, onde eu disse que fazê-lo desta forma é apenas como dizer selecionar estrela. Neste caso, não queremos estrela. Literalmente só queremos o nome porque quando estamos fazendo assim. Estamos recebendo a coluna aleatória, aparentemente aleatória do carro e da Tyler Records, certo? Então eu vou voltar. Vou mostrar-lhe todo o fim de semana tratar alguém para comentar este juramento sobre ir ver que esta é a maneira que você faz Select star de tipos fora carros, certo? Só para que fique claro. Mas então eu vou reescrever esta pedreira, e eu fui explicar exatamente o que estamos fazendo. Então eu vou salvar nossos carros mais uma vez é igual a conexão com o banco de dados ponto a tabela que eu quero. Mas então eu não vou dizer isso para listar. Desta vez. Eu vou dizer isso. Selecione. Tudo bem, então. Quando eu fizer isso, vou ter que trabalhar um pouco fora. Vou chamar-lhe magia. Mas como eu disse, estou aqui para guiá-lo através, então eu quero selecionar apenas as duas colunas que eu quero. Tenho certeza que se você dio se você está acostumado a SQL do que você acha que eu preciso dizer, Oh, eu d Kameni. Bem, infelizmente não é tão simplesmente em c sharp, vamos ter que fazer o que chamamos de expressão lambda onde criamos no objeto. Certo. Então este é o Lambda. Então isso é certo. Não há mais nada para explicar. A única coisa que posso explicar aqui é que isso não precisa ser agudo. Isto pode ser um w. Isto pode ser uma palavra. Quero dizer, você pode usar qualquer expressão que você quiser, mas a fila ou qualquer expressão que você usar aqui vai representar cada objeto que está dentro da coleção. Certo? Então é assim que se inicia uma expressão de Londres. Você tem uma expressão. O que você quer usar? Uma letra ou palavra ou seja lá o que for, então o maior do que dizer ou eu só chamo de seta. Certo. Então você tem a expressão do que a seta em então Isso permite que você veja quais colunas você deseja da tabela. Por isso estou a dizer selecciona. Em seguida, inicializo a expressão de alumna em, em seguida, usando a expressão de madeira eu posso ver Qdocas. Eu d certo. Mas então eu não quero apenas uma idéia. Quero um novo objeto. Então o que eu quero ver é novo, então eu estou aberto. Eu abri minhas chaves em seguida, dentro fora disso eu vou especificar que eu quero em i d ser igual dot i d Então eu posso usar minha vírgula e dizer que eu quero um novo, hum uma nova propriedade chamada nome em Será que deve ter o valor Que esse nome. Tudo bem, Então, se você é usado para SQL e um Lessing, tudo bem, onde em SQL você teria dito algo como, Selecione isso e você dar-lhe um alias. Deveria ter selecionado uma coluna, Eu diria Select I d como outro nome e selecione o nome como outra coisa ou qualquer outra coisa. É assim que você faz um Lessing dentro fora do link, certo? Então, mais uma vez, deixe-me explicar o que estamos fazendo. Estamos dizendo que eu quero me conectar ao banco de dados, me dar a tabela em, então eu quero selecionar, e então nós fazemos expressão alarmada em. Então, após a expressão London, estamos selecionando um novo objeto. Então estamos literalmente construindo sobre o objeto na mosca. Este é apenas um novo objeto que estamos criando para o próprio propósito do que eu queria. Meu objeto é uma propriedade chamada I D, que vai obter o valor que está vindo do banco de dados com uma vírgula I D, outra propriedade chamada nome, e ele vai obter o valor vindo do banco de dados com o nome da palavra ligado. Mais uma vez, são pseudónimos, certo? Então eu poderia ter usado qualquer coisa aqui. Não tive que usar o nome da ideia de novo. Eu poderia ter usado o carro que eu tinha. Eu poderia ter usado o nome do carro. Isso realmente não importa. Então, cabe a mim saber o que estou dando nome a eles. Mais uma vez, são pseudônimos. Se você é usado para SQL em, em seguida, para tantas propriedades como eles estão voltando e eu quero e eu quero criar uma áreas eu poderia apenas ver vírgula em fazer o mesmo Alias é igual a lambda expressão ponto qualquer coluna que eu quero para Lambda Vera Irmão em. Então, depois de fazer tudo isso, notei que tudo aconteceu dentro das chaves. Então eu terminaria com um semi cólon, mas então eu provavelmente gostaria de fazer um para listar também, então eu gosto lista assim e confiar em mim, torna muito mais fácil apenas quando você dupla consulta. Apenas faça tudo, pelo menos depois. Se você está selecionando, esperando uma coleção fora resultados direito em, então algumas pessoas realmente trazer isso em várias linhas, então eles realmente faria algo como a pedreira aqui em. Então eles dizem que selecionar em outra linha e, em seguida, algo que até iria quebrar aquele treinador um pouco mais. Eu não vou fazer isso. Wonder Então é assim que você iria um barco construindo sobre sistemas Alias Sing. Então, esta situação será mais como Select on Então eu diria algo como i d como carro I d. nome vírgula como nome do carro de tipos fora carros. Tudo bem, então eu estou mostrando que o link é muito poderoso e ele cria alguma abstração maravilhosa do SQL típico, mantendo c acorde afiado. É preciso praticar. Não fica se acostumando. Então, se você tem o dedo do pé tipo de fazê-lo, ser capaz de ler os benefícios fora do que ele permite que você faça, certo? Então, se eu começar de novo, então olhamos para a ganância. Vemos que estamos voltando. Eu d Nós estamos voltando. Nome em. Nós só estamos chegando. Aqueles dois não estavam recebendo sobre a terceira coluna novamente, e isso é mais uma vez porque eu especifiquei o que eu queria selecionar. E mesmo que eu mudei os nomes, eu ainda disse uma ótima visão que as idéias I D devem ser o nome da coluna para o 1º 1 Eu nomeio o nome da coluna para o 2º 1 então eu vou apenas colocar o nosso ponto de interrupção. No ponto em que estamos colocando a fonte de dados eu quero fechar a janela e voucarregá-la novamente. No ponto em que estamos colocando a fonte de dados eu quero fechar a janela e vou Então eu vou olhar dentro da minha variável carros onde você vê que está voltando com cinco . E se você olhar para a lista de objetos, você está vendo a idéia do carro e o nome do carro. Então, criamos objetos personalizados nos quais queríamos criar uma lista, então essa lista de objetos personalizados está sendo usada como uma fonte de dados para ou grade em. Então definimos a coluna. Nomes em então ou grão é exibido, então eu estou removendo os pontos de quebra clicando. Continuem que é o que vem. Então, no próximo vídeo, vamos começar a olhar para como nós fio desses botões para adicionar ao banco de dados edição Ah, registro de carro na remoção ah registro de carro 27. Gerenciando mudanças de banco banco de dados: neste vídeo estará explorando fazer algumas mudanças, armazenar banco de dados e espero que fazer essas alterações no banco de dados reflitam em nosso diagrama e d m X. Então, na atividade de hoje, vamos adicionar mais alguns campos no estábulo do nosso veículo. Neste momento, só temos uma ideia, e temos um nome, então sabemos que eu d é uma chave primária nisso tudo. O incriminador é apenas manter o controle de todos os registros em “Não tem um nome “, mas na realidade para armazenar informações do veículo, precisamos de mais do que apenas um nome. Todas as coisas que provavelmente estariamos armazenando seria como o ano em que fazer o modelo . Então, isso realmente dividiria o nome em marca e modelo sendo a marca, então o modelo sendo, você sabe, o tipo de veículo fora dessa marca. Então, por exemplo, teria Honda Civic certo Honda sendo o Mick em cívico sendo o modelo. Talvez você tenha aliado aviário simplesmente é número, etc. Então talvez você tenha mais ou menos coisas que você gostaria de armazenar em seu banco de dados. Mas hoje estará modificando nosso banco de dados para acomodar esses campos adicionais. Então, indo para o nosso estúdio de gerenciamento SQL, eu só fui para o banco de dados, telefonou tabela apropriada lembrar e disse, Design em, então estamos aqui na vista de design onde eu posso adicionar ou remover colunas como eu ver ajuste. Então eu disse que eu vou estar adicionando alguns que eu fui ver Bem, eu não vou substituir nome por ano. O que eu vou fazer é substituir o ano certo nome pelo Mick agora que eu vou adicionar um modelo. E também vai ser Environ são 57% para copiar isso porque ele vai se repetir. Teremos o VIN. É o número de identificação do veículo. Essa é uma daquelas coisas do governo. Temos o número da placa, então o número da placa, que também é um gráfico de barras 57. Embora seja o número dele, não vamos fazer contas com isso no meu filme. Minha filosofia geral quando se trata do banco de dados em números seria que se eu não estiver fazendo matemática com ele, eu não preciso armazená-lo como um tipo de líder numérico direito sobre. Então isso realmente facilitaria se talvez eu começasse mexendo apenas números e então ele se torna alfanumérico. Depois de um tempo, então você já não teria um tipo de dados numérico em. Então o último seria o ano, que eu posso definir para ser. Eu só vou sentar que quero ser inteiro. Tudo bem. Então, de fato, você é porque você é 2020 ou 2018 etcetera. Isso seria um tipo de números divertidos. Vou usar esse para ser um inteiro. Então, depois de fazer esses ajustes no banco de dados e você sabe, para o Sul algo consistência. Enquanto eles não são grandes coisas, eu gosto de manter minhas eu gosto de manter minhasconvenções de nomenclatura tipo de consistência se eu estiver usando maiúsculas. Bonés divertidos se eu não estou usando caps e eu não estou usando caps, então apenas para normalizar tudo, eu só quero fazer tudo começar com uma letra maiúscula ligada. Então eu vou economizar. Então isso vai acionar uma atualização para a tabela. Então, no banco de dados, meu oito a tabela não tem novos campos. E se eu ir e selecionar o top 1000 então você vai ver tudo fora da rosa aparecendo com todos os veículos que tivemos para datar todos fora deles, aparecendo com o make o modelo e os campos adicionais que eu adicionei. Então aqui na marca que era o nome não é a marca, certo? Então, há alguns que talvez precisemos de algum refinamento porque não há nenhuma marca Bogey, realmente e verdadeiramente corpo é apenas algo que chamamos de Volkswagen Beetle aqui na Jamaica. Mas então, esses são os rapazes dele. Então não podemos ser isso mais tarde. Isso é parte fora da tarefa em questão, mas, em última análise, você vê que nossa estrutura de banco de dados foi atualizada com sucesso. Então, no entanto, quando eu voltar para o meu aplicativo, você vai notar que a tabela em si, mesmo se eu atualizar, Eu acho que há um re fresco aqui enquanto não há. Então, mesmo se eu fosse a atualização, isso não seria atualizado. Então eu realmente tenho que passar por algum processo para obter este modelo de dados atualizado. Então vamos começar clicando com o botão direito do mouse no espaço vazio que temos a mídia faz documentos ou diagrama abrir mais uma vez se eu clicar no espaço vazio e então eu vou dizer modelo de atualização do banco de dados. Quando eu clicar nisso, voltamos. Um dedo do menu semelhante teria ganho. Quando estamos criando os dados no, então eu posso ir para atualizar, clicar em tabelas e clicar em Concluir. Uma vez que eu fizer isso, então você verá algumas atualizações. Mas às vezes isso não funciona exatamente como imaginamos. Porque se você notar que manteve a idéia original e nome em assumiu os campos adicionais em. Então assumiu uma propriedade adicional, que não queremos necessariamente. Por isso, às vezes é mais fácil. Tendo atualizado o banco de dados para realmente apenas selecionar todas as tabelas são todas as entidades no modelo em removê-los lado destacou em I pressionar delete on. Então ele vai me perguntar, Você tem certeza que deseja apagar? Eu posso dizer sim, porque no final do dia, isso é muito pouco conseqüência que o próprio banco de dados fora do curso se eu construir direito, Não, eu vou obter alguns erros porque qualquer coisa que estava referenciando esses modelos não é Winchester no ar porque eles não existem mais. Tudo bem, então aqui eu fiz um projeto de lei que eu estou vendo um monte de erros porque eu estou fazendo aulas de referência dedos que não existe mais alguém para clicar com o botão direito novamente. Então eu posso ver o modelo de atualização do banco de dados mais uma vez. Desta vez, eu usaria o outro. Então, porque eu acabei de excluir todas as tabelas sabem que o motor está percebendo isso. OK, há tabelas no banco de dados que eu não faço no modelo, e isso seria minhas duas tabelas de qualquer maneira, então eu posso apenas clicar tabelas exatamente como o que você está fazendo A taxa de trabalho no diagrama Clique em terminar sobre ele importar as novas tabelas com suas novas colunas e lá que parece um pouco melhor. Então nós estamos voltando ou duas mesas, e nós estamos recebendo de volta tipos fora do carro com todos os sentimentos do assento original para em vez das modificações que nós encontramos. - Não. Tendo feito isso, nós realmente temos que voltar e refrator verão para o frio porque estaria fazendo referência as colunas que não existem. Então, se eu passar para o meu veículo gerenciar listagem que CS formulário no cara, olha, eu estou vendo que aqui quando fizemos a nossa seleção especial nós somos amigos em q dot idéia com um eu comum e nome bonito. Estes dois já não existem. Na verdade, não, nós estamos realmente selecionando que ponto i d com um I maiúsculo Então lá atrás, curador. Costumava capitalizar o caso. Esses assuntos, no entanto, você configurar uma coluna em SQL ou no próprio banco de dados, certo? Então lembre-se que quando estávamos projetando, eu fui e mudei o capital que eu tinha mudado o nome de quando eu mudei o nome da coluna para fazer. Então essas pequenas coisas importam. Então, porque eu escrevi para o tribunal, o comum que eu conheci, então, fascinou uma coluna chamada nome, tenho que voltar e fazer essas mudanças para que eu não queira o nome. Mas desta vez eu quero Mick certo nessa situação, entanto, há mais colunas que eu quero exibir porque este cabo estava preenchendo minha exibição de grade . Então eu não quero apenas ver que eu estava sendo de fato, eu realmente provavelmente não quero ver uma idéia alta. Então desta vez eu posso realmente modificar isso. Alguns só querem comentar Aveia. Este cabo existente em eu sou inverno reescrever alguém para salvar carros ire é igual ao meu objeto de banco pontos a TV que eu estou interessado em tipos off carros. E eles são apenas linha de freio aqui e ver ponto Select on. Então eu estou selecionando. Bem, eu preciso da minha expressão lambda primeiro. Estou usando Q novamente em seguida, minha seta em. Em seguida, as colunas que eu estou interessado neste momento são ponto bonito Faça vírgula dois pontos modelo. Bem, desculpe. Na verdade precisa dedo especificar o novo objeto do nosso, mas então eu comecei a ouvir nas colunas que estava ao redor. A culpa anterior que preciso dizer é que quero um novo objeto aberto brisa encaracolada. Então eu começo a listar cada um com seus nomes. Eu diria que Mick é igual a no dia em que eu sei que pontos, Mick. Modelo de vírgula é igual ao modelo de pontos Q. A Viena é igual. Mastiga esse Vin. Certo? Lembra-te que quando estivermos a fazer o nosso novo modelo, posso determinar o que quero ser o nome fora da propriedade. Mas então eu estou mapeando. Este é o meu nome que eu estou dando. Estou apenas fazendo com que seja igual toe estão mapeando seu valor do dedo vindo do que está sendo selecionado da nossa mesa. Certo? Então eu estou sentindo todo esse modelo. Então, mais uma vez, faça o modelo Vin coma. O que faz? Nós temos? Nós temos o ano é igual dedo do pé mastigar duto. Esse seria o ano de Judah. A Andi. Finalmente, temos as alegações da licença. O número é igual ao número da placa de licença de ponto enorme. Tudo bem, então eu estava indo para quebrar a linha do número da placa porque está indo para fora da tela. É a única razão pela qual estou fazendo isso. Então, se você não quer fazer isso, tudo bem, então eu vou terminar o dedo do pé com o meu semi-cólon. Então eles recebem. Nosso estúdio formatou para você? Porque eles são aliados que tudo bem, você está saindo da tela, você tem muitas coisas, colocando de volta do jeito que o estúdio visual quer. Em seguida, no final dessa seleção, eu vou ver que para listar porque eu gosto de trabalhar com o tipo de dados lista difícil. Então vamos rever isso mais uma vez. Estamos selecionando a partir de nossos tipos de mesa fora carros em. Eu estou selecionando um novo objeto para sempre expressão lambda em. Eu estou selecionando em um novo objeto que tem sente fazer modelo Vin ano em menos simplesmente número em para cada fora desses campos. Só estou me certificando de que estou de volta o valor apropriado vindo do nosso banco de dados, certo? E depois de selecionar todos eles, estou convertendo isso em uma lista. Então, quando eu realmente executar isso e eu vou apenas comentar sobre essas duas linhas, lembre-se que nós fizemos essas duas linhas porque você queria que os nomes das colunas como um tipo de legível humano. Mas veja o que vai acontecer. Então eu vou entrar nesses dois para fora, tudo bem, então eu não estou renomeando nenhuma coluna. Então, depois de selecionar carros nesta variável, eu estou sentando essa variável como a fonte de detalhes na minha visualização de grade. E então eu clico em Iniciar, vou para minha lista de veículos gerenciados, e então você vai notar que o Grande está realmente gerando com todas as colunas vindas do meu modelo. Então Make tem sua própria coluna. Modelo tem sua própria coluna. O Vin tem a sua própria coluna fora do curso. Eles estavam todos vazios no banco de dados de lá estão vazios na visualização de grade, mas o ponto é, Eu usei um costume. modelo dois gera as colunas para a exibição de grade. Então, neste ponto, podemos realmente voltar e aumentar ou projetar fora ou listagem de veículos. Saiba que vemos que temos uma ótima vista que provavelmente precisa de um pouco mais de espaço. Você provavelmente não quer que seus usuários estejam rolando da esquerda diretamente para ver todos os detalhes sobre o carro para que possamos reorganizar o design para que a visualização em grade tenha um pouco mais espaço. Então deixe-me sair daqui. Volte para trás com nossa visão de design. Então o que eu vou fazer é expandir esta tabela vai expandir esta janela um pouco mais, mover os botões para baixo da visualização em grade, então eu vou expandir a visualização em grade e torná-la um pouco mais larga. Certo? Então, não, que é mais amplo Vamos ver como isso parece. Certo, então é assim que o meu se parece. Não se sente tudo o que inter grid em fora do curso, quanto mais regras que aparecem mais carros que você tem é o mais que isso vai expandir horizontalmente bem verticalmente. Desculpe. Agora, em apenas para revisitar ou adicionar toda a janela de registro dela, outra modificação que você pode querer fazer é a lista suspensa para o tipo fora do carro para que você possa ver que ele não tem revertido para isso. Hum, bem, olhar estranho Siri está fora de itens que vimos quando estamos apenas tentando preenchê-lo para que possamos apenas voltar e revisitar o tribunal onde estávamos realmente vinculando. Então eu só quero adicionar um aluguel um filme de gravação corretamente pode ir para ver o tribunal em. Então eu encontro uma função de senhor da forma onde estávamos povoando. Então nós estávamos realmente preenchendo todos os tipos de carros eram vinculativos. O membro de exibição, para ser nome na vinculação do membro de valor a ser idee. Então um que eu quero mudar este o capital que eu d em. Em seguida, o membro do valor pode ser nome. Mas então o que eu vou fazer é modificar a pedreira que estava sendo usada para encher a caixa de combinação inicialmente. Então o que eu vou fazer é comentar tudo para esta praça que está sendo usado outro tipo de rua . É que continuo a elogiá-los a todos porque quero que vejamos de onde viemos e para onde vamos. Tudo bem. Alguém para salvar carros ire é igual a no meu objeto entidade dentro fora fora total cartão inteiro que é formalmente forma um é entidades atuais. Então essa é outra razão que eu disse anteriormente Mantenha-o consistente porque você não quer depois adivinhar qual nome usado em que forma Se você usar um nome em todos os formulários e você apenas sabe que este é o nome do objeto que você está usando, certo? Então, neste, usamos carro em entidades como nosso nome de objeto. Então o nosso objeto que vezes fora carros em, então eu vou fazer uma coisa semelhante onde eu vou dizer que Select on. Então eu vou fazer o meu cordeiro, a expressão em. Então eu vou criar um novo objeto e você abstrato objeto neste novo objeto eu realmente preciso que eu d para ser igual a Q pontos, I d. preciso que eu d para ser igual a Q pontos, I d. Então eu preciso que eu d ainda para o meu membro valor em. Eu preciso nomear alguém para criar um campo mãe chamado nome que vai mudar de volta para o nome, o que eu já estou esperando. Mas, em seguida, para o nome, eu vou expandir sua orbital com apenas um ponto bonito pode. E então eu vou concatenação uma corda vazia em Teoh para fora bonito fazer e, em seguida , adicionar em fila modelo. Então, em outras palavras, quando recuperamos os registros do banco de dados depois que esta pedreira estava voltando, o i d. E eles estavam recebendo de volta algum nome de chamada de campo que vai toe ter um valor fora do Mick no Corda Indy no modelo. Então, se é um Honda Civic, então esperamos ver Honda Civic aparecer em nossa lista suspensa. Certo? Então, depois de fazer isso no cara executar em, então eu carrego o anúncio toda a sua janela de registro. Então eu fui para obter um erro em fazer esta seta. Eu vou mostrar os detalhes da era, e eu só vou deixar você saber que é porque nós perdemos o pensamento completo. Então eu sempre digo que eu gosto de trabalhar com listas esta estrela muito flexível no dia, realmente causar problemas. Eu marchei vai apenas colocar no ponto policial que eu perdi mais cedo, e então eu fui para começar de novo e então você vai ver que ele funciona desta vez e lá vamos nós. Por isso é bom desta vez e vocês podem ver em nossa lista que temos o que tínhamos como nome está mostrando novamente, mas não temos nada como modelo em nosso banco de dados. Então, só para provar que vai mostrar a Honda Space, seja lá o que for , aeroporto como modelo, eu vou voltar atrás. Eu fui dedo do pé. Modifique os registros, entendeu? Para ir para a nossa mesa. Clique com o botão direito Diga qualquer top 200 apenas vai fazê-lo rápido e sujo para ninguém dizer. Honda Civic. Então temos um Honda Civic para pais. Tudo bem em. Eu só vou me certificar que ele é comprometido. Então eu vou executar novamente para ver o que acontece. Tudo bem? Então saber são largados sobre isso. Vemos o nome aparecendo, mas é realmente o espaço da marca. O modelo. Então os outros em cima da alma moderna que você está vendo é o Mick. Tudo bem, então é isso que você pode fazer sobre personalizar a experiência do usuário. Porque se eu usar o olhar para isso, eles realmente não sabem o que aconteceu em fazer Honda e Civic aparecerem em uma terra que eles estão vendo no Civic. No que diz respeito a eles. Direita em. Então, na nossa lista de veículos, quando eu revisitar essa página, eu estou vendo que nós temos Honda Civic fora em branco, em branco em branco, porque nós não colocamos em nenhum dado para o resto fora deles, tudo bem, Então, em nosso próximo vídeo, vamos olhar para implementar alguma adição em qualquer coisa ou adicionar e editar funcionalidade para nossos registros em nosso carro no reboque. Regista o recurso de listagem de 28. Crie e edita de veículos: neste vídeo, vamos começar a construir alguns funcionais para atrás de nossos botões dedo adicionar, editar em excluir ou carros de ou banco de dados antes de eu continuar, embora eu queira mostrar alguma mudança que eu fiz aqui para a visualização de grade onde estávamos preenchendo vista ordenada com o modelo personalizado ou uma coleção ou uma lista fora do modelo personalizado vindo do nosso banco de dados para o make modelo Vin ano e menos simplesmente número na coluna para um número de placa de licença teria exibido isso no caso Camel, que você sabe que é indesejável para mim em termos de apresentação. Então o que eu fiz foi ir abaixo na verdade definir um tix de cabeçalho personalizado para a quarta ou a quinta coluna que teria bean em nossas exibições de grade. Lembre-se que este seria 01234 para que o 4º 1 teria ganho a arte de texto de cabeçalho personalizado. Então, para colocar algumas funcionalidades em primeiro lugar, precisamos entender o comportamento que estamos buscando para o início precoce que estou buscando. O comportamento que estou esperando é que um usuário selecione uma coluna e clique em um carro ou simplesmente clique. Adicionar carro novo em nosso você sabe, uma nova janela aparece, permitindo-lhes preencher o formulário clique. Submeter em. Nós vamos fazer pelo menos a carne no modelo, vamos ver o número da placa obrigatória, então você sabe que você pode personalizar suas próprias validações. Mas eu vou colocar em alguma quantidade de validação nesse formulário se eles selecionar seta e em seguida, clique em editar do que a expectativa é que uma janela semelhante à janela adicionar novo carro irá aparecer, permitindo-lhes modificar os detalhes fora qualquer que seja gravar o selecionado em, em seguida, quando eles clicarem, envie o nosso para ver se alterações. Ele irá atualizar que no banco de dados de forma semelhante, quando o selecionar um papel e, em seguida, clique em excluir, queremos toe um perguntou um Mardi certeza o que eles querem excluir, e se eles continuar a clicar em sim, em seguida, prosseguimos para Apague o carro. Então neste vídeo nós vamos estar olhando para algumas coisas onde nós vamos estar criando um novo formulário, e então nós vamos estar olhando para um novo formulário, a sobrecarga do construtor como todo o fim de semana passado valores em nossos formulários que este formulário vai carregar com um conjunto de valores. Então, nesta situação, nós vamos realmente usar o mesmo formulário para adicionar novo carro na edição. Porque são os mesmos anos em que estamos construindo um formulário. Em seguida, olhamos para a passagem de valores em, como no momento de carregamento para que tenhamos diferentes. Oh, vem da mesma forma em diferentes funcionalidades. Quero fazer algumas modificações na minha visão gananciosa. A primeira coisa que vou fazer é incluir o I.D. I.D. então construímos o modelo personalizado. Nós dissemos fazer modelo. Todas as coisas que queremos exibir para o usuário estão aqui, e você percebe que eles são meio ganância. Então, se você passar o mouse sobre ele, a terra que a lâmpada está realmente dizendo que, já que o nome personalizado que estamos dando é o mesmo que o nome real da coluna que realmente não precisamos, mesmo E é igual ao mesmo nome da coluna. Então, se você deixar o barco forro e usar sua sugestão o novo C que ele apenas substitui , então veja que você poderia apenas referi-lo como eu. Tudo bem, então você pode ir até lá e limpá-lo se quiser, mas eu vou deixar como está. - Não. Para que fique claro o que exatamente está acontecendo. A modificação que eu quero fazer, entanto, está no I d. Porque quando eu selecionar nossa função em, então eu quero clicar em editar. Preciso saber o que Ron está selecionando e a melhor maneira de saber qual sala ou qual carro estou selecionando é saber o que eu d fora do veículo. Certo? Então, da mesma maneira que precisávamos i d quando estávamos salvando em um relatório atual, lembre-se que foram para vincular o membro valor off i d. Eu preciso de uma maneira de encontrar esse membro valor no meu longe da minha grade para que quando eu clicar nele, eu possa fazer um procurar esse carro em particular com base em seu identificador único, que é eu d on. Em seguida, retorne esses dados ao formulário para que possam ser editados. Então o que eu vou fazer é apenas continuar sob o número da placa de licença em, então eu vou apenas dizer bonito que eu d. Então eu poderia dizer que eu D é igual a bonito i d. Mas então a bola relâmpago mais uma vez aparece me dizendo que isso é redundante. Então eu não preciso dizer que a idéia é igual ao mesmo nome de coluna. Então só dirigindo meu ponto para casa ou para apaziguar o estúdio visual? Eu só vou ver uma fofa que eu vi. Só para mostrar que eu não tinha que especificar um nome de coluna o tempo todo, certo? Então eu estou incluindo i d bonito no conjunto de dados que está sendo retornado, que significa que minha grade de dados vai definitivamente gerar uma coluna para o I D, que eu não necessariamente quero porque eu não preciso ver a coluna I D. Então o que eu vou fazer é embaixo de onde eu disse o texto do cabeçalho para o número da placa . Eu fui para dizer colunas de ponto da lista de veículos GV em então eu posso especificar que eu quero a Quinta Coluna Cardwell A sexta coluna ou coluna com os cinco subscritos, que representaria o meu I d. Eu quero que ele. Quero que sua visibilidade seja amiga Toe Falls. Então, mesmo estando lá , não vai aparecer. Mas eu sei que está lá. Eu estou sentado lá porque eu sei que quando eu preciso do valor dele, eu posso obter esse valor. Então eu estou colocando lá, mas eu estou escondendo. Tudo bem, então vamos em frente e preparar sobre adicionar formulários de edição. Então eu vou gravar meu projeto em um novo formulário. Eu vou chamar este anúncio que ele veículos ou veículo adicionado, e então esse é o meu novo formulário. Então eu vou explorar algumas novas técnicas de edição, hum, neste. Então a primeira coisa que eu quero fazer é mudar o título, então eu quero Bem, eu realmente vou colocar o título na mosca. Então eu vou mostrar a vocês que muitas dessas coisas podem ser controladas pelo tribunal atrás, hum, no momento, como no tempo de execução, certo. Então eu estou usando para dois fins adicionar e editar. Mas quando vai ser hora de adicionar algo, eu queria dizer um veículo, mas eu quero lê-lo. Eu queria dizer que é veículo. O que? Não quero que diga “editar veículo”, certo? Então eu vou mostrar a vocês como você pode sentar isso durante um tempo de corrida. Outra coisa que queremos ver é a energia do Leo. Então, se eu for para a minha caixa de ferramentas, eu vou para a seção de contêineres e vejo que eu tenho algumas camadas. Você tem o painel de chão, que pode Ele leva coisas e armazena-los lado a lado automaticamente da caixa de grupo, que geralmente é usado como quando você tem botões de opção e caixas de seleção que você deseja associar uns com os outros. Você tem um painel. Eu tenho um contêiner dividido. Você tem controles superiores e você tem mesa Leo alguém para emprestar a mesa, uma votação aqui, arrastá-la sobre, você sabe, secar sobre a seção que eu queria e você percebe que é apenas uma grande caixa, Certo? Uma grande caixa de grelha. Então o que eu pretendo fazer aqui é colocar os rótulos à esquerda nos Contras para a direita, que eu possa realmente redimensionar isso. E você notou que a grade que as células realmente redimensionam de acordo. Eu tenho um barco que Meachum um banco de dados tem 12345 sente que precisa ser preenchido então eu preciso de pelo menos cinco rolos. Então, usando a corrente preta nos direitos superiores na esquina, Posso adicionar surgiu. Eu posso adicionar colunas como eu preciso ir em frente. Também posso editar as linhas e colunas. Eu quero adicionar algumas regras sobre. Como eu disse, preciso de fogo. Então isso é 12345 Então eu tenho um extra. Posso remover o último para o lado. Essa era a coluna. Deixe-me desfazer isso rápido. Certo, alguém tire o último rolo, na verdade. E então você percebe que, você sabe, tamanho não é tão afiado. Então você sempre pode apenas drogar em redimensionar como você achar melhor. E isso ainda pode não funcionar ou ser o melhor, então você pode realmente ir para editar linhas e colunas. Em seguida, você pode ver o tipo fora de dimensionamento para suas colunas em. Você pode usar o menu suspenso na parte superior e ver Rose, e você pode escolher o tamanho que deseja para suas regras para que você possa ver que eles têm porcentagem e você tem alguém absoluto para selecionar tudo. E então eu vou dizer que eu quero que todos eles sejam 50% disso e eu clique. Ok, você vê isso? Tudo meio que normaliza. E se eu expandir, eles estão todos tipo fora expandir com isso. Certo? Então essa é a minha mesa e haute. Então eu vou cair no botão adicionar, então eu apenas crescendo sobre o meu botão clique. OK, em, então eu quero que meu botão veja salvar as alterações, certo? Então eu tenho um botão que é salvar as alterações. Andi, eu vou colocar aquele para a esquerda e então eu vou ter outro botão que vai ver Chanceler, aquele que eu estou colocando para a direita. Então, você sabe, estamos apenas construindo isso para que você possa ter idéias de design diferentes de mim, e tudo bem. Isso é realmente excelente se você está pensando diferente de mim. Mas se não estiver, tudo bem também. Estamos nisto juntos, por isso estou a desmoronar um pouco. Então eu vou colocar mais ou rótulo para que saibamos que cada formulário que tentamos colocar um rótulo no topo. Então eu vou para mim esta etiqueta ver anúncio ou editar carro novo tão estranho você carro direito para realmente eu vou deixar esta etiqueta em branco sobre. Melhor ainda, vou conseguir. Veja, o que eu queria ver é mais, então eu vou apenas mudar seu nome para que eu saiba o controle da Corbyn em algum lugar para chamar seu título IBL. Tudo bem, então até seus rótulos, sim. Nós não estávamos realmente nomeando rótulos porque nós não necessariamente precisávamos chamá-los do tribunal atrás. Mas eu quero chamar este, e eu quero sentir o conteúdo relativo ao humor que esta forma está na frente. Então, mais uma vez, estou criando um formulário que estou chamando em editar veículo. Este formulário vai ter o duplo propósito de fornecer campos para Adina carro versus editar um carro. Direto na adição e edição são praticamente as mesmas operações. Bem, pelo menos os mesmos campos estão envolvidos em ambas as operações, então, na caixa de ferramentas, eu vou pegar alguns rótulos, drogá-los, deixá-los dentro dessas regras. Então você pode ter Você pode ficar irritante tentando colocá-los, então eu estou apenas colando para que todos eles vão para o lado esquerdo e então eu apenas apago os extras da resposta certa porque eu realmente não quero eles lá. Então eu vou drogar sobre as caixas de texto. Então tudo aqui é realmente uma caixa de texto. Tudo bem, então caixa de texto dentro dessa. E eu só estou colando, então eu estou preenchendo tudo isso com caixas de texto. Então eu modifico minhas etiquetas para que a primeira etiqueta seria para o eu fora do carro. O segundo nível seria para as maiores propriedades de clique direito e as propriedades europeias . Posso me mover um pouco mais rápido, então o outro seria para o modelo. E então eu quero dizer, em uma situação do mundo real, você provavelmente quer dar-lhes listas suspensas para mim pode modelar, porque sobre eles para estar digitando em Honda sem em cada são Toyota e soletrar com uma coisa extra e assim. Então você provavelmente quer dar-lhes “drop downs”. Mas pela simplicidade desses exemplos e lições, eu não vou entrar em tudo isso. Só quero que tenhamos alguns conceitos-chave sob nosso alcance. Então o próximo seria o Vin. A próxima naval estaria acabada. Nice é ou são irmão ano em. Então o último seria o número da placa. Tudo bem, modo que foi rápido Cada rótulo mudar a propriedade para o texto. Se você quiser, você pode encontrá-los maiores e mais pronunciar. Isso é bom. Eu só vou deixar aqueles que nós não. Tudo bem, então. Temos as respectivas caixas de texto para obter os valores para cada um. Agora vamos para o arquivo do tribunal e começar a adicionar algum legal que vai fazer sobre ou formar um pouco mais dinâmico. Então, como é típico, temos nossa classe. Temos o nome fora do formulário que herda de um formulário de última chamada. E então temos nosso construtor base que está inicializando os componentes, certo? Não, neste construtor de base, posso começar a definir outras coisas. Então eu quero talvez definir o título. Então, se este construtor ou o formulário é carregado usando este construtor, então eu quero um texto título para ver adicionar novo veículo. Tudo bem, então talvez eu queira o poço. Eu poderia mudar o texto do botão também assim, como eu disse antes. Queremos ter certeza de que colocamos controles de loja de nomes, então eu realmente pulei essa etapa. Então vamos voltar e colocar nomes para nossos controles corretamente para que não tenhamos quaisquer problemas em avançar ou caixa de texto um é realmente TB. Mick, certo? Então é um fixo. Caminhadas para o MEK. Fora do veículo. Temos o 2º 1 sendo modelo de TV. Temos o terceiro 1 sendo T B V i n Stevin. Temos o 4º 1 ano de tuberculose e depois este é o número da placa da TV. Então licença de TV e outros certamente licença sensível e nenhum direito. E, em seguida, para os nossos botões em foi dedo do pé tem Bt e salvar direito em. Então para cancelar, eu fui de Bt e cancelar. E enquanto estou aqui, vou preparar esses eventos rápidos. Então bgn salvar evento rápido e Bt e cancelar clique evento mais uma vez para criar aqueles, você apenas clique duas vezes ou controle e ele irá gerar o evento clique. Agora, de volta ao nosso processo judicial, vou criar um segundo controlador. Então isso é o que chamamos de sobreposição direita ou sobrecarga. Então temos esse conceito no programa chamado sobrecarga de função e em Opal ou pecã , na verdade, Construtores Overlord, Certo? Então sempre construtor, que está levando zero perímetros em foi sobrecarga do dedo do pé. Este construtor em que eu vou querer tirar um Parmenter fora do tipo de carro, e então eu vou chamá-lo de um carro. Certo? Você sabe o quê? Vou ser muito específico. E eu diria apenas edição de reboque de carro para que saibamos exatamente o propósito desta propriedade, certo, então edição de carrinho. Tudo bem, então quando nós carregamos o formulário com esta construção são esperados para passar em objetos fora tipos fora do carro em, em seguida, vamos usá-lo para preencher os pontos de dados nas caixas de texto como eles são. Eles já estão certos. Então, claro, se estou carregando o formulário, então eu preciso inicializar componentes. Então isso tem que estar lá. Eu também vou pegar a parte onde eu estou definindo o título. Então, se ele está carregado com este, que é para o modo de edição, então eu vou dizer editar veículo, certo? Então, se mandarmos a fazenda usando este construtor, é o outro veículo novo. Se eu carregar o formulário usando o segundo construtor, que é overlord do que é. A edição disse veículo ainda mais para definir o título para a edição. O que eu vou fazer é criar uma função chamada Preencher Campos. Tudo bem, então a coisa legal sobre vistos estudantes que eu possa escrever uma função chamada “Não Tenho uma Função “chamada “Popular “parece que acabei de escrever. E em vez disso, alinhar Bull está chegando com um X vermelho e ele está me perguntando, você quer gerar o método para isso? Então, se eu clicar nisso, então o alergista automático gera o meu pensamento para mim, certo? Então faz de acordo muito mais eficiente do que poderia ser de outra forma, certo? Então, dentro de campos preenchidos, eu vou estar definindo os valores de campo para o pé. Quaisquer que sejam os valores de campo correspondentes provenientes desses objetos. Na verdade, vou passar este objeto em campos povoados por reboque, então estou passando tipos de tipos fora do carro para que no dia, eu vou ter certeza que essa função também vai acabar com a batida de entrada. Tudo bem, então eu poderia apenas ligar para este carro só para mostrar que mais uma vez, eu estou recebendo um braço de propriedade entrando em objetos fora do tipo do carro. Certo. Então isso representa os dados do banco de dados sobre este é os objetos que tem os dados que vamos estar editando no primeiro ele em. Então eu estou pegando neste construtor. Inicializando meus componentes. Estou definindo o título de todo o formulário para ser o veículo de edição. E então eu estou vendo que eu quero começar a preencher os campos no formulário. Aqui estão os dados. Então, dentro da função real, popularmente, sinto que estou recebendo esse objeto. Então eu estou apenas chamando de cartão ou socialmente, que ele não necessariamente tem que ver ter o mesmo nome. A maioria, no entanto, tem o mesmo tipo de dados. Porque se eu disse interior, então isso causaria uma seta na chamada de função causar qualquer visão? Bem, Bem, passando alguns tipos de dados inválidos. Então, o tipo de dados tem muito. O nome não necessariamente tem muito. Então o que eu vou estar fazendo dentro de preencher sente é chamar cada caixa de texto. Então, se eu disser tuberculose, vamos começar do início, não fazer texto. Tudo bem? Vai ser igual objeto dedo do pé vindo em ponto em, em seguida, os dados correspondentes que essa caixa de texto deve ter, então eu posso fazer isso para todos fora deles. O texto do ponto do modelo de TV é igual a um modelo de ponto de carro. Tudo bem, então eu vou até você pode fazer uma pausa aqui e tentar fazer tudo sozinho. Eu só vou acabar com eles. Tudo bem, então se você parar e tentar por conta própria, então você teria algo parecido com isso. Se você tem um ar Otranto colocar o ano na caixa de texto, então lembre-se que você precisa torná-lo uma string para que ele entre no texto fora da caixa de texto. Certo? Então, mais uma vez, estamos vendo que podemos carregar este formulário normalmente, certo? Ou podemos decidir chamar o construtor com alguns dados. Empurre alguns dados para isso. Construir uma versão fora do formulário em. Em seguida, essa construção prosseguirá para preencher os campos com alguns dados. Eu também vou apresentar ah, propriedade privada, e eu vou chamar este aqui. Ele é mais Edyta, então eu só estou usando essa flauta, que é um booleano é, e ele ancorou tudo bem. E eu nem estou indo para o inicializado ainda. Só estou declarando. Então, se é o construtor sem dados iniciais, então eu sei que eu não estou em edição. Mais alguém a dizer é que em seu ancorado é igual dedo cai, certo? Então ele é inicializado ali mesmo se é o construtor com dados do que eu sei é que ele está ancorado é igual a true. Então, por muito, eu vou estar usando esta bandeira dentro do meu Bt e ver para que eu possa determinar o comportamento porque é um tipo diferente de pedreira. Se estou inserindo o ITER versus se estou atualizando dados, então eu vou apenas rastrear o valor off é editar mais. No momento em que o botão salvar é clicado, eu saberia se é mais ou não. Se é mais do que eu faço uma pedreira de edição, se não é mais do que ninguém, adequadamente, isso é praticamente tudo o que eu preciso fazer agora no meu BT e salvar botão clique evento. O que vamos fazer é fazer como um rápido se declarações sob ver se é editar mais do que lembrar que quando nós em C afiado, podemos escrever isso em encurtar sobre esta tradução realmente se é editar mais é equivalente a verdadeiro. Isso é realmente o que está pedindo, certo? Então, se é mais do que queremos fazer outra coisa, queremos fazer outra coisa. Então, se é mais do que queremos escrevê-lo frio aqui se não é mais do que nós estávamos em adicionar acorde aqui, tudo bem, então eu vou apenas deixar aqueles comentados para não on. Então o clique da capela-mor é muito pior do que fechar a janela. Então, se eu clicar em cancelar, a expectativa é que esta janela vai fechar para que eu possa realmente apenas dizer no Bt e cancelar clique. Consigo ver este ponto de perto. Tudo bem, então lembre-se que esta palavra-chave é especial e específica para a classe real. É apenas um objeto fora da classe em que ele está sendo usado, então isso representa a janela add edit vehicle on. Então as roupas escuras são o oposto dos shows de pontos. Eu não tenho certeza mostra a janela que fecha fecha a janela, então se eu chutar, clicar, cancelar, em seguida, basta fechar a janela, isso é praticamente o nosso ditado sobre. Então você percebe que o estúdio visual é realmente verde. Tudo isso Então não é toda vez que você realmente precisa usar a palavra isso para que você possa realmente apenas ver de perto e ele vai saber que ele tão perto si mesmo. Agora estamos fazendo um bom progresso. Não estou pronto. Muito não muito pronto dedo chamado a edição e adicionar funcionalidade. No entanto, em vez disso, vou voltar para a minha janela de listagem de veículos de gestão Onda. Podemos apenas dar uma olhada rápida nesse design mais uma vez e temos o novo carbono adicionado. E nós temos qualquer expectativa de carbono de que quando eles clicarem no carro novo, vamos mostrar uma nova forma. Então eu vou fazer isso. Então, quando eles clicarem nisso, eu vou ver isso. Desculpe, vou ver o veículo de edição de anúncios no dia. Eu só vou ligar se eu quiser ou eu posso usar a sugestão do Visual Studio. Desculpe. E então amplo interesse é igual a uma nova instância fora de um veículo. Mais uma vez, podemos sempre simplificar isso dizendo vier, se alguma coisa em, então eu só vou dizer adicioná-lo, ele veículo ponto curto. Então só vou mostrar aquela nova janela e fora do curso você quer a aparência do MD I porque eles não querem apenas mostrar isso. Lembre-se que quando mostramos a janela, é uma janela livre para fazer qualquer coisa. Então eu queria saber que é peer int é a janela média. Então eu fui atrás neste trimestre um pouco diferente onde eu vou ver que o anúncio é objeto que M D. I. Ah, pai é igual no dedo do pé. Então eu vou ter que ver este ponto MD I aparência. Então deixe-me explicar exatamente o que está acontecendo aqui. Lembre-se que estamos lançando uma lista de veículos de dentro fora do exército e da janela. Janelas médias são aparência MD. Então, quando a janela de listagem de veículos gerenciar teria sido lançada, ele teria sido lançado dentro de mim e janela. Você saberia que essa janela malvada é aparência de MD, certo? Não, eu quero lançar outra janela no comando fora da lista de veículos gerenciadores, que é uma criança fora de mim e da janela. Então eu precisava saber que também é uma criança fora de mim e janela nos anteriores. Nós teríamos dito que quando você lançar e deixe-me apenas voltar para o meu eu e janela tribunais A pode, você sabe, ser re familiarizado com ele. Quando estávamos lançando lista de veículos de dinheiro, dissemos que este é o M a aparência. Sendo eu e janela nesta situação significa janela não é o único que está fazendo o lançamento. Então eu posso ver que esta é a janela principal porque, em seguida, isso faria gerenciar o veículo listando o pai para o meu adicionou, hum janela, o que seria errado. Então, em vez disso, eu estou vendo isso, que representa a lista de veículos gerenciar que MD I aparência, que me representa na janela. Estou vendo que qualquer que seja a aparência MD está fora deste formulário que é o pai para o veículo add edit. Tudo bem, então é só isso que estou fazendo nessa fila. Então, você sabe, situacional você logo após nenhum hotel Manu cair direito em algumas situações. É isso porque as aparições do MD fazem sob chamada. Às vezes, uma criança fora do MD I aparece fazendo essa ligação direta. Então você só precisa ver quem quer que eu apareça. Essa também é a sua aparência. Então é tudo o que estamos a fazer nesta linha. Estou a dizer que a minha aparência é a dos teus pais. Então vamos garantir essa janela. Tudo bem, então isso está carregando nosso veículo add edit usando o construtor normal em outros eventos de clique botton . Especialmente como na edição. Não, vamos precisar de um dedo do pé. Recupere os dados do carro a serem editados. Onda então passou os dados para o formulário, certo? Então, mais uma vez, o comportamento esperado é que a pessoa vai clicar na grade, clicar na arruinar a grade e, em seguida, clicar em editar. Certo? Então, em primeiro lugar, precisamos saber qual papel foi clicado ou pelo menos o valor ou o valor I d. Valor fora do bruto que é clicado em selecionado. Então aqui eu apenas delineei alguns dos passos que precisamos tomar quando clicamos no botão de edição . Então precisamos tirar o i d do rolo selecionado. Certo? Então, quando a pessoa clica na regra e depois clica em editar, precisamos saber o que é o eu d fora dessa função, logo após tirar a idéia da estrada, então precisamos Corey nosso banco de dados, que significa que precisamos Iniciar. Ok, nós já temos db. Por isso, temos uma ligação com o debate. A. B já está ativo porque, bem, isso é o que sentimos. A grade. Então eu já tenho esse objeto. Então precisamos consultar o banco de dados para o registro associado com que eu d em. Então precisamos lançar nossa janela semelhante ao que fizemos aqui. Exceto que vamos lançá-lo com os dados. Então lembre-se mais uma vez que temos dois construtores. Temos um construtor normal que não espera muito. Você só precisa saber. É suposto acrescentar que temos um que espera que alguns dados sejam transmitidos. Esse é o que vamos usar quando vamos ser lançando para fins de edição são. Então vamos começar por tirar a idéia da regra selecionada alguém para salvar nosso i d beijos mais baixos igual dedo no pé. Então eu vou ligar para a minha nota, que eu chamo de lista de veículos, então. Eu tenho uma propriedade que diz papéis selecionados, mas eles percebem que selecionou regras porque isso é na verdade um cedro de coleção. É uma coleção de linhas selecionada porque talvez a pessoa possa selecionar mais de uma regra, certo? Mas esperamos que seja apenas uma estrada que eles escolherão. E é o mesmo. Se eu selecionar mais de um, só queremos o 1º direito? Então esta é uma suposição selvagem que podemos chamar defensivamente no futuro. Mas neste momento estou a manter as coisas simples. Então, da Rose selecionada, eu quero o 1º 1 Então é uma coleção que eu posso usar. Meus colchetes especificaram que eu quero o primeiro 1 Então eu digo ponto Então eu quero fora dessa regra . Temos células. As células representam as colunas, certo? Então eu quero as células, mas depois fora as células, que também é uma coleção que eu realmente só estou interessado na chamada I d Deixe-me ter a propriedade Então nós temos mais espaço para escrever 1/4 para que eu possa usar índice sem nome. Então, em algumas situações, você quer o número algumas situações. Você só quer especificar o nome fora da coluna porque se eu adicionar mais colunas aqui, eu não posso ir por números, certo. Eu teria que mudar o meu tribunal toda vez. Então o que eu vou fazer aqui é dizer, eu quero uma cela com o nome que eu d direito em. Então, depois de obter essa célula, eu quero o valor nessa célula. Então, tudo vai servir. Vemos dar-me o selecionado o primeiro rugido selecionado, em seguida, dar-me a célula chamada idee em qualquer que seja o valor, mesmo que não seja visível, porque devemos fazê-lo. Mas seja qual for esse valor, quero armazená-lo dentro dessa variável chamada idee. Saiba que sabemos que eu d fora da regra que foi selecionada. Eu posso salvar o nosso carro, não sabe só quero um é igual toe sublinhado db dot a tabela que eu pretendo obter o carro de, que é os tipos off carros ponto e eles sabem que vamos olhar para outra função em Link chamado primeiro ou padrão. Tudo bem, para um início padrão foram os primeiros em foram o nosso padrão. Então, a diferença é que primeiro vai sentir se ele não trazer de volta nada, padrões vai se sentir graciosamente e dar-lhe uma mensagem de erro agradável, sensível ou apenas retornou, sabe assim no primeiro ou padrão. E então eu vou fazer o que teremos vindo a amar. Não, expressões lambda. Eu vou dizer Q depois minha flecha, então tudo que eu estou dizendo é me dar o primeiro ou padrão praticamente. Isto é como uma cláusula foram onde Q encaixou. Então você vê que o Q está me dando acesso a todas as colunas. Estou interessado em A coluna idéia onde o valor na coluna I D é equivalente ao I D que acabamos de recuperar ou selecionado ganância. Tudo bem, então tudo isso vai fazer é executá-lo. Oh, e isso está me dando um erro aqui porque eu d na verdade é um objeto. Tudo bem, então o que eu gostaria de fazer aqui é provavelmente apenas fazendo análise implícita no dedo do pé no int para ele. Então não, isso é devolver uma intenção que eu tinha. Em seguida, eu estou comparando a coluna inteira para o valor inteiro voltando desta operação . Saiba que entramos no carro. Então, ou nós pegamos aquele carro ou nós temos não, isso é o que primeiro nosso padrão significa logo em cima. A suposição é que se eles estão clicando na grade do que essa idéia está no banco de dados, e então vamos para lançar ou formar com os dados. Então eu também vou ver Vier em ir para usar o mesmo nome de objeto. E porque eles estão em funções diferentes, eles não vão interferir uns com os outros. Mas, em seguida, este vai ser igual a uma nova instância off add edit veículo. Mas então eu estou passando os dados que estão voltando do banco de dados no formulário fora do carro . Tudo bem, então eu fui lançar uma nova instância desta janela. São este formulário passando os dados provenientes do banco de dados em. Então eu posso para Skopje essas duas linhas onde eu estou sentado, o MD aparente e eu estou sentado muito curto para que você possa ver que eles estão fazendo coisas semelhantes , exceto que é um pouco mais de trabalho porque dedo do pé editá-lo depois de fazer um olhar para o i d. Para que o registro seja editado, então você pode passá-lo no reboque. A nova janela, certo? Então, quando ele passa para a nova janela, eu vou apenas voltar lá e vai lançar com esta construção er que é o quê? Desculpe, Esta construção er, que está inicializando um componente, definindo um texto diferente, definindo o modo de edição para ser verdadeiro em, em seguida, preenchendo alguns para que quando a fazenda Lords. Você carregará com todos esses valores já nas caixas de texto. Não, de volta à nossa lista de veículos. Eu só estou indo para completar tudo fora e fazer o evento deletar anormal, que vai fazer uma coisa semelhante. Eles selecionam a grade, então precisamos do i d fora do valor selecionado da grade quando toe reutilizar esta pontuação em. Então eu preciso fazer uma olhada para aquele veículo. Certo? Então eu faço a mesma coisa lá, mas dessa vez eu vou deletar o veículo da ameaça da mesa. Então, depois de eu obter o veículo que está sendo referenciado por essa função selecionada que eu vou dizer sublinhado d d pontos tipos fora carros ponto Remover desta vez. Então, quando inserimos dados, adicionamos, quando estamos nos movendo, vemos o Dr. Moules ligado. Então eu fui passar no que quer que seja que eu quero remover, que é o carro que acabamos de fazer eu olhar para cima em seguida, depois de tudo isso, eu só vou dizer db dot Salvar alterações doer. Então, quando selecionamos algo da grade e, em seguida, clicamos excluir carro são o botão excluir , ele irá então remover em. Então eu vou fazer mais uma coisa onde eu digo que a visualização em grade deve ser atualizada. Certo. Então, eu só vou atualizar a exibição de grade depois que isso ocorreu. Não, volta ao nosso formulário add edit, a primeira coisa que eu quero é a minha conexão com o banco de dados. Então eu vou apenas copiar o acorde existente porque mais uma vez, eu quero mantê-lo consistente desta vez nosso próprio. Então eu vou apenas copiar isso, trazê-lo para cima, então eu vou fazer a respectiva inicialização. Então isso pode ser como um passo duplo neste ponto, um ouvido dizendo, bem, eu realmente não quero fazer isso dessa maneira. Isso é bom. Se conseguires encontrar uma maneira mais eficiente, sintas à vontade para me dizer que há mais eficientes com eu não estou a dizer que não há uma maneira mais eficiente. Mas se você se sentir livre para me dizer se você fizer isso de uma maneira diferente, você pode realmente apenas fazê-lo em uma linha como esta. Andi saiu do trabalho duplo, certo? Então você poderia fazer isso. Nós e temos que inicializar tudo em uma linha. Isso é bom. O que? Vou deixar assim, já que esse é um padrão que temos usado para saber. Então, depois de inicializá-lo, o que eu vou fazer é ir em frente no tribunal para a edição, certo? Então, depois de clicar em salvar o que precisamos fazer é rebocar a construção, um modelo que representa o que foi editado em. Uma coisa importante a notar é que quando estamos editando, precisamos manter o controle do I D fora do registro que está sendo editado. Então nós temos pulos que passo porque aqui eu disse, todos fora das caixas de texto para ter os valores. O que? Eu não disse que era um valor para o objeto que está sendo editado. Então, não, às vezes você faz algo, você toma uma decisão, e então você percebe mais tarde que você perdeu os passos. Então isso faz parte do processo de desenvolvimento. Então, vou voltar ao meu projeto. Fui até a minha caixa de ferramentas ao trazer uma etiqueta em dez centavos, só vou chamar esta etiqueta. Vou revestir o texto em branco. Eu também vou torná-lo não visível, então eu vou mudar a propriedade Visible toe cai Eu também fui para mudar seu nome Toe l b ah, eu d. Tudo bem, para que eu saiba exatamente o que chamá-lo em um tribunal atrás. Então, uma das primeiras coisas que eu vou sentar é na verdade o texto para lbl i d. Então eu vou ser I d. Isso leva é igual a docas de carro. Eu d certo. Então nós estamos recebendo o objeto do carro na idee está vindo sobre tudo Então é ver contas que as strings têm que fazê-lo para string porque eu estou armazenando dentro de um texto verbal vermelho em vez de uma variável string. Então é só isso que estou fazendo. Só estou sentado na gravadora, tenho que ser rastreado para que eu saiba exatamente o que eu pertencia ao registro que estava sendo atualizado. Agora que eu tenho todos os dados que eu preciso, o que eu vou fazer primeiro é procurar o registro que estava sendo editado. Então, como eu disse, você sempre tem que fazer isso Olhe para cima. Então é por isso que era importante para nós rastrear o i d. Porque no momento em que estamos falando Salvar eu posso obter o I d do meu formulário para que eu possa ver var i d é igual a on Então eu posso obtê-lo a partir do rótulo o texto que sabemos é uma string. Então isso é uma corda. Eu quero um V. Eu quero uma variável indigente Nosso valor de entrevista outro alguém está fora para fazer uma análise de pensamento Eu não posso fazer a conversão implícita porque isso não funciona quando é uma string sendo convertida direita Segundo estava em Pires escuros o que está no meu i d rótulo em Armazená-lo dentro fora que em então eu posso fazer Ah, olhar para cima para o carro onde salvar o nosso carro é igual dedo do pé E eu tenho certeza que você está apenas completando minha frase estão digitando I'll antes de eu fazer onde eu digo db os tipos fora carros não primeiro ou padrão Sempre que você quiser um registro, você pode usar primeiro ou padrão Obter sobre Lambda expressões abertas em execução em seguida saquê você ponto i d é equivalente ao i d. Acabamos de voltar do nosso formulário Não, temos ou objeto de carro em. Não estamos inteiramente certo o que foi editado porque somos cinco sente cinco caixas de texto que não sabemos se foram preenchidas. Se a viseira apagada, ainda não sabemos. Então o que eu vou fazer é apenas um carro que não está ligado. Em seguida, veja, para cada um fora deles, modelo Cardell é igual ao texto que está dentro do modelo de TV que a caixa de texto modelo de TV direita em. Praticamente isso é tudo o que eu vou fazer para todos os seus SOCAR não fazer é igual qualquer valor na TV, Mick dot text. Certo. E vou continuar fazendo isso por todos eles. Eles podem pausar aqui e acabar com eles. Você acha que à medida que você avança, você pode ter que fazer bastante convergência de dados para e de assim para cima onde converter de inteiro para string para obtê-lo na caixa de texto e, em seguida, abaixo, temos que converter de string em inteiro para obtê-lo de volta para o banco de dados depois de preencher Todas as propriedades são valor provável. Então o único que eu não estou sentado em seu i d. Eu não preciso definir o i d porque toda a operação é baseada no fato de que a idéia é a mesma na idéia não teria mudado logo depois de fazer tudo isso, eu diria, db dot salvar alterações. E então isso enviaria todos os valores potencialmente novos, mesmo que sejam valores antigos. Então, mesmo que não houvesse nenhuma mudança real feita, ele enviaria todos aqueles do banco de dados para o nosso carro novo. Não, uma operação semelhante seria feita para adicionar alguns apenas vai fazer, adicionando rapidamente onde eu vou construir um carro. Modelos, eu diria que algo como Vier carro novo é igual a uma nova instância fora do tipo nossos tipos assim tipos fora carro. Lembra-te que isto representa a nossa nova mesa, certo? Então fez algo parecido com isso com o nosso carro inteiro, vamos construir o atual Eric ou não, 29. Validação de dados de veículos e tratamento de exceção: Ei, pessoal, bem-vindos de volta a este vídeo, nós só vamos rever algumas das mudanças que teriam feito desde a última vez uma palavra criando sobre adicionar formulário de edição para nossos carros. Vou começar com a janela gerenciar listagem de veículos onde você percebe que eu adicionei o que eu rotulei como um botão de atualização. Portanto, este botão de atualização irá apenas atualizar o ótimo cada vez que uma alteração é feita. Então vamos dar uma volta. Em primeiro lugar, vamos começar a adicionar novo carro. Então, ao adicionar um carro novo, Eu adicionei validação para o formulário para se certificar de que pelo menos um make no modelo nossa presença . Quando eu clicar em Salvar alterações, então eu vou receber isso. Por favor, certifique-se de que você fornecer uma marca no modelo. Então, se eu vou adicionar um novo e digamos que eu tinha um Suzuki Onda Swift em, então eu clique em salvar alterações. Eu também coloquei em uma captura tentativa porque então ano está esperando nossos valores. Podemos analisar em interes quando eu clicar em salvar alterações. Então minha flecha vem da minha exceção, certo? Então, se eu fornecer uma mudança Ah, ano. Desculpe. E vejo 2013 em Dwell. Esses são os únicos três campos que são absolutamente necessários para que ele funcione e clique em Salvar alterações It colocar em outra caixa de mensagem. É uma operação de inserção concluída. Refresque. É ótimo ver mudanças, certo? Então discutimos que queríamos gerenciar a experiência dos usuários entre adicionar ou modificar dados no carro ao voltar à grade. Então, depois de exibir esta caixa de mensagem e clique em OK, a janela será fechada. Mas então eu posso clicar, atualizar e, em seguida, ele irá exibir o novo campo direito sobre. Em seguida, se eu tentei editar sem selecionar. Então, mesmo que você possa vê-lo destacado em Azul, ele não está realmente selecionado. Então, se eu clicar em editar carro, eu tenho uma era desagradável. Mas então, mais uma vez, isso é apenas uma tentativa. Pegar aquela flecha que teria sido uma exceção me mostrou que você sabe, o índice não estava oferecendo apenas dizendo que eu não selecionei nada da grade, hum, controle certo? Mas então meu programa não pára de executar, então eu sempre posso retificar isso apenas clicando em. Vamos começar com o registro que acabamos de adicionar, quando eu clicar em Suzuki Swift Click Edit Car, em seguida, ele traz editar veículo. Então eu me certifiquei de modificar o título que aparece. Então deixe-me voltar para adicionar carro quando eu clicar em um carro novo para ver informar. Mas um o rótulo muda e para o título na janela muda. Então, para qualquer uso típico, eu poderia ter sido duas janelas diferentes. Isso não é realmente nossa preocupação com o dedo do pé, então eu estou apenas mudando para o usuário. Parece que é a mesma janela em todos os momentos, enquanto é o mesmo com sobre a sensação de que é uma janela diferente. Desculpe em. Então o que acontece que uma funcionalidade como a diferença também. Então estamos recebendo a carga, os dados pré-carregados. Posso mudar o número da matrícula, tudo bem. É apenas colocar em alguns números aleatórios clique salvar alterações, e, em seguida, ele diz operação de atualização concluída. Então, é uma mensagem semelhante. Eu clico em OK, comportamento semelhante e em uma atualização, e então eu recebo os novos dados. Não, excluir é meio complicado porque você não pode excluir dados relacionados, significa que se eu selecionar, digamos Subaru, que eu acredito que eu tenho um registro de aluguel que dois Representa já eram. Se eu clicar em apagar isso, vou ter uma seta dizendo que, você sabe, eu tenho que ver a exceção para detalhes. Quando verifiquei toda aquela flecha, foi porque eu tenho um registro de aluguel no Suero, então eu teria que apagar todos os nossos registros para o Subaru, a fim de excluir o zelador. E isso é apenas integridade referencial vindo do banco de dados. Então isso não é necessariamente uma coisa ruim. Então, se você receber esse erro, isso é realmente o que está acontecendo. Mas eu acabei de criar Suzuki Swift alguém para apagá-lo, porque eu sei que eu não tenho, hum, nenhum registro associado a ele. Então, quando eu clicar nos leads, ele vai. Oh, bem, na verdade está me dando um erro. Eu não esperava isso. Então vamos ver exatamente o que essa era é porque eu realmente não esperava que alguém até o meu barco West Lindy ancorado Vá para o meu evento clique em, então eu só vou selecionar no ponto onde ele deve realmente remover o carro, e, em seguida, vamos tentar essa operação novamente, então eu clique. Ele pula aquele ponto de ruptura onde recuperou o carro com sucesso. Então ele sabe que está pegando o Suzuki Swift bem. Então eu posso usar o F 11 para passar. Então vai para salvar as alterações, em que ponto ele lança a exceção em. Então, se eu olhar no objeto de exceção, é. Olhe dentro da exceção interna para obter mais detalhes. Escreva C exceção interna para mais detalhes para que eu possa olhar para isso. Então está vendo que eu tenho ah const re, não é conflito com a minha data de besta? Então eu definitivamente tenho que beber aquele velho para ver se há algum registro de aluguel com aquela propriedade com o carro, senhor, com aquele registro na besta de detalhes. propriedade com o carro, senhor, senhor, Portanto, não há registro relacionado. Eu só verifiquei. Mas o que está acontecendo é que ele está impondo algumas restrições de design. Então, no projeto do meu carro em um disco ou bem, no design desta mesa, quatro tipos fora de carros no I d ou no relacionamento. Na verdade, haveria essa exclusão de atualização incerta na regra de atualização. Certo? Então, basicamente, não posso sentar ação ou caixões. Eu teria que definir Cascade para ele apenas dizer OK, eu vou apagar. O perigo para isso, no entanto, é que se ele exclui o registro, em seguida, ele irá excluir todos os associados são todos os registros relacionados. Se ele leva carro com I d. Um do que nunca, alugar um registro que está associado com carro com 81 também seria excluído, que você pode não necessariamente querer, então você teria que avaliar essa experiência com o seu aplicação. No entanto, vemos que você sabe, provavelmente podemos ir pela exclusão para não, e corrigi-lo em uma data posterior. Mas eu só queria entender o fato de que nós poderíamos, você sabe, modificar nosso aplicativo para fazer alguma multidão contra a lista de veículos. Poderíamos criar um único formulário que tenha vários propósitos em. Podemos escrever algum acorde legal em nosso arquivo tribunal dedo lidar com a experiência que nossos usuários têm, Então, depois de terminar ou gerenciar listagem de veículos, provavelmente vai querer voltar a nossa atenção para terminar todo o registro onde criamos uma visão semelhante a esta, onde podemos ver todos os registros de aluguel vindo do banco de dados em ser capaz modificá-los quando necessário. 30. Gerencie registros de locação de carros: Ei, pessoal, bem-vindo de volta neste vídeo vai continuar colocando em funcionalidade em nossa aplicação de formulários de vitória ou tarefas mais recentes. Nos fez fazer nossas listagens de veículos gerenciar onde poderíamos adicionar um carro novo e eu vou apenas adicionar um para amostra doente em. Sabemos que quando clicamos em salvar alterações, ele seria adicionado ao banco de dados, e eles teriam que atualizar a grade para ver ou um carro novo fora da rota. Quando selecionamos a função e clicamos em editar carro, podemos alterar isso. Então, se eu se muitos deveriam ter duas pontas, então eu corrigi-lo. Clique em salvar alterações em Mais uma vez atualizar o bem para que possamos olhar para automatizar que Gregory fresco em um pouco de mão. Farei isso na atual gestão de registros. Mas só para terminar ou recapitular, a última coisa que gostaria de fazer com nossos veículos seria removê-los. Então, se eu selecionar um papel em lembrar que discutimos que se há todo o nosso registro já associado a um veículo, esse é o banco de dados tornaria um pouco mais difícil excluir o próprio veículo . Mas eu sempre posso selecionar este carro principal. Então tudo bem, e eu refresco. E então eu vejo que iria querer automatizar essa atualização porque só sei que o carro foi removido , mas sua ganância não me mostrou. Foi removida. E então eu tentei de novo. E então eu tenho uma flecha. Tudo bem, então o que queremos fazer é ter uma grade, como sentar no arquivo de exibição. Então isso seria de outra forma para fazer essas operações grosseiras. E então eu vou te mostrar outras coisas, como automatizar aquela atualização gananciosa. Então, para começar esta festa, a primeira coisa que eu quero fazer é criar um novo formulário que servirá como minha janela de arquivo para todo o meu registro. Então eu vou para a minha solução Explorer, certo? Clique na solução. Ir para ímpar novo item funcionando. Apenas vá para baixo para formar. Fui chamar este formulário, gerenciar seus registros inteiros e, em seguida, clicar, adicionar. E uma vez que nosso formulário é, eu fiz nossas mudanças regulares onde nós vamos para as propriedades sobre, nós mudamos o texto no cabeçalho, Toby mais, você sabe, mais legível humano. Nós torná-lo um pouco maior e, em seguida, eu vou pegar emprestado os mesmos elementos que eu tinha sobre a lista de veículos gerenciar na barra de inverno cada um deles. Alguns apenas foram Tobar o rótulo em Eu estou segurando no controle enquanto eu clicar. Então eu estou segurando o controle enquanto eu clico no botão de atualização. Concordou com os Três Botões. Então vou controlar o Sea para copiar. Volte para o meu projeto em, então controle V para Colar após a coisa da paz. Só vou mudar o texto do rótulo. Então eu saí do rótulo Water Properties em. Eu só vou mudar apenas o gerenciamento de todo o nosso registro de registros. Está tudo bem. Isso fala erros ortográficos maio em. Então estamos prontos para ir. Então gerencie seus registros inteiros. Essa é a nossa nova janela em seguida fora do curso da janela principal. Preciso configurá-lo nos eventos cliques ou pessoas de fechar todas as janelas desnecessárias. Agora, volte para Miami na janela, e acenda o botão. Eu guardo seu arquivo. Vou configurar um evento de clique. Tudo o que vou fazer é lançar estas novas janelas. Eu só vou copiar a pontuação. Eu só reagiu garganta, Então var um aluguel gerenciar. Registros é igual ao novo gerente da Trento Records como minha classe. Então eu vou fazer isso. MD I aparência é igual a esta Onda. A janela deve tão bem, depois de copiar sobre essas coisas o que você quer fazer fora do curso depois de renomear ou rotular, queremos mudar nossos botões tão certo? Não, eles ainda têm os mesmos nomes do formulário anterior. Isso porque, bem, o mesmo nome pode existir em duas formas completamente diferentes. Então, em duas classes completamente diferentes, claro, você pode ter os mesmos nomes. O que é contextualmente? Não quero que seja o Bijan no carro. Queria ser espancado. Estranho, talvez recorde. Tudo bem, Andi, do mesmo jeito. Qualquer coisa que é seu carro para esses botões deve ver registro, então o texto deve ser adicionar novo ou inteiro registro ou registro. Como? Só o disco ligado. Então eu vou fazer o mesmo para a edição, então eu vou mudar isso. Tudo o que você pode fazer isso sozinho. Tudo bem, então até lá daquele exercício, qualquer coisa que seja aquele carro deve saber. Veja, um registro também pode querer mudar o nome desta ganância só para ter certeza que tudo é consistente porque esta é a lista de veículos GV. Então eu queria dizer lista de registros GV. Tudo bem, então saiba que nós, você sabe Oh, eu acho que o botão de atualização também precisa ser alterado para o que é entrada de batida, para que possa ficar. Tudo bem, agora sabemos que precisamos clicar em eventos para cada um desses botões. Alguém para configurar esses eventos de clique de Não, basta clicar duas vezes em cada botão para gerar os eventos rápidos. Então, o clique evento anúncio clique evento para o registro e críquete de e para a exclusão já tem uma janela que adiciona, Então eu posso realmente apenas escrever essa citação, certo? Não, em. Nós meio que seguimos o mesmo padrão que fizemos quando estávamos fazendo as listagens de veículos gerenciados . Então, se eu voltar para esse evento clique para um carro novo, você vê que o que fizemos foi nós lançar a janela, dizer é que o pai fora da janela de lançamento é seu pai também em, em seguida, mostra que eu estou indo para pai que o mesmo padrão para o estranho em Adicionar batido em uma aberração recorde . Tudo bem, lá vamos nós. Então, quando clicamos no batido no registro, ele lançará a mesma janela que teríamos lançado se clicássemos no menu em si . Não são assim. Estamos dando ao usuário opções. Claro que é a sua candidatura. Você pode estilizá-lo inteiro que você gostaria. Mas é assim que eu estou fazendo isso agora. Se você prestar atenção aqui, eu não sei se eu teria passado por isso antes, mas você vê esses três pontos embaixo do novo Se eu passar sobre ele e clicar na lâmpada que aparece, eles me mostraram que eu pode realmente simplificar a inicialização ou declaração deste objeto, certo? Então, se eu clicar sobre isso, então você vai ver uma maneira diferente de inicializar objeto, que teria visto quando você estava usando o link. Hum, tribunal. Certo? Então é universal uma vez que sempre classe, e eles estão definindo propriedades fora da classe depois de inicializar o objeto. Você pode realmente fazer isso assim é você pode fazer o jeito que você está confortável fazendo isso. E esse estúdio visual são raros feridos para você. Não, para os registros de aluguel estavam indo toe tem que escrever um monte de tribunal semelhante o que estamos fazendo quando estamos fazendo gerenciar veiculo listando alguns na verdade. Só vou copiar e colar muito fora do tribunal, porque seja lá o que for, com muita autoridade. Então eu estou colando minha conexão para o banco de dados ou meu objeto entidades na inicialização do objeto que foi dentro do meu construtor. Além disso, eu teria criado o evento do Senhor para o formulário. Então eu preciso de um evento de carga neste formulário, então eu apenas ir e clique duas vezes no próprio formulário em que me dá um evento de carga em, em seguida, dentro deste evento de carga para as listagens mágicas fora de tentou. E eu só vou copiar tudo isso porque eu vou estar redigitando um tribunal muito semelhante de qualquer maneira, então eu estou copiado grade superpopulosa. Mas é claro, eu não tenho um método dentro deste novo formulário chamado Grelha preenchida, então eu posso passar o mouse sobre ele ao clicar na lâmpada. E então isso é gerar o meu pensamento para mim, o que Ok, isso é bom. Pode remover essa linha gerada em seguida para o preenchimento. Concordou. Vou fazer uma pedreira semelhante. Então vamos acertar toda a pedreira para a ganância popular para nossos registros de aluguel. Então, é claro, a primeira coisa que eu quero fazer é declarar que alguns objetos são alguma variável. Eu apenas salvar nossos registros é igual a, em seguida, uma coluna, um objeto de banco de dados ponto carro em registros, que é a minha tabela em. Então eu diria que selecione E eu quero ser muito específico com o que eu estou selecionando alguém para dizer selecione. Abra minha expressão lambda usando Q como meu objeto ou meu falante em. Mas estou inchando em um novo objeto em branco. Tudo bem, deixe-me colocar um cínico aqui para eu não esquecer mais tarde. Então eu fui para dizer o que é que eu quero selecionar. E qual é o nome da coluna, então as colunas que pretendemos ter seriam como cliente. Então eu só vou dizer, cliente é igual dedo do pé bonito ponto em nosso próprio nome de cliente. Argila. Lá em, depois data em. Então aqui eu posso realmente usar meus próprios nomes para direitos de propriedade. Então data em, ele vai ter o valor off q dot dados em data desculpe. Aveia. Eu disse que vai ter o valor do Ted veterano. Tudo bem, então. Fui ver o encontro vírgula. Desde que eu tenho o valor off q dot Beat retornou fora do curso eu preciso do i d. Então eu d vai ser igual a q dot i d Tudo bem? Aan den O último que eu gostaria é o custo, então custou seus custos de Tokyu dot iguais. Mas então você percebe Não, que fora do curso eu preciso dizer o tipo de carro que carro foi barrado. Então ele está custando esse tipo de nota? Tudo o resto é forte e branco. O que? Isso é maior ou menor porque o nome da propriedade. Eu estou dando para o mesmo que uma propriedade vinda do banco de dados, então eu posso realmente apenas remover isso. E isso é um bonito fora custos. Dê-me os custos e preciso do carro. Não. Se você olhar para trás em nosso banco de dados e outros vão para o banco de dados rapidamente, você vê que nós temos o tipo fora carro I d. Eu tenho uma tabela para os tipos fora de carros. Claro, mas então eu tenho o nome e o i d lá em cima. Então, basta selecionar o topo. Aqueles sob o nosso deixe-me apenas olhar para o design em vez de que possamos ver os nomes das colunas. Então eu tenho que fazer o número da placa do modelo Vin e o ano. Não. Ao mostrar os detalhes do registro de aluguel, eu provavelmente não iria querer apenas mostrar a idéia porque eu d carro i d. Um não significa nada para mim. Mas essa é a propriedade que eu tenho acesso dentro do registro inteiro do Meyer. Não, em uma situação típica em como na sintaxe SQL fora depois de usar uma instrução conjunta interna para realmente obter os detalhes do carro sendo referenciado detalhes significando o manso no modelo . Certo? Então, se eu quisesse dizer todas essas informações e, em seguida, imprimir os detalhes do carro kármico no modelo dentro de uma pedreira, então eu teria que usar um link interno me permite realmente acessar a propriedade. Então vamos dizer que eu disse carro como minha propriedade em então eu queria o manso no modelo fora do carro relacionado ou o carro relacionado com este registro. Tudo o que realmente temos é a idéia, porque é um que não eles vão ver tipo fora carro I d. Mais uma vez que não é útil. Então eu posso tipo de simular uma situação em que precisa de uma junção interna e quaisquer detalhes da entidade relacionada ou o registro relacionado, vendo eu sei que vemos o uso fora deste tipo fora da propriedade do carro . Então lembre-se que nós tínhamos os tipos fora do carro I D em. Eu estava dizendo que nós temos dentro do relacionamento. O link faz é dar-nos acesso a todos os objetos relacionados fora do, mas então eu posso realmente dizer q pontos tipos fora do carro. E então eles tentaram torná-lo único ou às vezes estranho, porque é tipo fora de carros. Esse é o nome fora da mesa. E neste é tipos fora de carro porque dizer que eu sei que apenas um carro está associado com este aluguel que eu gravar. Então é um carro, certo? Então eles tentam, você sabe, modificar o 10 não atende a singularidade e pluralidade de cada propriedade apenas para indicar se é um singular ou múltiplo. Certo? Então, se estamos olhando para os tipos fora da mesa do carro, tipos de carros estáveis que Lincoln mostra que temos todos os nossos registros porque um carro pode estar em vários registros inteiros. Mas, em seguida, Desde que estamos olhando para o aluguel eu gravar, então não admira, todo necessário, está associado com um carro tipos fora do carro nesta situação. Oh, isso não é muito confuso. Mas quanto mais você usá-lo, há mais. Percebe como funciona exatamente. Então, contra um que pontos tipos fora do carro, que é uma classe representando ou a entidade ou o registro relacionado mais uma vez fora dos detalhes do carro para que eu possa ver tipos fora do carro encaixado em, então ele me dá acesso a cada propriedade única que teria feijão nos tipos de mesa carros de qualquer maneira. Então eu disse que eu queria o MC no modelo para que eu pudesse dizer carro é igual a tipos bonitos fora, cartão fora Mick em, em seguida, concatenação que em que não tipos fora modelo ponto carro. Tudo bem, então quando isso for executado, ele vai me dar todas as propriedades do basicamente da tabela de banco de dados. Eles estão todos ali na tabela de banco de dados sobre isso. Ele vai tipo de para uma junção interna para dizer OK, me dar os detalhes fora do registro relacionado da tabela de carros Types Off e me dar o modelo espacial Mick na história que dentro da minha propriedade personalizada chamado Khar Tudo bem, Então a expectativa é que quando esta grade senhores estavam indo para estar vendo todos esses detalhes, além disso, toe os detalhes para o carro relacionado e, em seguida, quando eu era prematuro com um semi cólon fora curso, Depois de tudo isso, nós sempre fazemos um para listar apenas para tornar nossas vidas mais fáceis. Tudo bem, então a próxima linha, que eu só vou voltar para gerenciar a listagem de veículos, iria me fazer configurar a fonte de dados o texto do cabeçalho para qualquer um fora deles que eu acho que é muito pesado para exibir Aan cova. Eles escondem as ideias. Então eu vou apenas copiar essas linhas. Então eu vou encontrá-los em relação a esta situação. Então, na verdade, eu não acho, ok, namorar e namorar. Além disso, eu definitivamente quero mudá-los. Mas antes de fazer isso, preciso mudar todas as referências. Então eu preciso do GV nessa lista de registros. Então não é mais veículo isso, mas não, é lista de registros. Alguns assumem a mudança, o resultado, as fontes de dados, não carros, mas seus registros. Tudo bem, então o texto do cabeçalho. Então não, eu posso realmente dizer qual texto do cabeçalho da coluna. Eu quero trapacear e empregos, então eu provavelmente posso usar as colunas nomeadas aqui porque eu não estou tão confiante sobre a ordem em vez ordenar a minha mudança a qualquer momento. Quero dizer, introduzir ou remover. Então, se eu não disser quatro como eu não fiz no veículo de dinheiro é assim que funcionou aqui, sabe? Mas então se eu modifiquei o arranjo dessas colunas do que 4 pode não ser vida simplesmente número mais, certo? Então, em vez disso, fazendo referência por seu subscrito ou sua colocação. Em vez disso, eu fui para referi-lo pelo seu nome, alguém para ver que a coluna chamada Data Aveia são feitas em Não realmente muito são apenas não obter isso sob um para em nosso próprio para fora. Tudo bem, então, o encontro em um. Eu queria dizer d ele espaço dentro dos dados para fora quando eu queria dizer o barco espacial it direito sobre. Então eu quero dedo mais uma vez esconder a coluna para o i d. Tudo bem, então com todas essas mudanças feitas, vamos pelo menos ver se nosso grande senhor Então eu estou indo apenas para começar este aplicativo lá foi para gerenciar aluguel registros em Click View, Archive e Fallen. Então nosso Grady está carregando e notamos que estamos vendo o registro do carro Subaru no Ah Honda Space Civic, certo? Então, apenas uma verificação que eu posso realmente todos ter várias janelas abertas. Então eu só expandi as aplicações. Eles podem ver ambos os veículos listados à esquerda em todos os seus percursos. Certo? Então vemos que Subaru é realmente apenas o manso. Então é isso que só somos vistos. A palavra Subaru, enquanto Honda Civic fazer modelo Andi estão exibindo os detalhes em conformidade. Direito mais adiante para identificar, clique em adicionar novo registro. Então vemos um novo recorde chegando, permitindo-nos colocar um novo disco. Então eu vou fazer um teste. O custo do motorista é de US $1500 em DA. A data de retorno seria, vamos ver a primeira marcha fora. O tipo de carro fora são as regras Royce Phantom que eu apresento, e então tudo passa. Posso modificar esta janela. Não, que ele fecha depois, tudo bem, para que não tenhamos alguém clicando em enviar duas vezes, mas uma vez que feche e clicamos, atualize onde não há nenhuma atualização aqui, então precisamos conectar isso mas nós dissemos que vamos tentar uma atualização automática. Mas fechando a janela e reabrí-la, ele retaguarda aquela consulta que preenche a preocupação de grau. Então vemos que o nosso maior povoado. Então eu só vou ligar rapidamente a edição no registro de exclusão, hum, funcionalidade. Então eu vou voltar ao meu núcleo que escrevemos para a lista de carros de edição, e eu vou distinguir toda essa escola porque, literalmente, vai ser muito semelhante em Eu vou colocá-lo dentro da função ligada. Então eu só vou mudar todas as referências relevantes, por isso não é veículo GV é mais. É lista de registros GV, e eu estou recebendo a mesma regra com a mesma célula I d. Olhando dentro de registros Corrente Desta vez, embora não tipos fora relações Karkare é nossa tabela, então banco de dados carro em registros primeiro ou padrão. Dê-me onde comum, I de então você pode ter algumas pequenas coisas cosméticas que mudam owt na variável aqui não é carro, mas não é um registro ah. Tudo bem. E então estamos aqui lançando em veículos de edição. Lembre-se que adicionamos o veículo de edição como nosso dedo do pé da janela, fechamos a edição ou adicionamos um veículo. Começamos com o nosso recorde atual. Então vamos ter que fazer algumas modificações importantes no dedo do pé. Isso é para que funcione. Então, eu só vou comentar o dedo do pé. Oh, esses leões para não. Tudo bem em. Voltaremos para eles. Teremos que fazer isso na parte dois. Eu só vou voltar e colocar o cabo de apagar. Tente, pegue tudo, pegue tudo, traga para cima de mim. Essas mudanças cosméticas mais uma vez. Então é lista de registros GV não são lista de veículos GV. Então, estou recebendo a mesma coluna. Mesa diferente mais uma vez. Carro em registros. Vamos lá, eu vou. Então estou vendo remover o objeto e isso é registro, não carro. Então remova o registro de objeto da tabela, salve as alterações em então eu poderia apenas lembrar popularmente ele grade aqui em vez disso, fora fazendo aquele refrigerador. Shrek, é depois da exclusão. Lembro-me de preencher a grade, que deve acabar por trás Quartey. Eu aludi a nós fazendo isso antes do que eu só vou avançar e terminar isso neste vídeo. Então precisamos fazer algumas modificações em nossa janela que estávamos usando Toe adicionar todo o nosso registro. Então chamamos isso de todo o nosso registro. Eu vou renomeá-lo Toe Ad e ele todo o nosso registro em, renomeando-o e salvá-lo vai me perguntar se eu quero renomear todas as referências. Clique em sim. De modo que em todos os lugares que ele estava fazendo referência para adicionar seu registro inteiro, ele não vai dizer em quaisquer tendências são recorde fora de curso. Eu preciso modificar o cordão, alguns apenas indo dedo do pé direito, salvando você corte. E isso me leva diretamente ao arquivo de visualização. Mas também vou trazer nossos arquivos adicionais do tribunal de veículos para que possamos vê-los lado a lado uma vez por dia. Mais uma vez, vou fazer algumas modificações muito semelhantes. Eu vou tomar a maioria das propriedades que eu tinha um veículo adicionado no lugar dentro fora em qualquer registro de aluguel, começando com o é modo de edição, porque então precisamos rastrear se é modo de edição ou em ancorado . Você vê que nós tínhamos construtores de dedos aqui, então eu vou pegar todas as propriedades do. São todas essas linhas fora do núcleo que estavam dentro fora do apenas remover o que não é necessário . Então eu tinha entidades de aluguel de carros como o nome aqui. Então, para manter tudo consistente como eu tenho dito antes, eu só vou renomeá-lo no underscore db Tudo bem, então é melhor manter tudo consistente. Use um nome de variável para que todos saibam quem são. Certo, então tenha o título IBL. Eu não dei a etiqueta dentro desta janela um título, mas eu não digo para adicionar novas informações dela, Onda, o texto da janela também deve ver no novo aluguel. Isso cai. Tudo bem, em então eu vou declarar outro construtor segundo astride cto são parados duas vezes e, em seguida, ele gera outro construtor em. Então eu vou colocar o objeto fora em todo o seu registro. Segundo para ver o carro Trento gravar outro registro ver. Tudo bem, então lembre-se que quando estamos fazendo o veículo adicionado, o que nós fizemos foi criar um segundo, hum, construtor que eu emprestei o passado no registro que precisava ser editado neste caso então lembre-se que quando estamos fazendo o veículo adicionado, o que nós fizemos foi criar um segundo, hum, construtor que eu emprestei o passado no registro que precisava ser editado neste caso era um carro para editar. Então, para manter isso consistente, eu posso dizer edição do dedo do pé. Tudo bem, então. Mais uma vez, eu só vou copiar a maioria fora disso com todo este cordão desde que é muito semelhante mais uma vez em, então eu vou apenas mudar velho. Então é isso? É um registro de aluguel. Muito bem, deixa-me gravar para que as minhas frases estejam completas. Jogando através para que seu registro inteiro é Parenteau seu cartão em. Então isto é um recorde para ele. Não é difícil editar. Tudo bem então, Popularly, parece que é Ah, isso é algo que precisamos carregar. Então eu estou indo apenas para gerar um método para isso em, em seguida, voltar para adicionar veículo em. Eles verão todos os campos que foram povoados. Então provavelmente teremos que fazer essa parte manualmente, já que são duas formas completamente diferentes. Não vou copiar a partitura, mas continuarei a seguir esse padrão. Tudo bem, então o que eu vou fazer é rolar até a praia, um clique diz que até mesmo essas coisas quando estamos começando. Eu estava começando simples. Então eu não queria complicar tudo, mas saber que somos mais avançados, que estamos voltando para nossos antigos aliados da Guerra Fria que temos algumas lacunas. Então, tipo, mas ninguém no placar. Rápido, eu não gosto disso. Nasceu um no placar. Clique. Nós não nomeamos o botão de cada vez, mas, você sabe, sabemos que estamos nomeando botões. Você provavelmente pode voltar e dar-lhe um nome melhor na mudança do nome fora do botão clique eventos que está associado a ele para que o seu tribunal é mais legível. E você sabe, o que eu realmente estou aqui é para recuperar esses campos. Então o que eu vou fazer é copiar tudo isso para que eu tenha todos os campos que precisam ser preenchidos . Então eu vou remover. Então eu só queria os nomes dos campos. Isso é tudo o que eu realmente queria. Mas eu estou tentando trabalhar, você sabe, um pouco mais inteligente do que eu estou tentando trabalhar mais. Então eu só estou pegando as partes relevantes porque eu tenho tudo em cima. Então, em vez de sentar e redigitar e tentar lembrar, todos os sentimentos, eu sei que os tinha em outro lugar, então eu fui e os peguei. Você vê aqui eu tenho alguns erros porque isso é chamar as entidades atuais que alteramos o banco de dados. O Sami. Conserte ao mesmo tempo. Então, quero dizer, se você pode não ter outros problemas, eu estou tendo o quê? Eu estou passando por eles apenas para que quando você vê problemas semelhantes, você sabe exatamente o que você precisa fazer para corrigi-los. Certo? Então aqui eu vejo que eu tenho meus campos e eu preciso dar-lhes valores. Então o nome do cliente TB que o texto está indo para o pé, ter o valor fora. Bem, este é o Carter, e não quero dizer que foi transportado. Então é uma cicatriz para editar porque eu gerei a propriedade com base na função chamada a função com base nos custos de função são assim seu registro para editar tal é que para gravar para editar Andi, eu também muda para exigir para editar e alterar o tipo. Então, você sabe, este é um tipo de objeto genérico. Então, para ter certeza de que é o seu carro inteiro registro tão fortemente tipos junto, que garante que todos os seus tipos são adequados. Então seu registro para editar ponto em seguida eu vou ver o nome do cliente. Tudo bem, então, só para vê-lo para o dia Trenta DT ou em Ted Dot valor está no registro para editar pontos data parented em, em seguida, o mesmo herói, mas e eu estou ficando no ar preocupado, vendo que ele não pode se converter, ele não pode implicitamente converter conhecedor. Então, uma vez que você vê esse ponto de interrogação junto com um tipo de dados, isso significa que ele é um conhecedor, o que significa que eu posso ou não ter um dia ou de valor dentro dele. Então ele dizendo que para a direita, isso é conhecedor. Mas para a esquerda, não é possível. O valor não é notável. Então eles estão dizendo que eles não podem simplesmente dizer que, Ok, eu tenho um tipo de dados notáveis que eu vou ver data hora para convertê-lo. Tudo bem, então, não, nós vemos que a hora da data não é sabido pouco. Tudo bem, então eu converti de uma data notável. dedo do pé é a hora da data real. Então, mais uma vez, se você olhar, se você apenas sobre os dados até que você veja o ponto de interrogação. Então a razão pela qual o ponto de interrogação está lá e é notável é que isso vem do banco de dados. Lembre-se que nosso projeto de banco de dados, ou pelo menos meu design de banco de dados, diz que a data em que eu perdi o nariz. Então, se eu carregar sabe a partir do design do banco de dados quando link estava convertendo em C afiada tipos de dados equivalentes, então ele teria mantido que sozinho Oh, propriedade Então que o tipo de dados teria tido este ponto de interrogação para dizer que o data hora é a nossa carga para não ser em C sharp, assim como oh, é permitido ser não no banco de dados. Na realidade, entanto, que esse tipo de dados data e hora conhecedor é realmente diferente de um dia regular, exatamente o mesmo com string Andi int e quase todos os outros tipos de dados. Você tem uma versão notável e você tem uma versão que requer um valor. Tudo bem, então eu faço a mesma coisa para a próxima linha onde eu vou apenas ir em frente e escrever a hora da data na frente. Então chamarei o objeto que a data retornou. Então, pelo custo. Vou ver o objeto não custar. Acho que não preciso de nada disto, mas vejo aqui onde dizem que tenho qual é o problema? Acho que não preciso de nada disto, Então este é um decimal. Então, é claro que eu preciso fazer isso para corda. Então o banco de dados vem do banco de dados? É uma casa decimal. Preciso converter a cadeia de caracteres para que ele possa entrar na caixa de texto. Tudo bem, então eu ainda tenho alguns erros. A correção vai voltar para o topo. Vemos onde há. Não, não há nenhum objeto no meu formulário chamado Título IBL. Então eu estou indo para o pé, certifique-se de ir para o meu projeto, então solução exper Adicionar Eddie Trenton registro sobre este será o referido título, certo? Então eu sou este ou disse Leibler o sol estava indo para ir para as propriedades em dar-lhe um nome. Então, certo, ninguém para este rótulo um. Acabei de mudar o nome de um título de lei. Uma vez que eu faça isso, isso deve resolver esse erro lá. Ele vai sobre isso. Veja se há outros erros para que você sempre possa ver se os erros deles, você sabe, tribunal pode está olhando para aqui. Estás a ver aquele vermelho? Qualquer linha que, como uma exibição aérea, sua Praça Vermelha nessa linha tem uma pista visual para a próxima era. Aqui está que ele ainda está procurando as entidades antigas. Referência são o fluxo que Soto meu novo nome de objeto, que está na pontuação, e b. e b. Então a próxima coisa que eu provavelmente gostaria de fazer é impor esse modo de edição. Então eu tenho mais, hum, declarado. Tenho-o definido como Verdadeiro são quedas baseado em quais construtores estão sendo chamados. Oh, então nós vamos fazer isso mais tarde. Então o que eu vou fazer é modificar o dedo rápido do evento, colocar todos os dados em, em seguida, fazer as validações em. Depois de verificar se é válido, verificamos se estamos no modo de edição ou não. Então eu faço isso rápido. Então, se for, está ancorado Onda outra coisa. Tudo bem, então eu coloquei tudo isso no outro porque isso é o que acontece se não estiver no modo de edição. Acrescenta ameaça. Então, se não está em mais do que nós estamos adicionando, eu já tenho os outros tribunais levantados, colocá-lo no outro, mas então, se ele é editado ancorado, eles não precisam obter o registro por I d e então re adicioná-lo . Então me desculpe se eu vi de volta para o quê? Estamos apenas passando por isso juntos do zero de qualquer maneira. Então, para ter a idéia, lembre-se que o que nós fizemos nos veículos adicionados que nós criamos propriedade ou nós criamos ah, controle, que estava escondido um rótulo que estava sentado dedo do pé, que nós tínhamos atribuído o eu d fora do registro que veio no carro construtor. Então, nós falhamos em fazer isso desta vez. Vamos fazer isso para ter certeza de que temos todas as bases cobertas. Mais uma vez, é bom que nós já estrada. Isso é bom, porque quando fazemos uma comparação lado a lado, podemos ajudar a informar o que precisamos fazer. Certo. Voltarei ao meu projeto para a edição de adição, seu registro inteiro. Vou trazer uma etiqueta da caixa de ferramentas. Tudo bem. Então controles comuns obter um rótulo, colocá-lo em algum lugar. Isso realmente não importa. Neste ponto, posso mudar as propriedades para ver isso. Ok. Quero que este seja o recorde Recordar LBO. Eu d Desculpe. As varas. Taiwan precisa ficar em branco. Então eu não quero cronometrar nenhuma mensagem, mas eu quero o dedo do pé. Tenho o nome do registro IBL. Então eu quero que sua visibilidade seja quedas para que ele fique escondido. Certo, então temos aquela etiqueta escondida em algum lugar. Não importa onde, se você pode ver afluência, não importa a menos que você precise sangrar. Então eu acho que você pode pintar sobre essa era para ajudar a selecioná-la se movendo. O que queremos fazer é ter certeza de que também estamos preenchendo o texto do registro lbl i d ponto com o i d. Vindo do registro. Então edite artes um disco para editar que eu d. Tudo bem, Onda fora do curso depois de vê-lo para string. Desculpe. Bom. Então nós temos o nosso i d em algum lugar no formulário. Certo? Então, quando eu seguir em frente, eu estou prestes a fazer edição saber que a primeira coisa que eu faço é recuperar que até agora, essa igualdade, hum, e então eu posso simplesmente simplesmente converter isso vai sem conta. Eu posso fazê-lo em que Paris Rather em que análise em. Então eu estou analisando o registro que eu dei aquele texto. Tudo bem, então o que fica armazenado em que, hum, no valor de texto para esse rótulo, envergonhando-o em int e eu estou recuperando que eu d em então eu posso salvar cartão IRA é igual a obtê-lo do Banco de Dados Dot E eu quero registros de carros inteiros. Não primeiro o nosso padrão. Isso e, em seguida, enfileirando minha expressão lambda você dot i dy propriedade é equivalente a qualquer coisa que eu desvalorizar. Acabei de ficar guardado dentro da minha variável chamada “D ”. Não que eu tenha o cadastro. Preciso mudar de roupa. Oh, são os nossos valores reais, então eu posso realmente apenas Bem, então o que eu já fiz foi eu raspei os valores do formulário. Isso é o que estávamos fazendo do certo. Quando enviamos o formulário, temos variáveis locais que recebem todos os valores do do formulário. Tudo bem, então o que eu vou fazer é que eu não tenho o registro. Só vou pegar emprestado este cordão. Não, não. Aqui, na verdade, pode me emprestar todo esse tribunal aqui? Baseie-o aqui, então o que eu vou dizer é em vez de ver todo o seu registro porque todo o registro deles é relativo ao objeto. Somos criados desde o início? Quando dissemos que todo o nosso cartão está em branco, em seguida, começar a atribuir todos os valores em conformidade. Desta vez eu recuperei um registro que existia por variavelmente registro não estão bem. Eu poderia chamar a variável ou o registro inteiro só para parecer. Como dentro do escopo, este aluguel um registro existe dentro do escopo if on, então esse objeto rent a record existe dentro do escopo else. Tudo bem, então, baseado no que quer que seja, quero dizer, esta escola provavelmente pode ser refratada. Estou vendo como isso pode ser refletido agora para ser, você sabe, mais, você sabe, muito mais limpo. Mas não vou complicar isso. Vou deixar assim. Então eu estou declarando em objetos, se eu estou recuperando um registro aqui em, em seguida, usando este registro, eu vou redefinir todos os valores com base no que acabamos de armazenar em nossas variáveis locais vindo do formulário. Tudo bem, então, nesta situação na situação L, eu estou criando um novo recorde em então eu ainda estou preenchendo este novo registro com o que está vindo do formulário. Diga, veja, mesmo preenchendo com valores provenientes da forma tudo o que é repetido tribunal. Este tribunal poderia ter sido feito uma vez muito difícil. Então, sempre que você ver um tribunal repetido como este, você pode procurar uma oportunidade para refratá-lo. Então eu vou deixar você fazer isso, nossa fábrica depois e explicar para você. Mas então você pode tentar por conta própria e ver como os contrarianos básicos registram que é o seu Você sabe, você não repete todas essas linhas fora da quadra, mas você poderia uma vez, fugir. Tudo bem, então avançando a próxima coisa que queremos fazer tendo re preenchido todos os registros com os valores potencialmente novos, mesmo que eles sejam os velhos amigos com um potencial novo vício do banco de dados, é ver se as alterações que eu posso apenas mais uma vez copiar que salvar as alterações em. Então, uma vez que terminamos, queremos fechar alguns depois de apenas ir para escrever fluxos depois que a caixa de mensagem aparece. Se você está adicionando, nós divulgamos ou melhor, eu posso apenas fazer um perto, eu não tenho que fechar se você idiota e fechar se você excluir. Mas se é válido para você fazer todas essas coisas, então você apenas fecha no final, certo? Então eu vou definir uma caixa de mensagem depois de salvar as alterações após uma operação de edição. Andi, duplica isto. Então isso é outra duplicação aqui de novo, certo? Então o problema com duplicação é que se eu tiver que fazer uma mudança em algo que eu tenho que fazer aqui, tenho que lembrar de fazê-lo aqui em, então, então,neste caso com a caixa de mistério depois de fazê-lo aqui e então tem que se lembrar de fazer isso aqui . Então, uma maneira de acordo refratário seria apenas para você saber, como método de coluna que faz algo uma vez. Tudo bem. Temos várias maneiras de fazê-lo. Um zay disse que você pode encontrar um jeito. Farei isso sozinho e depois explicarei mais tarde. Mas eu quero que a China e vocês comecem a pensar ou considerar no tribunal e reduzir a repetição. Muito bem, antes de seguir em frente, nosso fraturou o cordão. Então eu espero que você pausar o vídeo e tentou você mesmo, mas de qualquer maneira eu fiz isso e eu vou explicar para você o que eu fiz. Então eu disse depois de verificar se é válido, então eu declarei no objeto fora do carro em um registro. Muito bem, isto é o que teríamos feito se fosse criado. Mas precisamos de um objeto desse tipo. De qualquer forma, se é criar mais são nozes. Então, dentro do contexto, então é OK para apenas fazer este passo. Em seguida, eu tomo Se é mais, então eu quero recuperar o ID em d. Eu quero, em seguida, recuperar o registro do banco de dados em, em seguida, disse que como a oferta de valor para gravar por isso, se não é se não é mais nenhum do que isso ainda é apenas um objeto em branco fora atual eu registro ele não tem nenhum valor ainda aceitar o fato 31. Aprimore o fluxo de aplicativos e a experiência de usuário: É bem-vindo de volta neste vídeo. Vamos fazer algumas correções essenciais, nossa aplicação. Então nós fizemos um bom progresso até agora, mas há certas coisas são ambos o aplicativo que pode ser alterado. Eu posso ser, você sabe, refinado. Apenas liste alguns deles. O que queremos fazer é ter certeza de que apenas uma janela no momento aparece, ou seja, quando eu em meus aplicativos dizer que eu quero adicionar um carro. Deixe-me apenas entrar rapidamente para que possamos ver exatamente do que estou falando. Quando eu digo que eu quero toe lançado uma listagem de veículos gerenciar, eu não quero ser capaz de clicar nisso e ter tantas instâncias fora da mesma janela aberta. Então vamos modificar ou aplicativos para que apenas uma janela apareça de cada vez. Isso é um em outra coisa que vamos querer fazer é fazer a nossa atualização automática de grade. Então não conseguimos fazer isso. Mas queremos fazer isso se eu tivesse um carro novo, certo? Não, não preciso voltar e clicar em Atualizar, mas a nota deve atualizar automaticamente e me mostrar o carro novo. Fora isso, qualquer outra coisa seria apenas refinar as mensagens e as pistas visuais que damos aos nossos usuários. Com cada operação que eles concluem em baixo, vamos fazer o upload do nosso aplicativo para ter esperança. Então vamos começar. Eu vou sair do aplicativo, e a primeira coisa que vamos abordar é abrir na janela no momento. Não, são duas maneiras de fazer isso. Enquanto um vai nos ajudar a manter o padrão infantil MD I que temos usado, onde quando uma janela aparece como uma criança MD I, eles não podem ser movidos para fora da janela média no outro é assegurado que onde essa janela aparecerá, nada mais embaixo dessa nova janela ficará ativo até que essa nova janela seja encerrada. Mas então isso é à custa de ser uma criança MD I, onde ele vai ficar em cima e eu vou explicar exatamente o que eu quero dizer. Então vamos começar com o veículo gerenciador desta vez, ou melhor, vamos para a janela principal e então eu vou olhar em um desses. Eu tenho essa opção aqui. Este botão clique evento onde eu disse no registro de aluguel em eu não sei Ninguém para a listagem de veículos gerenciado disparado. Então eu vou modificar o botão de registro de aluguel de anúncios, clique no dedo do evento mostrar uma caixa de diálogo. Saiba que o problema com o diálogo do show é que eu não posso sentar o MD em que eu apareço, em seguida, mostrar diálogo. Você recebe um erro, tudo bem, então você pode mostrar uma criança MD A. Então, depois de sentar MD, aparentemente porque o nome de seu filho e, em seguida, eu posso mostrar a janela como um chamado Chad, no entanto, eu teria que ou Mitt, ou pelo menos reorganizar esta linha fora do tribunal. Então eu teria que colocar o show acima do MD que eu apareço na linha, e eu teria que dizer o diálogo Shore. Então queria programas que permitissem praticamente aquele show, MJ, que criança MD I definindo-lhe sua configuração de aparência fica anulada. É irrelevante nessa altura, mas vamos ver o que acontece quando mostrei diálogo. Então deixe-me começar. Certo, modificamos o dinheiro ou o registro inteiro do DSO. Quando eu clicar, gerencie seus registros inteiros. Isso é um evento de clique, bem quando eu Oh, desculpe, é este dado outro registro inteiro. Quando eu seleciono esse aviso de que não é uma criança M d A, esta janela foi lançada bem fora da janela principal. No entanto, eu não posso fazer nada fora dele enquanto ele está na tela, e você pode ver piscando que cada vez que ele pisca. Isso sou eu clicando em algo dentro de mim e janelas que eu posso sobre e janela em que interagiu qualquer coisa em. Como resultado, apenas este não permanecerá ativo. Até eu sair, então eu posso prosseguir com qualquer outra coisa na aplicação. Então essa é uma maneira muito simples de sair. A seguir estão garantindo que apenas uma instância fora da janela está aberta em um determinado momento. Como eu disse, no entanto, como você pode ver, a janela funciona de forma independente fora da janela principal, que pode não ser necessariamente uma coisa ruim, dependendo de seus objetivos. Então, nesta situação, não é uma coisa ruim. Posso movê-lo para nós mesmos. Não posso fazer mais nada até fechar. Está certo, então quando eu fechá-lo, então é negócio como de costume. Então isso não é necessariamente a pior coisa que pode acontecer . Então é assim que você pode garantir que uma instância fora da janela está ativa. Então, se você quiser, você pode mudar todas essas margens para mostrar diálogo. Mais uma vez, porém, tem que acontecer antes da linha de aparência MD. Ou então você recebe um erro para que você possa realmente apenas remover esta linha onde você definir o pai M. D. I. A. D. I. A. Se você estiver indo para mostrar o diálogo, entanto, eu vou mostrar-lhe outro método usando a lista de veículos gerenciar, um evento de clique no menu. Então, este aqui. Não, na verdade, vai ser muito mais linhas fora do cabo Onda. Um pouco mais vai para o processo suave, mas o fato é que eu vou manter o fato de que esta janela tem uma aparência MD I. Tudo bem, então para a outra janela, que está gerenciando a publicação Zarei, remova algum tribunal. Escrevi o código de caridade, por isso estou a ver. Então, o que vai acontecer é que nós vamos estar verificando todos os formulários abertos no aplicativo, então un botão clique direito quando gerenciar listagem semana. Quando esse botão é clicado e estamos prestes a mostrar que vamos inicializar, vamos definir os pais deles, mas então eu vou dar o pé. Verifique também se há algum formulário aberto dentro do aplicativo como quantidade de um fato. Provavelmente, mas eu faço tudo isso primeiro. E, em seguida, se não houver jantar, inicialize um novo objeto em, em seguida, mostre as janelas. Então vamos fazer assim. Certo? Então, a primeira coisa que eu quero fazer então você vai ver se você pesquisa que você vê um número de maneiras de fazer isso algumas pessoas usam para cada loop. Algumas pessoas usam métodos diferentes, mas o conceito permanece o mesmo. Eu estou realmente indo para usar o link porque link nos permite iterar através de qualquer lista ou coleção, assim como se nós estamos usando um loop for ou para cada loop. Portanto, o link não é necessariamente único. Dedo do pé apenas oito obedecem quadrados. Mas se você tem uma lista que você quer interrogar, assim como se fosse ah, lista de registros indo dos bancos de dados Sandy, pare objetos. Ele pode fazer a mesma coisa usando Ling de qualquer maneira, , então a primeira coisa que eu quero fazer é declarar alguns muito, mas eu vou salvar nossos formulários abertos agora mesmo. Então o que eu quero a história aqui é que o número fora são todos os formulários abertos nos aplicativos? Eu digo o ponto de aplicação então eu posso usar formulários abertos, certo? Então isso está me dando uma pequena coleção? Não, fora dos formulários de propriedade dos aplicativos. Essa aplicação é o que vem à tona ou o quê? Posição para correr no início rápido à direita em. Em seguida, todos os formulários ou os formulários abertos seria qualquer janela que está aberta no momento de folga. Está funcionando bem, então eu digo inscrição, não formulários abertos. Mas então eu queria em uma espécie de lista fora de forma. Então, enquanto são formulários abertos, como você pode ver, ele está em diferentes tipos de dados. Então eu vou dizer isso e, em seguida, lançar, e eu realmente lançá-lo para o tipo de dados fora. Ah, forma. Então eu estou basicamente dizendo, me dê uma lista fora dos formulários abertos no formulário de tipo de dados, que é o que eu sei. Tudo bem, lembre-se que tudo está fora do formulário da classe base, então eu quero todos eles no formulário da classe Besta. Então ele vai entregar que typecasting para mim e, em seguida, me dar uma lista fora dos formulários abertos fora de todos fora formulário de tipo de dados. Agora, depois que eu tirar essa lista dos formulários abertos, eu vou declarar outra variável. Onde eu quero dizer é aberto Sobrevive está aberto. Tudo bem, então isso vai ser realmente um ouro escreve. Estou dizendo “vier “, mas vai ser um ouro no cara. Estou a dizer-te isto porque a forma como lhe dei o nome está aberta. Normalmente, com uma bolinha. Se já reparaste antes, consegues pensar que não sei o que quero dizer? Sabe que sempre que declaro um valentão e digo que é isto ou aquilo certo? É um padrão comum na programação. Então eu vou dizer que um vírus está aberto. Então eu vou dizer, me dê a lista. Formulários desligados, formulários abertos. Andi, diga isso. Não. Quando eu digo isso, se você apenas olhar através desta lista você vê isso tudo fora? As opções que tínhamos no link estão aqui e disponíveis. Er primeiro o nosso padrão. Você tem o cansado do seletor de todos eles. Aquele em que estou interessado desta vez está certo? Então, qualquer que eu ouço para estipular. Ah, filho Condi. Há alguma coisa que tenha esta condição? Ele vai lhe dar verdade ou cai tudo bem, então eu posso dizer qualquer e, em seguida, fazer na minha terra Expressões de Q seta em seguida q ponto Então eu estou verificando se há qualquer forma. Então, se eu disser q dot você percebe que todos os é exatamente como as opções que vemos quando estamos criando uma nova instância fora de um farm escreve, é a mesma coisa, alguém para ver. Se houver qualquer forma em, então eu posso fazer isso, também, também, é que eu posso dizer por texto ou por nomes são apenas nome vencedor. Então, se há alguma forma com um nome, tudo bem, que muito é R é igual em reboque. O nome fora, o que quer que seja amável para falar. Lembre-se que o nome fora do formulário é praticamente o nome da classe, certo? Então eu posso ver se há algum formulário com o nome gerenciar veículo escuta porque eu estou prestes a lançar gerenciar listagem de veículos, então eu quero saber se há algum, hum, formulário que está aberto que tenha o nome fora do primeiro móvel para iniciar diretamente. Então, se não é nosso se não está aberto. Lembro-me que isto realmente se traduz se a sua abertura é equivalente a quedas. Então, se ainda não está aberto, então eu vou fazer tudo fora disso. Certo, então este tem um pouco mais de linhas fora da quadra. Mas, novamente, a questão é que estamos apenas verificando se há algum formulário aberto, hum, atualmente com o mesmo nome que eu quero lançar. E se não houver, então posso ir em frente. eu não preciso de outra causa é ou é verdadeiro ou falso se for cai e nós lançamos. Se for verdade, então bem, pulamos tudo e nada acontece, certo? Então vamos tentar essa. Tudo bem, então estou prestes a lançar uma lista de veículos gerenciados. Esse é o evento rápido que acabamos de modificar para dentro e clique em gerenciar listagem de veículos, ele irá lançar o aviso de janela. É o lançamento deles em MD I Child . Eu não mudei nada sobre a maneira lançada, no entanto, Se eu clicar no botão novamente e eu estou clicando direito não, Eu vejo o mais está se movendo e eu estou clicando. Você só vê uma instância chegando que é porque ele está verificando todas as fazendas abertas e vendo que já existe um formulário aberto com esse nome, então nada deve acontecer. Se eu fechá-lo e depois clicar nele novamente, então ele funcionará. Então, cada clique subseqüente não faz nada. Então vemos que essa é uma maneira que podemos manter esse comportamento filho MD I, mas garantir que apenas uma janela aparece no momento para que você possa usar qualquer um dos métodos. Como eu disse, o diálogo do programa não permite a criança da Índia, mas dá à forma que está lançando uma espécie de autonomia fora. Como eu disse, o diálogo do programa não permite a criança da Índia, Não ser uma criança. , Mas então, com base no fluxo de aplicativos sob suas expectativas, você pode usar qualquer um que você deseja Não seguir em frente. Queremos começar a olhar para a nossa ganância. Refresque. Não. O que queremos fazer é garantir que depois de deixarmos que adicionar a operação de edição estão na operação de exclusão que a nossa ganância atualiza automaticamente. Então o que acontece agora é que quando você adicionar ou editar nosso registro, ele vai, você sabe, dizer a mensagem de sucesso. Mas então você ainda tem que voltar para o seu gerenciador um, lista-me Basta iniciar o aplicativo para que possamos ver. Tudo bem. Então, como eu estava dizendo, temos que fazer quando lançarmos a lista de veículos gerenciados. Se eu adicionar um carro novo Tudo bem, então eu vou ter que voltar aqui e, em seguida, atualizar manualmente para mim para ver as mudanças. Então eu quero modificar isso depois no carro e eu clicar em enviar e ele foi salvo o banco de dados que a grade atualiza em. Eu não vou realmente ser capaz de excluir e remover ou remover. A necessidade deste botão de atualização é tão não, vamos ter dedo realmente ficar criativo. Assim como consciente de ser criativo com a informação longa. Onde quando estávamos lançando nosso eu e janela, lembre-se que tivemos que modificá-lo toe colocar no objeto fora do log em forma em nosso construtor para que pudéssemos manipular as propriedades fora do log informar quando quiséssemos , que neste caso era fechá-lo. Então o que eu vou ter que fazer é qualquer janela que está sendo lançada ou que gerencie janelas. Então listagem de veículos de dinheiro. Vou ter que passar um objeto para a janela de adição de edição. Tudo bem, são mesmo se for a edição, qual de um? Mas uma vez que eu sou chamado naquela janela, eu preciso passar o objeto fora disso no reboque. Aquele telefone mostrado chamado para que construir uma chamada direita em seguida, a partir desta janela, quando ele for lançado, Eu vou ser capaz de você sabe, executar um preencher formulário acordado cartão mostrado. Então eu tenho ah, função chamada Popular Grade, que executa aquisição executa a consulta. Desculpe. Dedo, na verdade, povoam famintos. Agora, é privado, então vamos apenas fazer a construção e ele vai ver todas as mudanças. Eu vou fazê-lo com uma listagem de veículos gerenciar em. Então eu vou desafiá-lo para fazer isso com a janela de registros I atual também. Tudo bem, então vamos começar. Então, a primeira coisa que eu quero fazer é modificar meus construtores em adicionar editar veículo. Então, na edição do veículo tinha jogando construtor Andi, a construção que eu peguei no objeto do carro para ele, você sabe, o que eu vou ter que fazer é modificar isso para que eu tenha uma minha propriedade privada fora do tipo gerenciar listagem de veículos, então eu estou fazendo isso global porque eu não sei o que eu vou precisar dele. Então eu tenho que torná-lo global, assim como eu tenho a ver com o login e tudo o mais que está aqui em cima. Então eu vou cartão e gerenciar listagem igual em. Então vou contar a este construtor. Então esta cópia esta rapidamente que deve tomar esta construção que eu não, nenhum parâmetro. Inicialmente, ele deve tirar um parâmetro fora tipo listagem mágica neste. Quero sentar-nos, sublinhar, sublinhar, gerir a lista de veículos. Mas então o suporte do parâmetro não terá o sublinhado. Certo, então qualquer construtor deve tirar objeto da lista de veículos gerenciados. Não, posso modificar este parâmetro e dizer algo como igual. Não. O que diria então que você pode ou não precisar passar um valor. Tudo bem, então para não ser um requisito eu posso dizer é igual a não. Então, se você tem que chamar este construtor, mas você não quer passar por aquela janela, um objeto é? Então isso ajudaria a aliviar a frustração que aconteceria naquele momento. Então eu posso fazer isso para ambos os parâmetros e dois se é igual a não, apenas no caso de a pessoa querer um construtor chamado add ou edit sem passar no veículo monitor. Desculpe ter dito “usuário”, mas é você mesmo. O programador que estou a servir neste momento é assim depois de termos conseguido os nossos parâmetros. Queremos inicializar nosso objeto privado local de O.R que acabamos de declarar querer inicializá-lo sob qualquer valor que venha para gerenciar a listagem de veículos. Então, se for não, é não. Se não souber, então ganhamos aluguel de objetos. Então a lista de dinheiro Guica é o sublinhado. A listagem mágica é igual a que em. Acabei de fazer esta linha e repito, está abaixo de tudo bem no DSO. Sempre que nossa janela for lançada, ele terá algum conhecimento sobre a janela de listagem de veículos gerenciados que o chamou, então é fácil o suficiente para declarar um objeto fora de um dentro de seu próprio tempo. Mas toda vez que declaramos um objeto, é um objeto novo. Não é o objeto que existe, são por isso queremos ter certeza de que estamos rastreando o que existe é o que o chamou porque você sabe que o que o chamou é o que está abrindo cerca de crescido mostrando atualmente o grade. Tudo bem, então eu estou indo para o pé. Não, volte. Desculpe. Volte para gerenciar a listagem de reconhecimento em. Então eu vou ter certeza de que eu apenas segurar o controle e clique. E então eu posso apenas clicar duas vezes salvar mais de uma instâncias Ele vai financeiramente e DoubleClick qual deles você quer saltar dedo do pé? Então, minha função causa dedo adicionar editar veículo ou um veículo de edição mental? Sim, estou ciente de que não há árabe porque eu defini o parâmetro para ser experiente, certo? Então, porque eu disse que seria notável e deixe-me apenas mudá-lo para nós e apenas mostrar-lhe exatamente o que eu quero dizer. Se eu não disse que ele pode ser igual a saber, em seguida, gerenciar a listagem de veículos. Este construtor, então, me daria uma linha vermelha porque então ele está dizendo que ele não tem uma construção, que ele não leva argumentos que precisa. E precisa passar em um argumento porque eu disse que pode ser igual saber comigo encontrá-lo volta porque eu disse que pode ser igual saber. Então posso prosseguir para mim. A função regular chamada se eu quiser O ou a construção regular de uma chamada sem passar um parâmetro. Certo, então esse é um desses. São as coisas que te estou a mostrar, caso queiras ser mais versátil. De qualquer forma, vou passar por isso. Então, estes, senhor, apresenta um objeto fora da janela de listagem de veículos gerenciando que está fazendo a chamada toe adicionar editar veículo aprender. Então eu coloquei isso para o anúncio clique no cara. Faça também o mesmo para o editor. Então eles vêem que o clique do Eddie é a mesma coisa. É posse no carro, que é um parâmetro obrigatório. Mas não está gritando sobre a lista de veículos de dinheiro. No entanto, eu vou dizer vírgula isso Tudo bem? Não, isso está feito. O que acontecerá é que quando adicionarmos nosso editar o veículo, uma vez que concluirmos nossa operação nesta chamada de função. Tudo bem. A expectativa é que o nosso grande se atualize. Então o que eu vou fazer é antes de mostrar a caixa de mensagem e ver tudo está concluído, eu vou colocar em ah chamada toe são objetos. Sublinhado gerenciar listagem de veículos. E então eu chamaria “Popular grade”. Sem notar que não posso chamá-lo. Não está chegando no interesse desde e mesmo se atacado, pensamos, não está chamando de tudo certo, então o que acontece é que ele é privado, então é privado por dentro ou gerenciar listagem de veículos. Deixe-me ver se consigo encontrá-lo rapidamente. É privado aqui, então não posso ligar do lado de fora. Então, se eu tornar público, então esse problema é resolvido, então é um vazio público. Então seremos capazes de chamá-lo. Então, vamos rever a expectativa aqui quando eu clicar em Salvar sobre se é um anúncio para operação ou uma operação de edição. A expectativa é que o nosso você sabe, façamos tudo o que sabemos que fazemos. Verificamos se ele disse mais do que povoar nosso de objetodeacordo. Então você vê que nós meio que repetimos o tribunal e nós meio que refratamos na última vez. Então eu tenho um banco de dados salvar alterações aqui tem um DBC de alterações aqui no dia. Eu realmente não gostaria de repetir essas coisas o tempo todo, certo, certo, então o que eu vou fazer é remover essas linhas do cabo. Então eu sou apenas refratário agora. Então eu vou tirar as mesmas linhas fora do tribunal que foram repetidas e depois colocá-las fora do cheque. Se é mais ou não certo, por isso verificamos se é válido mais. Se for um pouco mais do que queremos fazer isso. Se não é isso, é mais do que um para fazer isso. De qualquer forma, no final do dia, queremos ver se a mudança está popularmente ligada. Então, claro, eu só faria uma mensagem genérica Operação concluída, atualizada para ver as alterações em. Então fechamos. Tudo bem, então o que deve acontecer é que quando clicamos em salvar e ele faz qualquer operação, ele vai realmente preencher a grade. Chame uma função de grade popular na gerenciar na janela gerenciar listagens de veículos em. Lembra-se daquela população do Grady? O que executa a consulta desde a fonte de dados e todas as operações entre elas em então que deve acionar a atualização fora da grade. Então vamos intensificar isso. Tudo bem. Então lançamos nossa janela de listagem de veículos gerenciar Eu gostaria de um carro novo em então eu vou ver a marca é alta no Desculpe. Oi, só eu 20. Este é o modelo 2019. Uh, desculpe. O Vinnie está colocando algo aleatório. Os anos 2018 na placa de licença é que clicamos salvar alterações. Sua operação está concluída atualizada para ver mudanças. Ok, tudo bem. Mas então olhe para isso. Já foi atualizado para mim, para que eu possa mudar essa mensagem. Não, eu não preciso dizer a eles o decreto fresco segundo qualquer botão de atualização lá. Mas o ponto é que a operação seria atualizada na grade automaticamente. Tudo bem, o mesmo para ele. Se eu disser que eu queria editar isso e eu queria limpar este vin um pouco porque eu coloquei o errado fez tudo certo, e então salvar as alterações. Operação concluída. Agora você vê que o Vin mudado acontecendo em tudo está acontecendo em tempo real, certo? Então isso é tudo que você pode fazer isso, Gregory Fresh Operations. Eu fiz isso com a lista de veículos gerenciadores. Bem, eu não fiz isso com o carro principal. Deixa-me certificar-me de que o fiz. Com o carro principal vendido, eu não tenho mais este carro na minha frota efeito apagar. Você vê que nada aconteceu. Então, e clique em excluir. Nada acontece. Sem visual. Deixe qualquer coisa. Mas se eu refrescar você verá que ele desaparece. Tudo bem. Se eu tentasse excluir novamente, eu teria recebido um erro. Então nós queremos fazer, então, é certificar-se de que nossa função de exclusão, hum, nos diz que a operação foi bem sucedida e ela é atualizada ao mesmo tempo. Quer dizer que quer mesmo o dedo do pé? Dê-lhes. Ah, sim ou não? Tem certeza de que deseja excluir tipo off prompt. Então estou de volta à lista de veículos matrimoniais. Então, inicialmente eu tentei são re fresco usando esta função. Mas isso faz algo diferente do que queremos fazer. Alguém para remover isto. Então o que vamos fazer é dizer um. Se a pessoa clicar no botão de exclusão, obtemos os detalhes, você sabe, nós pegamos o objeto e tudo mais. Então o que eu vou fazer é estrato e eu escrevi rapidamente, então eu vou explicar para você. Então o que estamos fazendo é fazer uma caixa de mensagem que nos permite chegar do usuário. Tem certeza de que deseja excluir. Então, quando você clica no botão excluir, ele vai recuperar O registro vai recuperar a idéia eo registro associando com o I d. Desculpe, então. Estamos iniciando uma caixa de diálogo. Lembre-se que as caixas de diálogo são caixa que aparece que impede que você interaja com qualquer outra janela aberta. Certo? Então esta caixa de diálogo nosso resultado de diálogo é o tipo de dados no objeto é d são Isso é o que estamos chamando em nós estamos vendo Eu quero um diálogo resultados que tem o valor de uma caixa de mensagem . Então esta é a mensagem que estamos mostrando. Tem certeza de que deseja excluir esse registro? Ele pode colocar ainda mais detalhes nisso, se você quiser, porque você já recuperou os objetos do carro que eles podem dizer. Você tem certeza de que deseja excluir o nome do carro, por assim dizer ou o modelo do carro karmic Se você quiser em, então este é o título fora da caixa de diálogo, que é excluir. Então dizemos que queremos mostrar botões da caixa de mensagem. Sim, não, não, são capela-mor. Então, quando ele vem para cima, ele vai aparecer com um botão Sim, eu sei e eu cancelar. Então estamos mostrando no ícone. Isso é um aviso de cor que estamos avisando que eles entraram na zona de perigo. Então, depois que os solicitamos, estamos vendo se o resultado é sim. Significa que pegaram o botão “sim”. Então queremos prosseguir para remover o carro. Tudo bem, então, tendo removido o carro, podemos chamar a grade populacional. Tudo bem. Em um erro ortográfico lá para que possamos chamar populate. Concordo, então isso deve, hum, você sabe, atualizar órgão. Então, vamos tentar aquela operação brega. Tudo bem, então estamos de volta, mas estou prestes a tentar apagar Toyota. Acho que a Toyota não tem registros de aluguel associados a ele. Posso sempre verificar em segundo lugar. Basta ver o arquivo em. Eu não vejo nada com Toyota, então eu não deveria ter qualquer dificuldade em excluir Toyota. Eu clico em Excluir. Então está me dando aquela urna. Tem certeza de que deseja excluir esse registro? Sim. Não. Talvez assim. E clique. Sim. E, em seguida, boom, Ele remove-o. E, em seguida, ele atualiza a grade automaticamente para mim para ele que greves foram também se eu clicar em Não. Então nada acontece. Se eu clicar em capela-mor, então nada acontece. Mas então uma vez que eu clique, sim, então ele é removido coração. Então nós apenas limpamos nosso aplicativo um pouco. Nós nos certificamos de que apenas uma janela se abre. Também colocamos alguns bons recursos de atualização em nossas janelas. Então eu fiz isso com a listagem de veículos gerenciados. Estou desafiando você a tentar repetir esses passos com os registros de aluguel gerenciados. De qualquer forma, no próximo vídeo, vamos checar em nosso tribunal o controle da fonte. Terei todo o tribunal pronto e disponível em comentado para que você possa verificar o repositório para o acorde concluído no caso em anos. 32. Formulário de login simples: neste vídeo estará configurando um sistema de login para ou atualizado. Isso exigirá fazer algumas alterações, quer o banco de dados e os dois para o fluxo geral fora de nossa aplicação. Então eu começo com os cantores de banco de dados. Eu só vou trazer o meu estúdio de gestão sobre o que precisamos é uma nova tabela que irá armazenar as informações do usuário. Então eu distrair Lee chamado New on Tables Ir para novo Click Table em, então o que queremos é um I d fora do curso, que seria off tipo inteiro. Seria a chave primária ligada. Vamos configurá-lo para ser identidade para que ele irá incrementar automaticamente mais uma vez se você não está tão familiarizado com o desenvolvimento de banco de dados, o novo cântico, meu curso, meu servidor SQL soft maldição para todos ou meu projeto de banco de dados SQL e maestria. Então, depois de definir nossa coluna I D, então temos os campos relacionados ao usuário mais comuns, que estariam usando ele, que, como ele tem Environ Char 50 e senha, que eu vou definir como Env Arch são, Onda disse. Isso quer ser 100 e eu vou explicar por que eu também não muito esses dois para ser conhecido também. Não faz sentido. Você tem um usuário sem usar mais senha ou ambos devem estar presentes para que o usuário seja concluído. Certo? Então eu só tenho essas três colunas para Não, Salve isso e eu vou chamar este. Usuários clicam em. OK, e depois temos a nossa nova mesa. Agora, algumas escolas de pensamento diriam que você sabe, você quer usar esse caminhão. Exatamente quais usuários fazendo o que em seu aplicativo. Então, se esse é o seu desejo do que o que você gostaria de fazer é adicionar chaves estrangeiras para suas outras mesas, sendo tipos fora de carros no carro, registro inteiro para que você possa realmente ver quem está interagindo com esses, hum, tabelas em que são esses registros em qualquer ponto? Eu não vou acender esse fogo, embora eu só queira um sistema de login simples para que possamos tentar restringir o acesso ao nosso aplicativo. Então, depois de adicionar isso ao banco de dados, eu tenho que voltar ao meu tribunal e fazer algumas modificações para que eles saiam do barco atracado. Então, a primeira modificação que eu vou fazer é o nosso E t m X. Então, sempre que você fizer uma alteração no banco de dados, você quer que seu e DMX Aurier no diagrama para estar ciente dessas mudanças. Então, adicionamos uma nova tabela segundo EUA clique direito modelo Water Update do banco de dados. Então, quando isso aparecer, você vê o anúncio na banheira sob o Aftab. Você notou que eu tenho na seta ao lado de tabelas e me mostrar que eu tenho uma nova tabela que está no banco de dados, mas não no diagrama para que eu possa apenas clicar os usuários clique terminar em, em seguida, ele vai em frente no processo de água. Ele precisa fazer com o resultado final sendo a adição fora da tabela do usuário dedo do pé do meu dedo, meu CD. Um diagrama de mistura, certo? Então não, meu aplicativo sabe e pode acessar a tabela de usuários ou propriedades do usuário, certo? Se eu tivesse configurado relacionamentos como eu disse, nós configuramos as chaves estrangeiras entre as tabelas e a dica do usuário. Então você veria leões indo por todo o lugar porque estes loja relacionados e, em seguida, usuário iria relacionados tipos de dedo fora do carro, bem como atual nosso registro. Mas isso é que não foi feito, então aqui diagrama deve se parecer com isso fora do curso que você construiu sobre. Como podem ver, o meu computador ainda está a carregar porque está a funcionar. Vamos dar-lhe um momento. Não, isso está feito. Podemos ir em frente e projetar nosso diário. Informa que vou voltar ao Solution Explorer, certo? Clique em ou projetos vão para Adicionar em. Então eu quero um novo formulário sobre este vai ser login. Então eu só vou chamá-lo para fazer login e, em seguida, clique em adicionar dar algum tempo para processar tudo isso. Tudo bem, então eu fui em frente e projetei, e eu tinha usado as mesmas técnicas que têm usado até este ponto, certo? Eu usei um rótulo para o rótulo no topo para descrever que é um log informar. Eu usei um layout de mesa, e à esquerda, eu coloquei os rótulos para usá-lo e passer. Então, à direita eu coloquei as caixas de texto em Então depois de mim, certeza que minhas caixas de texto têm os nomes dos cartões, então eu tenho o nome de usuário TB na matriz tem senha TB, certo? Então ele pode pausar o vídeo e, em seguida, fora do curso, ter o botão de login no final do dia para que você possa pausar o vídeo aqui e fazer o seu design, você sabe, semelhante ao meu, se você quiser. Se tiver uma razão diferente, tudo bem. Mas depois do dia em que aprendemos isso, então eu não vou falar sobre as mesmas coisas. Essas coisas básicas são uma e outra e outra vez? Porque espero que tenhas apanhado e que estejas familiarizado com isso. Se você não estiver, então você pode revisar os vídeos anteriores e se atualizar com alguns fora desses controles e manter um trabalho. O próximo passo, entanto, seria certificar-se de que o botão de login funciona, porque uma vez que a pessoa fornece o nome de usuário e a senha, o próximo passo é para que eles realmente façam login em nosso clique log-in tão fora do curso Clique. Queremos fazer alguma coisa. Agora isso é algo que nós vamos querer fazer envolve nós interagindo com o banco de dados, Onda procurando e recuperando o nome de usuário e senha para ter certeza de que o que foi inserido muito é o que está no banco de dados. Então, por meio de testes, primeiro lugar, eu vou voltar para o banco de dados em eu vou adicionar nosso registro, então eu estou apenas atualizando minhas tabelas, ir para comprar tabelas de usuários, digamos, em suas 200 regras principais sobre. Então eu vou colocar em um administrador de nome de usuário manual no passer. Aqui está o que ser a palavra senha, todas em minúsculas, então esse é o nosso primeiro usuário em nosso banco de dados, então adicione posturas más. Então isso significa que quando eu chegar ao registro, informe se eu fornecer credenciais. Use o nome admin e a senha é a palavra senha. Em seguida, quando eu clicar em log e ele deve ser capaz de olhar na base de dados, verifique se o nome de usuário que eu forneci muito é um do banco de dados, a senha. Da mesma forma em. Então diga sim ou não. Eu posso passar por tudo bem, alma de volta em nosso cordão. Como eu disse, precisamos interagir com a base de dados. Então isso significa que precisamos de algo para isso. Então, podemos a loja privada só de leitura, e, em seguida, o nosso objeto fora de carro Trento entidades em. Vou chamar o objeto na pontuação D B em. Então eu inicializarei isso no placar. D B é igual a uma nova instância, fora do aluguer de automóveis. E é lá vamos nós agora no evento clique. Vou embrulhá-lo em uma faixa de? Não. Então vou dizer “tente”. Desculpe. Deixe-me tentar de novo. Tenta a CIA dupla, a banheira dupla. Gera esse snippet diretamente no. Então vou escrever minha exceção. Então vou dar uma era genérica . Portanto, nunca é uma boa ideia mostrar a mensagem de exceção para o usuário. Como eu disse antes, mesmo tendo feito isso antes, só estou mostrando que você pode. Mas geralmente falando, você provavelmente não quer, porque isso não significa nada para usar o seu. Então quer dizer que algo deu errado? Pedaço de draggin. Tudo bem, então é isso que você quer fazer, então, para tentar. O que vamos tentar é recuperar os valores do nosso formulário para que eu possa salvar nosso usuário. O nome é igual ao texto do ponto do nome do usuário TB. Então, a mesma maneira da nossa senha é igual ao texto da senha TB. Então, recuperamos o nome de usuário, recupere a postura que o usuário inseriu. Não. A coisa com o nome de usuário é que você pode querer apará-lo um verdadeiro significa que você está tirando espaços em branco em ambos os lados para que eu possa realmente ver algo como corda ponto guarnição . Oh, desculpe. Não , não seria. String que corte string não tem essa função de corte. Você realmente seria esse texto. Não é verdade, certo? Então, quando dizemos guarnição escura, seja qual for o valor da corda é a nossa variável de corda que vemos essa guarnição, então o que ele vai fazer é tirar qualquer espaço em branco principal ou treinamento com espaço em branco do uso dele. Porque se eu escrevi meu usando um mérito, se eu escrevi espaço ou inadvertidamente barra de espaço pessoa ao escrever ou antes de escrever ou depois escrever o nome de usuário, então não seria um muito direto. Então você só quer cortá-lo para ter certeza de que você não tem nenhum espaço em branco à direita ou espaço em branco à esquerda para que o texto seja mais absoluto durante a comparação. Você não quer fazer isso com um passador, entanto, porque você quer ter certeza de que a pessoa coloca no texto exato que está no banco de dados que colocou na caixa de texto real. Tudo bem. Então, depois de recuperar o nome de usuário e senha, a próxima coisa que eu quero fazer é realmente compere. Isso está tentando encontrar algo no banco de dados. Esta combinação está certa? Alguém para salvar nosso usuário, que é o meu objeto que eu vou usar para recuperar do meu banco de dados na minha tabela de usuários. Qualquer registro. Então eu quero um disco. Tudo bem, então eu preciso de um usuário ruim, terrível porque eu estou esperando um registro. Não deve haver muito usuários com a mesma combinação de nome de usuário e senha, mesmo que eles tenham as mesmas adições de senha têm o mesmo usá-lo em qualquer momento. Então eu estou esperando apenas um usuário para voltar realmente. Eu vou dizer primeiro ou padrão, e então eu vou vomitar uma expressão lambda sobre isso. Eu quero dizer que eu quero o primeiro nosso usuário padrão que tem um nome de usuário que muito é o nome de usuário eu acabei de receber da minha caixa de texto. A Andi. Então eu posso usar o e sob ou apenas como se eu estava fazendo uma instrução if Andi, a senha no banco de dados corresponde diretamente à senha na caixa de texto. Tudo bem. Assim que eu fizer isso, eu não vou verificar se eu voltei. Eu usuário não são. Então eu digo, se o usuário é equivalente a não, então. E se o usuário é igual interno, isso significa que depois de ter pesquisado o banco de dados para o primeiro nosso usuário padrão Bem, padrão significa não. Então, para o primeiro usuário, que tem o mesmo usando ele que foi inserido nos livros didáticos no passador CME que foi destinado aos livros didáticos se essa construção do usuário não tem nenhum direito, então se depois dessa operação isso é não, então queremos dizer algo como, por favor forneça credenciais válidas. Tudo bem, tanto quanto sabemos, ninguém no banco de dados é que não, você não quer dizer exatamente o que está errado. Como se você não quisesse dizer sim. Liguei para isso usando um mas sua senha pode estar errada ou vice-versa. Porque se fosse alguém que fosse Trento maliciosamente entrar em seu sistema, você teria resolvido metade da equação para eles, deixando-os saber por que eles não poderiam entrar em seu aplicativo. Tudo bem, então você quer dizer se é não. Se nenhum usuário existir assim. Então você sabe. Forneça credenciais válidas. Podemos deixar o outro em branco. Não. , Claro, isso é o que aconteceria se fosse. Se está tudo bem, então foi o que aconteceu. Então eu só vou dizer que os fluxos são tão apenas para experimentos doentes apenas para não. Nós vamos dizer se ele não é atual que a tela deve apenas nos dar uma caixa de mensagem. Se estiver OK, então a tela. Só vai fechar, está bem? Não. Se quisermos que esta janela apareça quando pressionamos Iniciar, então precisamos modificar nosso programa que o arquivo CS. Então agora ele vai lançar a janela principal primeiro. O que eu quero para o chão do meu aplicativo é que quando você clica duas vezes no aplicativo para executá-lo, ele realmente vai iniciar a tela de login. Primeiro, então, se ele lançar uma tela de login, então ou você entra ou você não consegue ir mais longe, que significa que você chega ao homem que conhecemos, que é RMD, então, se ele lançar uma tela de login, então ou você entra ou você não consegue ir mais longe,o que significa que você chega ao homem que conhecemos, que é RMD, aparente, que nós projetamos toehold todas as outras janelas e funcionalidades do nosso aplicativo ou você está preso na tela de login. Tudo bem, então eu queria dizer para iniciar a janela de log in primeiro. Então, quando o aplicativo é executado, o log in. Então, quando eu clicar em Iniciar, então vemos nosso longo e janela aparecer. Então, se eu digitar admin one tocando na palavra senha e clique em login, então nada aparece. Arte. Então você vê que essa peça fornece credenciais válidas e válidas e eu vou te mostrar exatamente como eu consegui esses quadrados. Então você provavelmente está digitando dentro dele e você está vendo a palavra postura. Surge nos seus quadrados de observação, que apenas representa o Generi Carter mostrando que você sabe que ele está obscurecido seu mastro. Então vou mostrar-lhe exatamente como me perguntaram o meu. Eu não mandei uma caixa de texto, e mandei. Eu pulei a etapa de mostrar a você, então tudo bem. Eu vou voltar. Mas a questão é que quando eu digito credenciais inválidas, ele não me deixa ir mais longe. Se eu digitar admin e senha em um clique, faça login e fecha. Então vemos que nosso aplicativo ou estão registrando Logic está funcionando porque ele foi para o banco de dados e verificou. E é o nosso administrador como usar a senha dele como uma senha no DSO. Ele fez o que era suposto fazer na declaração else. Tudo bem, então deixe-me voltar ao design rapidamente e mostrar o que eu fiz com a caixa de texto para a caixa de texto. Mesquita do dedo do pé, Seu texto querido. Então o que você precisa fazer é fornecer a senha Char. Então vamos passar foram char e fornecer um avisos é char. Então, isso significa dar-lhe um símbolo se você colocar barras e barras aparecerá se você colocar um asterisco do que a Escola Astor aparecer. A razão pela qual eu estou recebendo quadrados, no entanto, é que eu mudei o funt. Então, mudando os fundos que Toe Maar deixou eu estava experimentando um minuto de mudança para Marlet. Então o que acontece é que aparentemente não há asterisco nesse fundo, certo? Então ele só dá esses quadrados genéricos para mostrar que bem, é mascarar. Adoraria usar o asterisco, mas eu não tenho um asterisco neste fundo, então eu só quero até mesmo o quadrado genérico. Então você sabe o símbolo de lado. O ponto é que você pode mesquita seu texto usando essa senha char, porque é claro, você não quer que a palavra senha ou o patrocinador pessoa para estar em texto simples enquanto está sendo inserido no banco de dados é não para corrigir o chão. Tudo o que fizemos foi dizer “Próximo ”, digamos, mais perto do resto. O que eu quero fazer é realmente lançar as janelas principais. Eu vou dizer Vier janela média é igual a uma nova instância fora da janela média aan den. Eu vou ver bem, é claro, meu semi cólon e eu digo eu e janela ponto Claro, tudo bem, então eu quero que esta janela se esconda, então a coisa é que uma imagem mostra exatamente o que vai acontecer. Então, quando eu iniciar meu aplicativo em, então eu vou em frente e fornecer credenciais válidas. Então adicione média e nós palavra e clique em login. Então ele vai abrir a janela principal, mas o registro vai estar lá, persistindo no fundo, o que eu realmente não quero. Não é tão grande de um negócio, mas o que acontece que se eu quisesse fechar o aplicativo depois de me fechar e janela sobre. Então volte e feche o registro porque são duas janelas completamente diferentes. Eu não disse que madeireira deveria ser uma criança da Índia fora da janela má. Tudo bem, então eles são duas janelas separadas e ambos separados fora do aplicativo. Assim, desde que ambos estejam em execução, o aplicativo não fecharia. Então o que eu gostaria de fazer é me esconder na razão de eu não me esconder. Não estou perto. É que se eu disser perto aqui, a janela de login pode realmente fechar antes que a janela principal da costa. Tudo bem, então eu já vi isso acontecer antes, então eu vou apenas dizer esconder. Então, isso significa que quando eu fornecer credenciais válidas Tudo bem em, então eu vou em frente e clique em login. Em seguida, ele vai verificar o banco de dados, verificar a mim, lançou uma janela man, e em seguida, esconder a janela de login. Então isso parece um pouco mais limpo. É um registro em uma norma no meu aplicativo. Mas então quando eu fechar esse aviso de janela média, eu ainda estou no modo de depuração. Então debug more representa que o aplicativo ainda está sendo executado bem, o que eu não quero. Então isso significa que a janela de carga ainda está escondida. Nem consigo chegar a ele porque está realmente escondido. Não é nem aparecer na minha barra de tarefas se você estiver se sentindo certo, não, ele também não aparecerá na sua. Então eu realmente tenho que clicar em parar. E isso ainda não é desejável, porque então isso significa que um vermelho processado ainda estaria funcionando até que o computador de pessoas seja desligado. Portanto, não queremos que alguém apenas modifique este pontuado um pouco mais para que possamos ver nosso fluxo de aplicativos um pouco melhor. Então o que eu quero fazer é que quando eu lançar minha janela principal, eu queria lançar com a noção de que estão com o conhecimento fora da janela de log em estar algum lugar. Então você percebe que essas formas são meio autônomas. Então, qualquer lançamento ou você vê não mostrar que a única vez que um se importa com o outro é se é um M D. Eu apareço fora desse. Todas as crianças não se importam umas com as outras. Eles só sabem sobre sua aparência MD I. Nesta situação, a janela principal é sua própria em, seus pais, com seus próprios filhos no log informar, é um irmão, que significa que está no mesmo nível que a janela média. Não é uma criança nele é uma janela média dentro e fora de si mesma, mesmo que não seja uma aparência M D. Então a questão é que você não pode se você tiver que deixar um. Não, fora do outro deliberadamente, certo? Mas a coisa legal é que uma vez que você deixar um saber sobre o outro significado, uma vez que eu deixar eu e o Window saber que há uma janela de login em algum lugar, então eu posso realmente manipular o log in janela através da janela principal. Hum, a qualquer momento. Então o que eu vou fazer é passar esta declaração fora do objeto. Eu vou ser claro que são passados em uma instância fora deste sermão, mas que esta palavra-chave significa que qualquer classe em que eu estou operando, isso representa um objeto fora dessa classe, algo que eu estou passando um objeto fora da classe logging ou o formulário de login em mim e janela . Agora você está vendo que esta linha vermelha aparece porque não há construtor para mim e janela que leva um argumento fora Le Guin, alguém para modificar meu eu e janela dentro deste controle em Click Me e janela e ele salta sobre a esse formulário. Então, se você não sabia disso ou aquele outro quarto então se você não conhecia aquele tubarão ou não, você faz, então o que eu quero fazer é deixar aqui não me permite saber no norte que há, ah propriedade ou dar-lhe uma propriedade fora do tipo de registro e Vou chamá-lo de sublinhado Log in. Tudo bem, mas eu também vou criar outro construtor. Soc! Passe-me. Use meus atalhos aqui em então, esta janela principal, este outro construtor outro vai assumir um objeto chamado Le Guin Onda. Então, o que este vai fazer depois de inicializar componentes, lembre-se, você sempre tem que inicializar componente, mas então você é ele também vai inicializar minha propriedade de login local e privado que eu apenas criado. Ele vai inicializá-lo para o valor que está vindo sobre o construtor que está sendo inicializado aqui. Tudo bem, então mais uma vez, o que isso me permite saber é que jogar o resto do tribunal quer que este construtor seja usado. Então eu tenho acesso à propriedade, sublinhar o login. Então eu posso fazer o que eu quiser com o registro. Tudo bem, então tudo o que eu vou fazer sabe disso. Diga isso eu e janela. Então eu só mencionei o meu projetado para mim e janela, e então eu vou dizer a eles, e nós sabemos que eu queria ter um evento de encerramento direitos. No entanto, não colocamos um carregamento Eventos. Não, isso é bom. Mas então eu quero dizer que quando você estiver fechando, eu vou olhar com muito cuidado para o evento de encerramento. Certo? Um parafuso muito para baixo. Lá está ele. Formulários de fechamento. Você tem formulário fechado em seu formulário. Fechando à direita. Alguém que diga que quando estiver fechando, quero que faça algo. Então eu fui para clicar duas vezes nesse espaço e obter o evento de fechamento do formulário. Então tudo o que eu vou dizer é que quando você está fechando, eu quero que você diga ao log in objeto ou o log informe que, você sabe, chamado você inicialmente e passou sobre si mesmo em sua pontuação para que você saiba sobre ele. Diga para fechar. Tudo bem. Então o que vai acontecer é que quando a janela de carga vai me lançar e janela . Ele vai passar por cima de um objeto fora de si mesmo para a janela média quando a janela principal lança janela principal terá sido lançado com conhecimento fora desta janela de log, e ele estaria fazendo o que ele precisa fazer com todas as crianças estão operando, O que quer que esteja a fazer, está a fazer. Mas então, fora do dia em que está fechando, ele vai dizer, Bem, Bem, quando eu estou fechando, eu quero que você feche para que você faça login na janela, você fecha enquanto eu estou fechando. Então todo mundo está feliz, então vamos testar e ver se isso funciona. Então, quando eu clicar em iniciar, então eu faço login. Tudo bem, então temos uma janela má e sabemos que podemos fazer o que quisermos em mim e na janela. Mas, em seguida, quando clicamos, feche-me e janela, em seguida, as expectativas de que ele fecha a tela de login. Também no estúdio visual saindo de barco ancorado é a prova de que nosso cabo funcionou são assim quando isso é uma maneira de configurar um log informado. Eu não estou dizendo que essa é a maneira que eu fiz isso em algumas maneiras antes, mas essa é certamente uma maneira que você poderia usar e eu acho que esta foi a mais simples para mostrar. Alguém está se acostumando a ganhar formulários. Mas, você sabe, algumas pessoas realmente lançá-lo como o MD I criança em. Então você sabe, você entra no aplicativo, mas depois de fazer login no proto prossiga para obter acesso ao outro Windows e outras muitas opções . Você tem várias maneiras de implementar esse tipo fora de fluxo entre seus formulários. Não voltaremos ao nosso diário informado. Há outra grande modificação que temos que atender nosso aplicativo para torná-lo realmente seguro, porque o fato é que se alguém tem acesso a este banco de dados e olha e vê admin na palavra senha, Está tudo em palhaçadas. Você nunca quer armazenar nomes de usuário. O que? Desculpe, Você nunca quer armazenar senhas em texto sem formatação. Você sempre quer fazer o que você chama de criptografia. Então precisamos criptografar nossa senha para ter certeza que se alguém obtiver acesso ao banco de dados por qualquer meio mesmo que estivesse andando por cima do seu ombro no escritório quando você estava fazendo esse trabalho ter certeza que se alguém obtiver acesso ao banco de dados por qualquer meio mesmo que estivesse andando por cima do seu ombro no escritório quando você estava fazendo esse trabalho que eles não seriam capazes de decifrar relógio que a senha é. Então, a fim de fazer criptografia, precisamos obter a ajuda de algumas bibliotecas de terceiros. O número deles fora dos algoritmos de criptografia lá fora, você disparou 256 Você tem um “deve”. Você tem MD 5. Você poderia ir pesquisá-los. Hum, mas eu vou ajudá-lo a conseguir algumas ferramentas, conseguir alguma ajuda para este projeto. Então podemos fazer alguma encriptação juntos. Então o que queremos fazer é ir para a solução. Explorador, certo? Clique ou projete em. Então nós vamos estar usando novo get Monnet Package Manager são assim que isso vai nos seguir toe bro em open source tipo fora do mercado para ver o que podemos obter para nos ajudar ao longo do caminho. Então eu vou, mano. Irmão está instalado e atualiza. Você viu que tinha a estrutura de entidade instalada. Que é o que nos permite fazer link e interagir com nosso banco de dados. O que? O que eu realmente estou interessado é em um desvio para que eu possa procurar por criptografia. Tudo bem. A encriptação não me mostrou nada. Vamos tentar a segurança. Então, às vezes, você vem aqui e não sabe exatamente o que está procurando . Porque há tantas bibliotecas para escolher. Mas o que eu realmente estou procurando é algo sobre segurança sobre o que eu gostaria. Então você vê que você tem alguns aqui que você tem, irmã. Eu pensei que eu apenas citar a Microsoft que nets que a segurança sabe o nosso próprio no que eu estou interessado, que é o sistema que a criptografia de pontos de segurança, não algoritmo. Então, se você olhar para a direita, você vê uma bela descrição sobre todas as ofertas de testes. Eu sinto muito. Pés parecem pequenos na minha tela, mas espero que o seu ponto de vista em sua tela e é mais claro. Mas eles você vê que eles têm um SRS, atia cada marca MD cinco em um monte de outros são então você pode realmente apenas clicar sobre este , seguida,o terrível curso fora que você quer ter certeza de que você está usando a sua editora segura ah para que não fique muito mais seguro do que a Microsoft. Os editores dizem que você vê pela Microsoft à direita do título real. E se você vir a Microsoft e puder confiar nela, verá outros grandes nomes em que você pode confiar. Mas então a coisa é que certas pessoas sentam e encontram essas bibliotecas em DNA, não as desacreditando nem nada. Mas nem todo mundo tem. Seus melhores interesses estão cansados. Alguns fora, mais malicioso. Por mais que me apanhes, tenta eliminar os maliciosos. Eles dizem que não são responsáveis por nada que possa acontecer com você ou seu produto. E se você não carregar nada deles? Certo. Então você quer usar este para que você possa clicar neste Clique nesta pequena seta preta para a direita, ou você pode apenas clicar em instalar em. Então você pode dar-lhe algum tempo, saber onde ele vai para a frente para reunir todos. Dependência é que ele pode usar mais de uma biblioteca no dia. Não vai ser pouco chamado D L L, que são como pacotes que têm um monte fora da biblioteca. Então, você sabe, toda vez que escrevemos uma aula, eu diria que usar isso são traficantes reais. As bibliotecas estão cheias de fotos telefônicas, certo? Então é só baixar um monte de bibliotecas. Eles podem apenas dizer que eu aceito e permitir que ele não faça Senhor tantos como ele me Neto. Então, vamos dar algum tempo. E então, quando terminar, se você passar para o Explorador de soluções em referências suspensas, você verá um monte de novas referências. Você provavelmente não fez isso antes, então você pode observar o estado do fato de que eu tenho sistema que sistema de segurança que o ponto criptografia de segurança algoritma qualquer um de outros. Você também verá a estrutura de entidade, as que foram adicionadas quando adicionamos nosso diagrama e DMX assim por diante. Então é isso que você obtém que traz para a mesa Tello você apenas instalar uma viúva pacote indo e buscá-los de toda a Internet e tentando injetá-los em seu projeto manualmente. Tudo bem, então saiba que eu adicionei esses algoritmos. É hora de realmente colocar um para usar. Tudo bem, então eu vou usar o Shah 256 Eu acho que é um bom, bom e seguro. Então eu vou te explicar exatamente o que precisa ser feito para que ele seja criptografado. Então, em primeiro lugar, você sempre deseja criptografar sua senha. Um peso, o que significa que você criptografar sua senha para um armazenamento nunca está descriptografando sua postura para comparação. Então isso significa que se eu estou criando um direito de usuário, se eu tiver um formulário, você sabe, como quando você se inscrever para qualquer coisa na Internet e colocar em um usá-lo em você teria digitar sua senha em texto simples, porque você o digita da maneira que sabe para soletrar ao clicar em Enviar. O que acontece é que esse sistema vai pegar essa senha e criptografar e salvá-la. Agora, depois disso, cada vez que você tentar fazer login, ele vai levar o que você colocar no campo de senha em, em seguida, criptografado em, em seguida, comparar esta criptografia com a criptografia armazenada, ele nunca vai pegar a criptografia armazenada e tentar descriptografá-lo demais contra seu texto simples. Tudo bem, acho que fez sentido. Então você sempre criptografa de uma maneira. Então, o que precisamos fazer aqui é criptografar a senha que está sendo fornecida em. Em seguida, compare-o com o bem, o pastor que está sendo armazenado. Portanto, há duas coisas que precisamos corrigir a criptografia de um dia para a comparação e a senha real que está sendo armazenada. Temos de modificar isso também. Então, em primeiro lugar, vou declarar uma variável ou um objeto em vez disso. Isso vai ser fora do tipo Shah 256 Agora tiro 256 na linha vermelha vai aparecer porque então ele não reconhece isso e eu vou apenas chamá-lo Shot é igual toe sha 256 ponto cria Redlands Galore Vamos ver o que as linhas vermelhas têm que ver. Então, se eu passar o mouse sobre a linha vermelha ou a linha com uma linha vermelha o mundo com a linha vermelha, ele vai me dizer Dê-me a lâmpada. Mas vou dizer que preciso incluir o uso desta biblioteca. Veja, eu preciso dessa declaração. Então, se eu clicar que seguir as diretrizes, então tudo é azul. Sei que parece mais aceitável. Então eu preciso incluir essa biblioteca de acesso ao algoritmo de criptografia capaz de usar. Então, tendo feito referência ao tiro para 56 em, em seguida, obter o nome de usuário e senha de nossa caixa de texto, a próxima coisa que eu quero fazer é calcular Ah silêncio. Então eu vou converter a corda de entrada do dedo do pé abaya Atari em calcular o silêncio. Então eu estou recebendo a senha do valor. Estou passando para o silêncio computacional do ponto de tiro, o que não faz em gravar sobre ele. Então converte em uma mordida, Ari. Então, em C afiado, isso é o que urinário único em. Então. Esse é o tipo de dados na variável é chamado de dados. Tudo bem. Tendo feito isso, precisamos construir uma corda. Então, primeiro, há necessidade de declarar um objeto construtor de cordas, certo, que eu possa coletar as mordidas e criar uma string com ele ligado. Então, depois de eu fazer esse construtor de cordas, eu vou usar um for loop aan den construir que string usando os diferentes pontos de dados da mordida. Apresse-se. Muito bem, deixa-me passar por isto outra vez. Estou convertendo tudo, convertendo a corda em uma mordida, Ari, certo? Chamou dados. Então eu estou apenas declarando um objeto construtor de cordas para que eu possa usá-lo ainda mais dentro de um loop de quatro onde eu estou dizendo, me dê I igual a zero. Os olhos devem correr até o comprimento da área de mordida de dados. Seja qual for a lente que veio até, incremente em conformidade. Então eu estou vendo um construtor de cordas apenas anexar cada assinante na minha mordida, Ari, enquanto converte para corda tudo bem. Depois de fazer tudo isso, eu vou então atribuir o valor a uma senha ou a uma variável chamada senha hash Coração. Então construtor de cordas, Doutor String. Estou agitando como pastores e terminando esta operação. Seja o que for, você mudou você digitar Desculpe em, como a senha teria sido completamente alterada até o final desta operação em algo que você pode não reconhecer, Eu digo que eu, e eu reconhecer que eu realmente deveria dizer não deve reconhecer. Então eu só quero definir um ponto de ruptura bem aqui na linha onde eu tentei buscar o usuário em ir para mostrar-lhe exatamente em que a palavra é transformada. Tudo bem, então eu digitei a senha de administrador em estavam no ponto de interrupção. Então, primeiro, deixe-me mostrar a vocês o texto que eu digitei teria a senha do bean direita, em seguida, o texto. Isso não é silencioso se parece com isso. Não, esta não é a palavra senha. Bem, é realmente a palavra senha. E é assim que deve parecer em nosso banco de dados de tal forma que se alguém aparecer e ver no banco de dados, não há como eles serem capazes de me dizer que esta é a palavra senha, certo? E se eu continuar com o tribunal onde eu não sou ninguém para olhar no banco de dados, bem, isso vai continuar porque ele ainda está procurando apenas parar a execução. Então o que? Eu realmente deveria estar comparando o que está no banco de dados com é o valor que está em senha silenciada e não senha. Não, se eu rodar isso de novo, certo, e eu estou apenas removendo o ponto de ruptura. Então, se eu executar isso novamente e tentar fazer login e eu estou tentando comparar a postura no banco de dados, que é distorcida pastured com a senha silenciada, então será uma falta muito porque nossos bancos de dados armazenam a palavra senha em senha hash não se parece nada com a palavra senha. Então isso me diz que a senha hash é o que realmente deveria estar no banco de dados. Então eu só clique em começar de novo e dirigir esse ponto para casa rapidamente. Tudo bem, então tente administrador e senha, e eu clico em login. Em seguida, o que você vai fazer é tentar comparar a senha silenciada com senha, e você vê estes fornecer credenciais válidas são. Ok, então se eu colocar ah, ponto de ruptura aqui novamente em então eu tentar este login e eu estou fazendo isso só para que eu possa obter uma espera fora do valor que está em transeunte silenciado. Então eu quero tudo fora deste volume, excluindo as aspas fora do curso. Vou copiar isto e depois vou fazer batota um pouco. Eu quero ir para o meu banco de dados e eu vou colocar essa senha hash como o valor. Certo, então essa é uma das razões pelas quais eu disse que a senha empresta 100 vartas são 100 não Varta são 50. Porque isso é o que um passe ou é suposto parecer em seu banco de dados. Ninguém deve ser capaz de olhar na base de dados NC que o administrador detecta. Palavra é a palavra senha. Deixe-os C cinco e 888 Sim, blá, blá, Andi. Se eles tomaram tempo para memorizar tudo isso, eles precisam de uma vida realmente boa em descriptografar. Não será a coisa mais fácil do mundo também. Então vamos direto de novo. Então saiba que eu mudei isso no banco de dados antes da comparação ser feita. Quando ele faz a comparação em, provavelmente continuar. Então deve prosseguir. Tudo bem, então vamos tentar isso mais uma vez só para ter certeza de que tudo está bem. Então, eu vou dar o pé mais uma vez. Comece em. Então isso vai iniciar minha tela de login, que vai me pedir para inserir meu nome de usuário e senha. Então meu nome de usuário é a palavra que eu quero dizer na minha senha é a palavra senha. Veja, é isso que eles estão datilografados. Clique em log-in e, em seguida, os ocultos que pastore o compara com o que está no banco de dados percebe que as duas palavras hash para ser o mesmo em. Então prossegue. Então, se eu cometer um erro ortográfico dentro da minha senha, então o hash vai ser diferente, e não é válido, tudo bem, então fora do curso, ao criar usuários, se você acordar, deseja estender essa função que você conhece e colocar em alguns recursos de gerenciamento de usuários neste aplicativo. Quando você estiver criando o usuário, se você estiver sentado no passador, apenas certifique-se de que você seguirá estas etapas. Este algoritmo onde você declara o algoritmo que você está usando um. Andi, tente usar um algoritmo. Aplicação de garganta. Você não usa MD 5 aqui e mostra ali porque os hashes vão parecer diferentes. E você, eu tenho problemas, certo? Então sempre use um algoritmo de hash. Então você cria sua mordida, Ari. E então você reconstrói essa corda com base nas diferentes partes que entraram na área de mordida . Em seguida, você usa a senha silenciada. Depois disso, para todas as outras operações em, essa é uma maneira rápida de adicionar alguma funcionalidade de login ao seu aplicativo. 33. Recursos de controle baseado em funções de usuário: Ei, pessoal, neste vídeo, nós vamos começar a olhar para a criação de funcionalidades que nos ajudarão a gerenciar nossos usuários agora até não, nós teríamos citado duro um usuário. Chamamos de administrador, e codificamos a senha. Mas, na realidade, não vamos esperar que cada vez que temos um usuário ou quando temos vários usuários ou aplicativo que o usuário tem sido difícil de trazer o banco de dados e codificado em, encontrar a versão hashing fora da senha. Como o que fizemos em colocar isso manualmente. Essa não é a realidade. O que queremos fazer é criar uma interface onde o usuário pode clicar. De preferência, o usuário administrador, é claro, pode clicar em usuários de dinheiro obter uma janela de gerenciamento semelhante que fizemos para listagem de veículos e para registros inter um que lista classificar os usuários no banco de dados que gostaria de exibir seus pastores fora do curso em forca eles para talvez o usuário ativador versus adicionar outro usuário em talvez redefinir uma senha ou algo assim. Então essas são as funcionalidades que gostaríamos de colocar com base no que está na tela No entanto, eu já modifiquei meu dedo principal da janela. Faça com que o botão gerencie os usuários. Andi, eu já criei o novo formulário Money Juicer. Então você pode pausar o vídeo aqui mesmo em ir em frente nesta nova opção de menu no novo formulário e escrever o código que iria iniciar a janela. Você pode pausar um vídeo. Experimente você mesmo. O que ainda vou passar e mostrar-te exactamente o que fiz. Então, no design da janela principal, acabei de adicionar uma nova opção. Gerenciar usuários. Eu não coloquei nada debaixo dele porque eu quero que esta opção apenas venha com o nosso quando clicado, em vez de criar a nova janela para gerenciar o usuário. Então eu adicionei aquele novo item de menu e que eu cliquei duas vezes nele para nos dar o evento clique em. Então, no caso dos truques, eu fiz a coisa de sempre. Você pode até olhar para o código anterior que nós escrevemos. Eu não coloquei o cheque para ver se a janela já está aberta, então eu posso colocar o cheque só para ter certeza de que ele não vai lançar duas vezes. Tudo bem, então eu estou checando se ele está aberto e eu estou verificando. Se gerenciar usuários está aberto, em seguida, se ele não está aberto Desculpe, Então você pode iniciar para que vamos obter uma instância fora. Gerenciar usuários. Eu já passei e fiz o novo formulário. E lembre-se de adicionar um formulário que você vai para a solução expirar Clique com o botão direito do mouse que você diz adicionar. Em seguida, selecione o formulário em. Então vá em frente neste novo formulário para o seu projeto. Eu chamei isso de Gerenciar usuários. Se você quiser mudá-los, tudo bem, desde que você saiba o nome que você usou e que o nome é relevante. Eu só vou fazer algumas mudanças cosméticas porque você pode ver que o título da janela é feito bem. Eu não mudei. Alguns com a mudança, o texto para gerenciar o usuário espaço. Por isso, é mais legível, mais fácil de usar em sua aparência aan den. Neste formulário, vamos ter praticamente a mesma coisa que tínhamos outra forma. Então eu só volto para gerenciar, talvez gerenciar a listagem de veículos que desenham nossos registros inteiros, qualquer que seja porque queremos ter o mesmo tipo de pregos. Nós temos essa nota. Posso remover esse botão de atualização, mas só para não, teremos o rótulo, o botão de atualização, a nota em todos os botões. Vou copiar todos esses controles, depois para a minha nova janela. Gerenciar usuários em paz eles em, em seguida, expandir a janela tanto quanto eu preciso dedo do pé, facilitá-lo. Esses novos controles. Faça isso rápido. Tudo bem, eu os reorganizo e então deixe-me mudar o texto aqui da gerência. Nossos registros gerenciam usuários. E então porque eu estou reutilizando o pontuado, claro que os nomes, o que é apresentado em cada botão ganhou o texto andan para os nomes precisam ser alterados. Então este precisa dizer, Adicionar novo usuário em vez disso, off record direito em. Então eu vou mudar o nome do botão de bater recorde para bater dentro. Adicionar usuário alguém para passar e fazer isso para cada fora dos botões. Então deixe-me fazê-las rapidamente enquanto estiver na tela. Então isso é editar registro em, então isso vai ser batido em seu usuário ou, você sabe o que? Para atitudes lá, eu só vou dizer redefinir senha. Então nós estamos mudando isso para insanidade de qualquer coisa que o usuário redefinir porque, hum, para o propósito desta função ou deste aplicativo bastante bem, você só quer que o usuário admin seja capaz de redefinir. Ah, senha de usuários. Essa é a única coisa entre aspas, que deve ser capaz de acontecer. Então eu vou mudar o dedo principal, o usuário ativo. Então, em vez de excluir usuário, vamos fazer o ativo na verdade exatamente como podemos facilitar a ativação versus exclusão. Então Bt no usuário ativar, tudo bem, eles sabem que nós mudamos aqueles velhos eu posso apenas fazer o meu truque. Os eventos são apenas clique duas vezes em cada botão para obter esses eventos rápidos e as roupas que conhecemos para. Não, eu não preciso disso. Clique em redefinir senha no usuário ativo. Tudo bem, então agora que fizemos essas coisas cosméticas no formulário, eu também quero fazer algumas alterações na tabela do banco de dados. Então eu trouxe o meu estúdio de gerenciamento Estúdio de gerenciamento da escola, logado na minha instância, entrei no meu banco de dados, que está atualmente ligado. Em seguida, direito clicou minha tabela que disse em e escolheu design. Desculpe. Então agora eu estou no projeto fora do estábulo do usuário e eu vou fazer Ah, algumas modificações. Bem, uma modificação realmente está em andamento. Isso é para uma certa bandeira ativa. Então o que vou fazer aqui é ver que está ativo, certo? E então, com base na convenção de nomenclatura que eu tenho usado até este ponto, sempre que você vê é algo que sou eu dizendo que eu quero um ouro em barras SQL será vencido . Então o tempo de dados para barras aqui é pouco. E então isso vai dizer, a pessoa está ativa sim ou não? Então, se é verdade, então os ativistas dessa pessoa, se é tão longe como uma pessoa não está ativa, eu não vou sozinho. Oh, aqui também. Mas então pode haver que eu vou receber um erro se eu tentar salvar enquanto não permitir sabe sozinho. Oh, e salve e então eu vou voltar e fazer uma modificação. A razão para a era seria que eu já tenho um usuário que não tem nenhum dado para isso. Então, se eu escolhi não sozinho oh, então teria sido um problema, porque então eu já tenho um registro que não tem Então, então seria um tipo de dados ou incompatibilidade restrição. Certo. Então, seguindo em frente, eu tenho o usuário ligado. Vou adicionar outra mesa em algum lugar diretamente. Tabelas vão para novo ir para a mesa em então. Este eu vou chamar regras de alguém para eu ter em. Então esta vai ser a nossa chave primária, que é a identidade. Então ele incrementa automaticamente. Então eu vou ter um nome só vai ser via piche 50. Então o nome aqui representa o nome fora das regras. Então, quando falamos sobre regras e receber a tabela e eu vou ver regras então falamos sobre regras , isso significa que o papel que este usuário alega nesta aplicação? Esta pessoa é Adminis? Esta pessoa pode ser um funcionário de entrada de dados. Esta pessoa pode ser apenas um supervisor, sabe? E então, com base na regra que eles jogam, podemos determinar qual funcionalidade eles têm acesso ou quais ações podem ser concluídas . Certo, então tenho usuários sobre os quais tenho regras. Então eu tenho que ter outra tabela que liga as ferramentas alguém para criar outra tabela em. Então eu vou dar isso em um I D em, então este vai ser o auto incriminador I d. Sobre isso vai realmente ser o que chamamos de uma tabela de vinculação porque nós vamos fazer um muitos para muitos significando que muitos usuários podem ter muitos muitos regras de alguém para ter um usuário, i d. E então isso vai ser int. E então eu fui para ter um papel i d, que também está em Tudo bem, Então isso significa que qualquer usuário agora tem admin e que os usuários admin um i d off um em. Então vamos mandar para as regras. Vou ter admitido que vou ter utilizadores. Então você tem um amplificador ad mineral uma função de usuário regular está sendo tomada de 31 para supervisores, qualquer que seja o caso. Mas o ponto é que quando um eu usuário, com o que eu d é atribuído, estão no registro, vai para este irmão estadia com ah idéia de usuário artigo em um papel particular, eu d. Isso é associação entre esse usuário específico nessa função específica. Tudo bem, então eu vou salvar este estábulo, chamado suas regras de usuário. Em seguida, vou ter que criar uma relação entre a função de usuário estável e as outras duas tabelas. Então, porque eu tenho usuário I d. Isso é uma chave estrangeira para os estábulos do usuário depois ir clique com o botão direito. Desculpe, esse tipo de cota se limitou de novo? Depois de clicar com o botão direito na visualização de design, em seguida, ir para relacionamentos e, em seguida , bem, ele estaria em branco. Então eu clico, Adicionar, então eu vou escolher as tabelas e colunas especificações. Clique nesta reticências de baixo para a direita dentro em. Então eu vou dizer que minha tabela de chave primária é o usuário estável em. Quero ligar para ele desta mesa primária. Então eu quero ligá-lo para a chave estrangeira chamada User I D. Então isso cria essa restrição lá em. Então farei a mesma coisa. Basta clicar em adicionar, criar outro usando as elipses. Em seguida, este irá antes que as funções estável com o I D está conectado à coluna de função I D no usuário ou estável. Em seguida, clique em OK clique pisos e, em seguida, eu posso salvar e, em seguida, vai demorar um pouco. Então ele vai se certificar de que eu sei que eu estou prestes a modificar essas três tabelas que eu posso clicar . Sim, tudo bem. E uma vez que essas mudanças são salvas e nós podemos ir ambos colocando em algum dinheiro enquanto mudanças. Então o fato é que esse aplicativo é seu. Você sempre pode criar suas próprias telas de gerenciamento. Para quê? Sobre dados. É como temos feito até agora. Fizemos isso para a gestão do carro, registros inteiros. Fizemos isso para a gestão dos carros. Podemos fazer isso pelos usuários. Cabe a você saber o quão granular você quer chegar a isso. Porque então algumas pessoas permitem que você crie seus próprios papéis na parte de trás e bem no próprio aplicativo em. Em seguida, eles permitem que você atribua usuários às diferentes regras para si mesmo. Certo? Então eu vou te mostrar como fazer a tarefa. Mas então, usando os mesmos princípios, se quiser, você pode permitir que eles criem as regras no próprio aplicativo. Mas para este curso, eu vou apenas fazê-lo manualmente. Então eu adoraria por você ter feito isso no aplicativo. Esse é o meu desafio para você que compartilhe seus aposentos. Quero dizer, eu adoraria ver como é que você conseguiu. Nós podemos, você sabe, aprender juntos. Mas para não, eu vou fazer isso manualmente. Então, tudo bem, clique em papéis. Vá para Editar Top 200. Agora eu sei que eu só quero subir na minha candidatura. Você pode estar construindo o pedido deles para, ah, contexto maior no meu. Masnesse contexto, nesse contexto, só quero um administrador. Ou então eu posso ter um usuário administrador ou muitos usuários administradores que você deseja fora do curso, você sabe, ter cuidado com isso. Eu vou ter ah, entrada de dados. O Clark. Tudo bem. Por uma questão de fato, eu vou estender esta mesa um pouco e eu vou colocar em outra coluna, então eu só tenho nome na identidade. identidade Deixe-me voltar para o projeto e eu vou colocar em nome curto. Tudo bem, alguém para colocar em nome curto neste também será Environ. Char 50 pode ser var char 50 tipos de dados muito, muito semelhantes, mas é convidar o nosso de nosso rebaixado muito semelhante por isso é OK se você tivesse qualquer um. Tudo bem, então quatro regras. Deixe-me voltar a isto. Então deixe-me apenas fechar esta visão de design, voltar a papéis nela. Top 200 em, então para os nomes curtos que eu vou colocar em como um nome de tubarão cortado. Então, literalmente, tem o nome administrar. Ou, então, o nome curto poderia ser adicionar, um, um, o nome da camisa para secretário de entrada de dados. Pode ser só o Clark. Então talvez você tenha apenas você para que essa pessoa não tenha qualquer acesso para realmente alterar dados para realmente clicar, adicionar ou excluir ou editar ou qualquer coisa assim. Então só visualização só será capaz de clicar em ver os dados que estão integrados, certo? Então eu só te salvei. Certo, então nós temos os nomes dos papéis, e então nós temos os nomes curtos e você verá a relevância dos nomes curtos em poucos . Então essas são as minhas regras. Tudo bem, Onda, eu vou fazer mais uma adição manual aqui, então eu estou fazendo essas adições manuais porque eu já tenho os dados, e eu quero mostrar a vocês como eles vão funcionar antes de começarmos a construir. Você disse certo Então o usuário i d aqui seria o usuário i d para o usuário existente, que me permite apenas confirmar o que é isso. Então, se eu selecionar upto desculpe, toe top 1000 linhas então eu vejo o meu único usuário admin e o i d aqui é um que eu vejo é ativismo Nall Tudo bem, então o usuário i d aqui é um em seguida o papel i d para administrador apenas ainda superou 1000 novamente seria um. Então isso significa que em regras de usuário usuário i d um tem papel i d um em eu apenas mudei mentir toe Compromete isso em. Então sabemos que o nosso usuário todo o nosso admin está no usuário ou administrador com um nome curto admin Agora que fizemos essas modificações 01 mais modificação. O meu corpo. Eu pulei essa parte. Preciso avisar o usuário administrador que ele está ativo. Certo? Então eu estou indo apenas para o botão direito usuários ir para qualquer top 200 rosa em, em seguida, mudar é dedo ativo um direito. Então um ou zero no banco de dados. Se você disser um, é verdade. Se você disser zero, é “cai “, certo? Então será sempre a verdade. Você pode escrever a palavra Suri pode apenas atribuir o valor um na praia vai saber automaticamente o que é através de nossas quedas. Tudo bem, então o usuário administrador do usuário está ativo, então vamos minimizar parte. E então em nosso projeto, precisamos atualizar nossos diagramas de contexto de dados. Então eu preciso ir para o meu diagrama E DMX, e então nós vemos todas as três tabelas que deixamos aqui com, mas precisamos fazer algumas modificações. Então eu não fiz nenhuma modificação desses dois. Não vou deletar isso. O que? Uma vez que eu fiz uma modificação dedo bem, o que eu fiz um dedo modificação seria usuário. Então eu estou apenas removendo usuários que clicou nele e e pressione delete no meu teclado está confirmando. Eu digo, sim, eu quero apagá-lo. Então eu vou clicar com o botão direito do mouse em, em seguida, atualizar modelo do banco de dados, que é, em seguida, vai me pedir. Você deseja adicionar novas tabelas, entender para clicar tabelas e adicionou algumas tabelas apenas saber e, em seguida, clique em Concluir em, dar-lhe algum tempo em uma vez que a operação é concluída, em seguida, você vai ver suas novas tabelas aparecendo. Então eu criei três. Bem, duas mesas novas e carne e eu só queria usar a mesa. E você vê os relacionamentos que existem para que tanto usuário e rolou I relacionados à tabela de função de usuário . Eu sei que tenho a capacidade de determinar em que papel o usuário está no momento do carregamento. Eu preciso ser capaz de ver o que governou esta pessoa não é assim no momento em que eu confirmei a pessoa. Então sabemos que temos nosso formulário de registro que lida com essa lógica assim que eu encontrá-lo. Aqui está o meu registo, certo? Então, sabemos que no evento clique botão onde dissemos arrastar fizemos aquele computador silencioso o áspero e, em seguida, foi em frente e disse, Tire-nos o usuário. O usuário está ligado? Então o usuário teria dito que sim não há direito. Então, quando eles disseram sim, então nós teríamos chamado uma janela de 1.000.000 passando em uma instância, fora da janela italiana, etc. Não, precisamos estender essa funcionalidade porque não, eu preciso saber em que função esse usuário está. Certo, então eu já tenho o objeto do usuário, certo? Já conhece o objeto de usuário. Mas lembre-se que eu tinha dito que uma vez que você obtém o objeto do usuário ou uma vez que você obtém um objeto do banco de dados, você pode realmente acessar os dados relacionados diretamente deste objeto, então eu posso realmente declarar uma variável aqui e salvar nosso função. Muito bem, papel é igual a. E então eu posso dizer usuário, porque eu só tenho usuário aqui, então e se é no outro que significa que o usuário não é conhecido. Então isso significa que o usuário presumivelmente terá o nosso papel. Estou gravando a tabela de função de usuário. Então, se eu disser usuário ponto então você vai notar que eu tenho acesso dedo do pé Oh, meus amigos, eu quebrei minha própria regra. Toda vez que você fizer em atualização para o seu diagrama, você deve construir isso. Eu pulei esse passo para que você possa ver os efeitos colaterais disso. Estou feliz por isso ter acontecido. Então, quando eu digitar esse acorde, deixe-me desfazer e voltar. Então, quando você falhar, construir nosso campo para atualizar o diagrama e seu editor no tribunal, você verá que o tribunal pode não refletir as mudanças. Então lembre-se que nós tínhamos adicionado pelo menos um você coluna dedo sobre tabela usuário disse. Quero dizer, seu objeto de usuário deve ter acesso a sua nova coluna, pelo menos então ainda estamos vendo as mesmas três colunas que tínhamos antes de alterarmos o banco de dados antes de atualizarmos nosso diagrama tudo porque você não construiu. Então o que eu vou fazer é comentar fora desta linha em, em seguida, fazer mudança de controle e estar em baixo O projeto para reconstruir todos os direitos ou construir está concluída. E deixe-me apenas descomprometido esta linha e, em seguida, controle e mudança após a parada completa só para ver em. Lá vamos nós. Então nós estamos vendo aqui eu d. arrependimento ativo da Addie é o nome de usuário da senha ativa, e eles estavam vendo regras de usuário. Então essa é a nossa relação, certo? Então lembre-se, eu disse que uma vez que algo está relacionado com a nossa chave estrangeira ah para tabelas em outra tabela, então podemos acessar automaticamente a lista. Tudo bem, então para informações de carros, o registro de aluguel está associado a um carro, mas um carro está associado a muitos registros, então se você tem objetos de carro, então você pode ver todos os registros que estão associado a ele. Então, neste caso, temos o usuário, e podemos ver as regras que esse usuário pode ter. Então pode ser uma situação em que você tem várias regras. Você tem vários usuários. Um usuário pode ter muitas regras. Essa é a situação que facilitamos em nosso projeto de banco de dados. Uma maneira mais simples de fazer isso poderia ter sido apenas adicionar papel. um Eu passoumnome para o usuário, mas isso é um pouco limitante, porque se você modificar a regra ou quiser uma nova função, então você terá que passar por cada usuário com essa regra e fazer um modificação, certo? Então, se tivermos essa tabela de vinculação, então é mais fácil gerenciar as diferentes regras, os diferentes usuários em que regra esse usuário pode ter. Mas dentro do contexto, só temos um usuário Roper. Mesmo que estejamos facilitando que eu uso, ele pode ter várias regras em nosso contexto. Nesta aplicação foram apenas facilitando uma regra. O usuário dela. Tudo bem, então eu posso dizer médico usuário, e então eu estou recebendo regras de usuário. Mas eu só quero a uma regra que essa pessoa tem segundo um cofre encaixado, em seguida, use o link para obter a primeira regra ou padrão que é associado ID com este usuário. Então, primeiro ou padrão Não, eu não preciso de um Lambda. Expressões aparecem Eu uso expressão de alumni porque em uma condição em que eu quero o primeiro ou eu queria o primeiro registro que atendeu esta instituição condição. Não tenho nenhuma condição. Eu só quero o primeiro 1 Então eu estou dizendo, me dê o usuário na lista. Cita tio, lista a Rose e dá-me o 1º 1, porque sabemos que só temos uma regra. De qualquer forma, quando tivermos o 1º 1, então teremos o papel único. Tudo bem, então isso é um bom rápido para apenas obter o único papel que este usuário tem. E isso é incorporado no objeto chamado papel. Tudo bem? - Não. Quando olhamos para o papel, ele vai ser fora do tipo regras de usuário. Então eu posso usar rolar, dizer ponto e eu posso obter os detalhes sobre o papel são os detalhes sobre o usuário que este registro está associado com o segundo ver, rolar esse rolo e então eu posso obter o nome ou o nome do tubarão e a razão que eu criou nomes curtos que era muito mais fácil verificar o nome do tubarão do que os nomes. O nome é o belo título oficial. Melhorar a legibilidade sobre o nome do tubarão é o que nós os programadores usaremos em segundo plano. Tudo bem, então saiba que eu tenho o papel que este usuário que está prestes a entrar ou que acabou amar ser agora que eu sei o papel que eles têm Tudo bem, o que eu vou fazer é passar o poço. Deixe-me dizer que eu só quero o nome do tubarão, então eu não quero o objeto da regra inteira. Eu quero o encurtamento, então eu só vou salvar nosso nome Roland é igual no dedo do pé. Então coloque a regra da mesa e veja? De novo, não. E, em seguida, obter nome afiado. Tudo bem, então. Estou passando esse nome curto no reboque, então comece o nome. Oh, desculpe. Estou passando Rolling no meu corpo. Não sei se um nome de passagem, então estou bem. Deixe-me você saber só porque eu me confundi de repente apenas ser claro. Função nome curto direito é igual a rolar o nosso objeto de função que é regra de pontos de regra de usuários, que é o nosso ponto de tabela A coluna de nome curto em, em seguida, esta variável vai ser passado para a janela principal. Construtores e eu preciso modificar essa construção de um banheiro no controle e clicar nele salta para aquele construtor. Construtores e eu preciso modificar essa construção de um banheiro no controle e clicar Sabemos que é este que precisamos modificar alguns dizendo que você também pode aceitar uma string chamada roll Short Name. Tudo bem, então quando entrarmos, estamos lançando nosso meio quando eles estavam passando no objeto de registro, nosso também passando o nome da regra Schardt. Então, porque eu vou estar usando esse papel em todo o lugar e quando fazê-lo de forma semelhante a como eu fiz o login. Mas desta vez eu quero torná-lo público, alguém para dizer público em uma corda em. Então eu vou dar o nome do papel sublinhado. Tudo bem, então minha janela principal vai ter uma propriedade acessível publicamente chamada nome da função, que permitirá que qualquer janela que precise saber qual regra é a pessoa amorosa no momento certa. Então eu posso apenas colocar isso em, então eu vou inicializá-lo, então eu vou chamar esta linha Sublinhado. O nome antigo vai ter o valor fora da regra. Nome abreviado. Certo, então quero dizer, esse princípio pode ser usado em qualquer lugar. Então pode ser que você esteja passando e talvez dados do usuário porque você queria uma tela de boas-vindas ou, você sabe, você quer um pequeno comprador de tarefas no fundo para dizer quem é amado. Sabe, você poderia ter passado essa informação só para vê-lo de forma que eu pudesse realmente ter apenas possível todo o objeto do usuário na janela principal e então usar esses dados. Como eu precisava de tantas maneiras de você ter feito isso, certo? Mas agora, eu só estou interessado em saber o que aconteceu com a pessoa. Tudo bem, vamos, então podemos avançar com isso. Então, o papel da pessoa? Hum, não. Vamos fazer uma operação simples. Deixa-me mostrar-te exactamente porque é que precisamos de um nome e o que podemos restringir. E se alguém que não é administrador não deve ser capaz de clicar em gerenciar usuários e você pode simplesmente pensar sobre isso? Temos três usuários. Temos onde? Três anos de idade. Desculpe, temos administrador. Temos nosso administrador com funcionário de entrada de dados e temos você. Somente ninguém que não esteja na função de administrador deve ser capaz de vir e clicar em Gerenciar usuários. Ele não deve ser visível ou visível e inativo. Certo? Então, a melhor maneira de garantir que quando os senhores da janela conhecemos um mundo em que essa pessoa está, então dois nós determinamos o que eles podem e não podem fazer seria dizer, descarregar. Queremos-me estas decisões, certo? Então eu vou apenas criar ah forma evento lording no lado janelas médias escolta as propriedades ir para cima e aqui está, Senhor, Alguns apenas vai clicar duas vezes lá. Farei com que os homens vençam o evento do Senhor na janela principal. Evento do Senhor. Eu vou dizer se rolo nome curto é equivalente. E é por isso que eu disse que podemos usar o nome de tubarão Andi. Desculpe. Na verdade, têm o nome da função sublinhado. Então nome Rochard é exclusivo para apenas o construtor. Mas, em seguida, o resto do aplicativo foi sublinhado. Nome governante certo. Alguém para dizer se no nome do esquilo tem o r não é igual dedo do pé, admita deixe-me dizer, não é igual ao administrador. Portanto, não é igual ao administrador nome curto. Certo, então obviamente isso não seria tão bom se alguém fosse e atualizasse o nome do tubarão que iria quebrar tudo junto. Certo? Mas vamos trabalhar com isso para não. Então, se o nome da regra não é igual a adicionar média, então queremos tomar uma decisão. A decisão que deseja tomar é que o botão gerenciar usuários? Deixe-me achar o nome do carro. Então, na escola com as propriedades para esse botão ligado, vejo que o nome para este botão é gerenciar usuários para remover muitos itens. Eu posso copiar isso. Copie o nome. Então, se a regra não é igual a adicionar média, então eu quero dizer isso, controlado pelo seu nome dot enable é igual toe falls. Tudo bem, então você tem propriedades dessa forma para desativar seu Lembre-se, nós temos que visível também. Então, se você quisesse escondê-lo, você poderia dizer que visível é falso ou poderia dizer que permite que faras significando que eles verão o botão. Mas não é. Qualquer um pode clicar nele. Não posso interagir, mas deixe-me usar uma causa visível. Acho que é mais limpo em vez de ter certeza e então algo que não funciona. Vamos apenas esconder tudo junto para que eles nunca adivinhem que poderiam ter ou que essa funcionalidade existirá. Certo? Então eu estou dizendo que se a regra não é igual a adicionar média, então isso é falso. Tudo bem, então deixe-me clicar. Comece com isso. Teste isso. Tudo bem, então vemos que ainda vemos nossos usuários gerenciados e esperamos cartão. Então, quando o usuário que temos é o usuário administrador, Então, quando ele chegou a esta declaração quando ele estava carregando, você teria dito É o administrador da função? Se for, ou se não for admin. Desculpe, então vou mostrar. Então eu vou criar na mãe usuário. Isso não é um usuário administrador. Então este eu só vou dizer usuário assim e então eu estou indo toe usar a mesma senha em então isso vai dar maneira para que nós poderíamos copiar o passaporte primeiro, em seguida, ver a senha do usuário em está ativo é verdade. Tudo bem, vamos, então. Vou tentar de novo. Então deixe-me tentar fazer login com este novo usuário. Tudo bem? Então, estou fazendo login com a senha do usuário. Clique novamente em. Então disse que algo deu errado. Então vamos ver exatamente o que nosso erro Islâmico sobre para o meu lug no tribunal. Vamos ver se é algo, então é algo no evento clique. Permitam-me que coloque aqui esse ponto. Vamos tentar de novo. E depois chega ao silêncio da palavra passada. Tudo bem para mim. Passo usando F 11 e, em seguida, ele executa a consulta onde ele está vendo onde se o nome usuário é igual ao usuário na passagem ou é igual à senha hash. Bom, deixe-me passar de novo. Então ele diz, se o usuário é um corpulente na lei mais OK, então ele se moveu ao longo. Agora estamos pegando as regras. Suspeito que a minha era possa estar aqui. Então a regra veio porque não. Certo, é isso que está errado. Então eu fiz. O usuário e eu não definimos a gravação definir as regras do usuário, direito, e você pode ver mesmo se você passar o mouse sobre ele. No modo de depuração, essa conta é zero. Então isso foi um problema. Então deixe-me clicar. Continue, e ele vai. Então manipulação de exceção é por que não quebrou direito? Você disse que algo deu errado. Por favor, tente novamente em, então eu vou voltar para o meu banco de dados em di necessidade de adicionar o novo usuário . Então meu novo usuário é i d três. Deixe-me ir a tabela de regras de usuário em que superou 200. E eu quero dizer que o usuário com o 83 tem uma idéia de papel fora para porque, você sabe, esse papel I D um é administrador. Então queríamos ser tudo menos administradores. Então eu acabei de adicionar que o banco de dados e eu estou com o treinador e o aplicativo novamente, francamente entupindo em ir para remover o ponto de quebra na imprensa F I para que ele continue, isso é algo ainda deu errado. Então ainda temos uma flecha que precisamos consertar. Então vamos tentar de novo. Então, estou movendo o ponto de ruptura. Não faça hoje se verificar a declaração. Tudo bem. Então vamos tentar a operação de registro novamente. Então é bom que estamos passando por essa experiência juntos porque acho que posso ter Sr. Step, mas não quero apenas dizer a resposta. Vamos ver juntos. Então ah f 11 e então nós pegamos o papel. Além disso, o papel ainda é não. Então ainda me diz que o usuário governa. Então deixe-me apenas ter certeza de que está recebendo o usuário certo. Então, quando eu sobre o objeto de usuário, eu vejo que o ID é três em tudo o resto é bom, mas então ele ainda está vendo zero para as regras de usuário. Tudo bem, então deixe-me parar. Saia do barco ancorado. Vamos recalibrar no DSI, se está tudo bem. Então, eu tenho funções de usuário, eu adicionei, e o usuário i d vocês três. Então, certifique-se de que foi o usuário certo. Então, usuário I d três em, então. Desculpe por alguns tops. Abra. Tudo bem. Então, usuário, eu d três em dois. Tudo bem, então deixe-me fazer uma depuração, você saiba o que está acontecendo. Tudo bem? Então eu já vai pará-lo e começou e tentar novamente e tentar depurar em. E não havia literalmente nenhuma era. Então vou explicar o que aconteceu. Então, a senha do usuário, clicamos novamente. Vamos acertar os pontos de freio. Eu não movi o ponto de ruptura, mas como você pode ver, um usuário rosas, sem contar o dedo um se eu espero por cima dele. Não é ver ninguém. Eu literalmente não fiz mudanças. Eu acho que o que aconteceu é que quando ele durante um tempo de execução, ele não voltar para o banco de dados cada vez. É como tirar um encenado, como um instantâneo dos dados no momento fora da pedreira ou no momento fora do atolamento. E estava usando esses dados, salvando um comigo e as mudanças. Ele não refletia no aplicativo em um tempo de execução. Então o que fizemos até agora deve funcionar. Se não acontecer, podemos sempre avisar-me. Mas eu só vou remover esse ponto de ruptura e eu vou continuar porque tudo deve funcionar. Eu então nós imaginamos isso. E, em seguida, quando eu pressionei F cinco para continuar a notar que o menu não está mostrando gerenciar usuários . Então isso é porque o papel que a pessoa que amou na regra associa ID com eles não está admitindo. Então, o papel é Clark, certo? Se eu tivesse deixado a depuração o ponto exato. E você disse que uma regra de nome curto ainda é ver Clark não é assim, então isso é completo. Então o que fizemos foi pegar a regra para a pessoa que se arrastou. Transferimos os dados da regra para a janela média e, em seguida, na janela principal. O que? Durante o Senhor, nós Bem, nós montamos nosso evento tempo senhor e dissemos: Quando você Senhor, verifique se ele está em ad mineral. Então, o que quer que seja, você não quer que as pessoas conhecidas admen sejam capazes de fazer se você tiver 10 muitas opções e elas só devem ser capazes de acessar você pode seguir o mesmo padrão e simplesmente torná-lo não visível. Só você sabe o que eles desativaram para torná-lo não visível. A questão é que eles não podem fazer isso. 34. Senha de usuário e redefinição de o estado ativo: Ei, pessoal, neste vídeo, nós realmente vamos começar a construir antigos ou gerenciar usuários onde nós estaremos recuperando todos os usuários ativos. Um que permite que o usuário adicione ou, pelo menos, um usuário administrador seja capaz de adicionar o ativar ou redefinir a senha de outro usuário. A Andi. Então, a primeira coisa que queremos olhar, no entanto, nossos treinadores o tempo feito entre o anterior ouvir e este assim um. Modifiquei minha lógica de login. A pedreira que está verificando para o nosso usuário adicionou, a restrição de que o dois pontos está ativo deve ser verdadeira. Então, em primeiro lugar, estávamos procurando no banco de dados. Obter todos os usuários com o argumentou o primeiro usuário do estável usuário que tem estão marchando senha nome de usuário no banco de dados. Isso é a nossa versão silenciosa do que quer que tenha entrado. Em seguida, eu adicionei 1/3 restrição onde eu disse sobre a inundação ativa mais bankable em True. Então você se lembra que nós adicionamos em é Flug ativo Agora, dissemos para barras no vídeo anterior no DSO. Isso deve ser verdade. Então a mesma lógica se aplica Autor destes mais em Se não acontecer. Então dizemos por favor forneça credenciais válidas, certo? Você pode ser mais específico do que isso. Quero dizer, você provavelmente pode entrar em detalhes sobre por que eu estava, mas como eu disse, quanto mais generi melhor para tentativas maliciosas em seu sistema. Hum e então eu modifiquei nosso acorde no eu digo pode dar uma olhada neste tribunal onde em vez fazer todo o processamento para encontrar o nome do papel como fizemos inicialmente em, em seguida, passando apenas o nome da regra para cima. Na verdade, estou passando todo o objeto do usuário para as janelas principais. Então eu disse, janelas do ambiente, igual janela do homem do dedo do pé em uma passagem, este usuário vírgula. Então, quando o usuário é recuperado, eu quero passar todo esse objeto para a janela média. Não, isso vai me dar mais flexibilidade porque e eu só vou trazer para cima de mim e janela. Não, eu sou. Eu posso usar este objeto de usuário para acessar quaisquer dados sobre o usuário que eu queria, incluindo a regra então inicialmente teria usado para acessar as informações da função e, em seguida, passou apenas as informações da estrada desta vez apenas passando todas as informações do usuário em, em seguida, honrar, você sabe, caso a caso base, fim de semana acessar as informações do usuário, se quisermos. Então eu introduzi nossa nova propriedade dentro da janela principal e eu disse Público para usuário no usuário pontuação, este é sublinhado ou nome em. Você pode ver que alguns deles estão replicando alguém dos meus mais sortudos. Preciso ser mais consistente. Então eu sou um nome de papel mudado, toe Caso comum são tudo parece um pouco mais consistente em, em seguida, dentro do construtor. Estou inicializando tenho meu objeto de login. Eu tenho meu objeto de usuário em. Eu ainda estou indo definir o nome do papel separadamente porque eu não quero repetir este pedaço fora da quadra toda vez que eu quero governar nome agora Este bit fora da quadra que eu acabei destacar, eu condensei-o ainda mais. Então, a última vez que o que fizemos foi obtermos as funções de usuário e obtivemos o primeiro nosso padrão. E então tivemos outra variável onde obtivemos o papel, o nome do tubarão do primeiro, nosso padrão neste caso. Eu fiz tudo uma vez, então eu estou apenas indo todo o seu todo Há tantas maneiras de escrever para seus aposentos em link que enquanto ele funciona, seu bom on link é meio que projetado para ser o mais eficiente possível. Então, mesmo aqui, escrevê-lo desta forma são de outra maneira. Vai ser quase o mesmo tempo de execução. Então, você sabe, eficiência de lado há tantas maneiras de escrever suas consultas. Então, nesta situação, estou vendo esse papel. Nome é igual a comprar objeto usuário, que ainda tem a lista fora de regras de usuário como fizemos determinado em. Então eu estou dizendo, me dê o primeiro nosso padrão. Não, Uma vez que você faz o nosso primeiro nosso padrão, ele vai trazer de volta apenas uma instância muitas vezes objeto. Um resultado. Uma vez que eu tenho um resultado eu posso dizer ponto sobre, em seguida, chamar a tabela associada. Então isto seria como a minha união interior, e depois ligar para a propriedade. Quero que equipes sólidas me obtenham o primeiro registro de funções de usuário padrão para o usuário. Então olhe para o papel e me dê os detalhes dessa regra. mesma parte fora do tribunal que escrevemos, exceto que dividimos em duas linhas da última vez. Eu estou fazendo isso em uma linha aqui, então você sabe se um era um. Nós trabalhamos, então é melhor você ler melhor o outro. Isso é bom. Você pode saber que é isso. Copie e reproduza. Isso não é problema. Honestamente, é trabalho. É bom. Tudo o resto permanece igual. E como eu disse neste vídeo, vamos nos concentrar em nossa tela de gerenciamento de usuários, então já meio que colocar em algum trabalho crescido neste formulário. Temos usuários gerenciados que têm a atualização da grade ativada. Eu não acho que eu renomeei a grade, então deixe-me apenas ir lá e renomeá-lo rapidamente. Esta deve ser a lista de usuários do GV. Tudo bem lista de usuários GV e, em seguida, temos nossos botões diferentes. Deseja adicionar um novo usuário? Deseja redefinir uma senha de usuário em um para desativar o usuário? Então deixe-me apenas ir até o arquivo do tribunal para gerenciar usuários na necessidade de inicializar algo que nos permitirá conectar ao banco de dados. Sei que todos devemos estar familiarizados com o pai. Precisamos do nosso objeto privado ou propriedade privada. Desculpe, desligue o tipo atual ou entidades no banco de dados de pontuação em. Então nós inicializamos isso dentro do nosso construtor, e então nós temos ou três objetos três funções. Desculpe. Então eu vou lidar com os mais fáceis. Os fáceis são os primeiros e para mim, os fáceis da postura de reinicialização e os desativados? Porque eu não tenho que fazer muito trabalho de design em vez de ir no computador, toe o batido e adicionar clique do usuário porque, em seguida, depois de projetado um formulário inteiro, estas são consultas simples. Assim, a consulta simples seria que quando a pessoa seleciona um usuário da lista, então eles seriam capazes de ranger, redefinir senha. Então eu vou apenas gerar genérico ou ter uma senha genérica que vai obter Hush substituir sua senha existente no banco de dados em. Então é isso que eles devem digitar quando é que eles estão fazendo login. Tudo bem, então eu vou colocar a funcionalidade redefinir pastor como eu fiz da última vez. Isso vai pegar um cabo emprestado de um dos ecrãs de gestão existentes, certo? Então, na lista de veículos gerenciados, o que eu tinha feito foi que eu disse isso para bater em seu carro. Seja o que for que foi selecionado, a regra selecionada que é a que eu quero recuperar e, em seguida, fazer operações. Vou copiar literalmente tudo isso porque já está lá. Nós escrevemos. É nosso para que possamos reutilizá-lo à vontade. Então eu vou dizer Beleza e redefinir Pastor. Clique em Desejo recuperar da lista de usuários listas de usuários Devi, Certo? Então eu não fiz nada ao usuário popular do GV. Vamos ainda, mas usar GV ou vamos obter um cru selecionado na célula deve ser I d. e deixe-me apenas voltar para o meu banco de dados e ter certeza de que é capital I D. que não é. É comum. Então, de novo, estou sendo muito inconsistente e isso não é bom. Mas, sabe, é bom que vemos essas coisas em místicos comuns. Eles querem ser consistentes em seus casos em um banco de dados e qualquer registro. Tudo bem, então nós estamos recebendo o valor associado com a regra selecionada em. Então eu estou olhando dentro da mesa de usuários, não o tipo de carro estável. Então estável usuário, que ponto eu dy ser casal na idéia que foi selecionado em Ben. Não vou lançar nenhuma tela ou janelas novas. Posso remover tudo isso. Então o que eu vou dizer é que var senha ARV são novos em uma pontuação. A senha é igual a no Ben. Eu posso colocar em um genérico, então você provavelmente pode gerar algo baseado nos detalhes. Eu sei que algumas pessoas que eles fariam é gerar automaticamente. Um pastor baseado nos detalhes do usuário como os detalhes do usuário normalmente seriam. Nome, sobrenome, data de nascimento e tal. Eu não colecionei esses detalhes. Não estou armazenando esses detalhes sobre meus usuários. Se estiver, no entanto, pode usar isso a seu favor. Certo. Mas no meu exemplo simples, tudo o que tem é nome de usuário e senha. Então vou colocar algo que diga o quê? Eu só vou colocar em uma senha genérica para que sua nova senha seja passada no Word no sinal. 123 Tudo bem. Para que eu pudesse me comunicar com o usuário que você redefiniu a senha. O novo pastor deles está ligado? Então você poderia construir a partir do Senador que quer colocar essa senha genérica. Eles têm que mudar a senha. Certo, então a nova senha deles é a senha. 123 Então queremos haxixe. Então estamos usando o algoritmo tiro para 56. Se você olhar para trás no registro que o arquivo CS você vê tiro 256 e você vê tudo fora da quadra que precisamos de haxixe no dedo do pé. Então, na verdade, vou copiar muito os deputados desta. E então você vê que a neve uma vez que está se repetindo e está se repetindo em várias formas, nós provavelmente poderíamos criar uma função que é chamada que faz esse trabalho. Então, na verdade, eu ia fazer isso agora. Então, dentro da minha solução. Explorador, eu tenho um arquivo chamado você tills Direito em então neste formulário, Bem, nesta classe, o que eu tinha feito foi criar um utilitário para O formulário está aberto. Então eu vou fazer outro onde eu vou ver estática pública. Ana, isto vai voltar. Isso é uma corda. Então ele vai voltar. Silêncio. Vai ser chamado de “senha do silêncio”. Tudo bem, então, vai aceitar uma corda fora. Bem, ah parâmetro off type string on. Estamos chamando de senha não são tão dentro desta função. Não, vamos começar a fazer todas essas coisas com o tiro para 56. Então eu coloquei o tribunal lá em seguida, depois incluir minhas referências. Incluindo a referência. E então eu vou apenas tirar todo o cabo que usamos no log in. Então tudo isso, onde estamos fazendo o construtor de cordas e construindo. Tudo bem, então eu vou apenas pegar tudo fora disso porque eu não quero mais isso em madeireira. Então isso é parte do refrator quando você percebe que o tribunal está se repetindo, então você tem que modificar um lugar, ter 10 outros lugares em apenas um lugar e reutilizá-lo. Certo. Então temos nossa chance de 56 objeto. Fazemos as nossas mordidas, reconstruímos a nossa corda. Então a última coisa que fizemos foi dizer, construtor ponto para corda. Então o que eu vou fazer é declarar esta linha em, então eu vejo retornos são função vai retornar o acúmulo de string para string. Então este é o último vôlei que teria sido atribuído com a senha silenciosa. Então, depois de obter um valor de senha através do parâmetro, passamos por tudo fora disso, e então retornamos a string de reconstrução. Então isso significa que qualquer um que queira essa, hum , essa, você sabe, senha hash terá que fazer uma chamada de função onde eles dizem, os transeuntes silenciosos. Então isso para modificar essa função de log como uma senha de hash é igual toe você tills ponto hash senha, e então isso está esperando alguma string em. Vou passar a senha que queremos silenciar. Tudo bem, então isso parece muito limpo um c apenas uma linha fora da quadra para obter a senha hash. Tudo bem, vamos, então. Da mesma forma que fizemos isso no log in. Nós só fizemos isso em um log in que não tinha que fazer isso no registro. Só estou fazendo isso uma vez porque estou prestes a fazer de novo. Inimigo para salvar suas ferramentas. Estou prestes a fazê-lo novamente dentro de fora gerenciar usuários. Então minha nova senha será igual a, e eu acabei de pegar isso. Então, em vez disso , desligado, deixe-me dizer que a senha genérica é igualdade essa string, certo? Então eu gosto de dar meus nomes de variáveis de valores. Eu não gosto que os dedos tenham valores aleatórios em lugar algum porque e se alguém tropeçasse no Pastor e aquele sinal 123 isso estaria se perguntando o que no mundo é isso, certo? Então eu apenas colocá-lo em uma variável e, em seguida, eu vou dizer nova senha ou poderia apenas dizer senha silenciada aqui vai ser igual toe você tills não e, em seguida, silenciar senha. E então eu fui passar minha senha genérica como uma senha. Eu gostaria de ser silenciado. Lá vai você. Então não temos que repetir todas essas linhas fora da quadra toda vez que queremos o haxixe. Um pastor, acabamos de escrever uma função dentro de uma classe estática que só vai pegar um valor e depois nos devolver. Ah, palavra pus silenciosa. Certo, então é assim que nos calamos. Então veja, se quiséssemos apresentar o que chamamos de agressão, então poderíamos ter apenas introduzido dentro do U. Tiles. Porque então tudo está acontecendo aqui de qualquer maneira, então você poderia apenas dizer adicionar assaltos à senha e então fazer o hash sobre. Então ninguém ficaria sólido. Ele queria mudar. O sal vai mudá-lo. Um lugar. Não é assim que mudar. Eu vi que é recomendado de qualquer maneira. Mas esse é o objetivo de ter todo o seu cordão centralizado quanto possível. Tudo bem, então saiba que nós calculamos. Então temos o usuário, certo? Presumivelmente ligado. Deixe-me mudar o nome do objeto. Então seu usuário, usuário distante. Tudo bem, então recuperamos o usuário, então temos a senha e silenciamos a senha. Então eu só vou ver a senha do usuário ponto. Certo. Então lembre-se que recuperamos o usuário do banco de dados diretamente. Então nós, você sabe, dissemos senha lendária. Escondemos a senha genérica. Então eu estou vendo que este usuário do banco de dados, seu novo valor pastoral vai ser igual ao que veio de volta ou função em Deus armazenado em nossa senha hash variável. Então eu posso apenas dizer sublinhado db que salvar alterações, porque então é pena camionar que por isso eu acabei de receber este usuário de volta do banco de dados. Alterei uma propriedade neste usuário a partir do banco de dados. Então, para salvar as alterações direito em, que é o nosso Mas em recente e, em seguida, no final fora que você provavelmente quer dar uma caixa de mensagem para ver que Riess Passer. Ele foi redefinido, então você poderia até ser um pouco mais explicitamente poderia deixá-los saber isso. E eu só uso alguma interpretação aqui usuário dot nome de usuário. Tudo bem, então eu vou ver qual nome de usuário nas receitas de um apóstrofo. Hum, você sabe, pontuação gramaticalmente correta. Então, usuário, essa senha de nomes de usuário tem redefinição de bean. Tudo bem, e é isso. Então nós acabamos de fazer uma redefinição de senha um bom, simples rápido sob duas senhas redefinir fora do curso. Como eu disse, para a senha, eu uso essa senha genérica. Mas então, em termos práticos, você provavelmente quer gerar isso sob voar, então deixe a pessoa ou os padrões. Então isso faz parte da segurança. Você nunca iria querer dizer à pessoa que seu novo pastor é patrocinado em 1 a 3 chamadas e qualquer um pode ir no Coned dessa pessoa Uma vez que esse pastor, foi dito que se esta é a postura, ele tem sido usado para cada pessoa, Então a segurança é inteligente, você quer dizer a eles que ele está lá. As primeiras 4 letras do primeiro nome, as duas últimas letras do sobrenome e a data de nascimento, algo que só eles devem ser capazes de se sentar e descobrir facilmente sobre o provavelmente ser um pouco mais difícil para outra pessoa descobrir. Certo, então essa é uma maneira agradável, rápida e suja de fazer a função de redefinição de senha. Não, uma coisa semelhante seria para o usuário desativado, então eu vou pegar essa captura de ataque, certo? E nós vamos apenas modificar o quarto pouco. Então, mais uma vez , recuperamos a pessoa que foi selecionada , depois recuperamos do banco de dados, mas não precisamos esconder nada, certo? O que eu vou mudar, no entanto, é que há estado ativo alguém para dizer que um usuário não está ativo é igual toe cai. Tudo bem, como uma mãe fora, isso é desativar. Então eu provavelmente deveria construir em colocar funcionalidade para dizer que você sabe, se esse mesmo botão é clicado, então ele seria ativar ou desativar, então eu teria que mudar a fila ou a representação fora do texto neste botão. Então o que eu vou fazer é ver a mudança de texto para ver as atividades barra ativar usuário, certo? Então, a pessoa estaria clicando. Este botão saberia que este é um botão que irá desativar a pessoa ou reativá-la . Então, se estiverem ativos, desative e vice-versa. Então o núcleo que estamos certos é que no botão clique e recuperamos o usuário. Tudo bem, então vamos ver se algo assim eu vou usar um operador Turner aqui . Southie User dot é ativo é igual a, E, em seguida, o operador Turner Não permitiria que eu toe estado uma condição alguém para dizer, usuário, que está ativo. Onda. Eu tenho dedo especificar que a condição é equivalente a verdadeira agora se seu ativo não era notável. Então, se você passar o mouse para ver um touro com um ponto de interrogação, isso é porque nós fizemos foram nariz de carga no banco de dados. E assim é sabível em C afiado. Se não fosse possível e fosse apenas um valentão direto e eu poderia apenas dizer é ativo e então dizer é verdadeiro ou falso aqui no que acontece se é verdade o que acontece de seu poço Farr , porque é notável. Introduzimos os nossos países terceiros onde poderia estar. Não, pode ser verdade. As quedas não são o direito. Então, por causa disso, após especificar é equivalente a verdadeiro. Então, estamos vendo se o usuário está ativo. Se o fizermos, você não vai abusar no banco de dados, e descobrimos que lá eles estão ativos. Se ativista é verdade, então nós queremos definir como Falls caso contrário disse que é verdade, certo? Então seria apenas como qualquer declaração se é ativista. Verdade, então está ativo. Se igual dedo do pé cai mais é ativado. Tropa da Igualdade, certo? Isso é basicamente o que fizemos nesta linha, certo? Então eu poderia adicionar um comentário aqui para dizer que isso é o que seria parecido com nós e se mais tudo bem, Então isso é o que seria como se o usuário é se o usuário está ativo, não sequela na verdade e nós ativamos isso, cai mais que definiu como verdadeiro. Então é isso que esta linha faz. Então, quando a pessoa é o usuário clica na atividade, ele usuário, ele recebe a estrada em que eu fui selecionado. Então ele tira o usuário associado com a ideia da estrada. Eu fui selecionado em Então vemos que o usuário está ativo é relativo ao que eu estava loja cai. Em seguida, salvamos as alterações em. Em seguida, vemos o nome de usuário nosso bean tem nosso status de atividade como mudança de status ativo mudou . Então eu só estou deixando um genérico aqui porque, hum, hum, a coisa é que eu provavelmente teria que colocar em uma declaração se para dizer que o que eles destroem cai no final fora que se ele foi ativado ou desativado, então eu vou Apenas deixe isso. Tente manter isso simples em apenas dizer, você sabe, o status ativo mudou. Tudo bem, então bem aqui, nós teríamos feito para operações muito importantes Onda Nós teríamos feito isso com, você sabe, muita simplicidade, rápido e sujo em alguns momentos. Mas eu expliquei por que sobre como você poderia melhorá-lo para si mesmo no DSO Isso é tudo para esta lição. Da próxima vez que aparecermos, estaremos preenchendo nossa grade em, em seguida, focando em adicionar usuários ao nosso aplicativo 35. Adicione novos usuários e redefinição de senha: Ei, pessoal, bem-vindos de volta ao vídeo. Vamos começar oficialmente a festa. Na verdade, veja como podemos adicionar usuários no Dwell, gerenciando sua experiência com nossos aplicativos. Então, eles estão adicionando usuários, selecionando a regra em que estão gerando uma senha padrão. E então teremos que modificar por muito tempo no processo de tal forma que quando as pessoas se conectarem usando essa senha padrão, nós os redirecionamos para uma tela que lhes permita alterar essa senha. Agora, antes de seguir em frente, vou mostrar a vocês um pequeno ajuste que fiz no meu eu e janela, onde eu adicionei uma pequena barra na parte inferior aqui, e eu tenho o Texas está logado como dois pontos no nome de usuário. Então eu vou te mostrar como fazer isso. E é muito simples. Mas essas coisas simples, você sabe, fazem sua aplicação ganhar vida. Então, o que eu fiz na minha forma de design, quero dizer, janela era dedo adicionar. O que eu chamo o que eles causam são, er, tira de contexto. Então eu fui para a viagem de status, irmão. Então eu fui para a caixa de ferramentas, e então eu entrei dentro de menus nas barras de ferramentas, uma que diz faixa de status. Então eu só drogava isso. Deixei cair. Não faça parte de baixo aqui. E então eu adicionei rótulo de status alguém para clicar na etiqueta de status e mostrar a você como isso se parece . Então eu tenho que tirar a etiqueta de status. Mas, obviamente, você que é o que vai ser impresso para o usuário. Isso não é o que queremos imprimir para o usuário. Então o que eu fiz foi modificar as propriedades uma mudando o nome. Então eu mudei o nome para algo que eu poderia identificar alterações, ts I login texto. Foi assim que eu lhe chamei. Mas também removi o texto porque não quero que esse texto apareça. Então claramente o que leva vai ser exibido vai ser contexto para, Tudo bem, então depois de um renomeá-lo e eu vou excluir este que eu acabei de criar porque eu não preciso da ferramenta. Tudo bem, então acho que vai ser difícil para mim removê-lo porque ele foi condensado, mas tudo bem na janela. O Senhor funcionou. Oh, eu disse que eu quero que o nome de usuário seja o que temos de volta em nossos objetos de usuário que o nome de usuário escreve. Lembre-se, temos trabalhado objetos de usuário que estamos sentados aqui inicializando dentro para o construtor. Uma vez que a pessoa se conecta, estamos passando sobre que objetos inteiros terão acesso a tudo sobre este usuário em. Então o que eu estou escolhendo para exibir nesse texto é e eu chamo de ts I login texto. Tudo bem, então eu chamei de “Ts i” para “strip-item”. Isso sou só eu. Esse é o meu prefixo que estou usando. Mas estou vendo lágrimas. Se eu entrar texto, esse texto vai ser igual. E então eu disse, conectado como chamada em que eu estou passando aquele nome de usuário que eu obtive do meu objeto de usuário. Certo. Então, quando o homem, quando os senhores, ele vai saber quem está logado em que foi realmente tão simples. Tudo bem. Então, seguindo em frente, o que queremos fazer é ativar nosso registro de anúncios. Hum, mas certo. Então temos a tela de usuário gerenciar onde eles têm nosso contexto de banco de dados. Objetos já foram redefinidos nossa senha ao desativar funções do usuário, então, não, precisamos de alguma funcionalidade dentro do usuário do anúncio. Então, a fim de adicionar usuário precisa de outro formulário que eu não criei. Então vamos fazer isso juntos. Quando você clicar com o botão direito da minha solução ir para estranho tomar forma em. Então eu vou adicionar o formulário e eu vou chamá-lo adicionar usuário. Então eu não estou permitindo que você edite o usuário. São apenas abusadores. Os militares só querem abusador como um anúncio de truque. E então fazemos nossas mudanças cosméticas usuais onde mudamos o texto na barra de endereço para adicionar usuário. Então só vou alargar um pouco. Eu também vou copiar, hum, hum, algumas coisas de uma de nossas telas de edição existentes de veículos desatualizados sobre o motivo copiar isso está tudo bem. Então eu vou usar em todo o registro dela, e então eu vou. A razão pela qual eu estou usando outro registro inteiro é que eu apenas notei que em Edit Vehicle não tinha isso. Você conhece aquele rótulo no topo. Nós também não fizemos as mudanças cosméticas, então eu posso ter, você sabe, negligenciado essa parte com ele. Veículo. Mas podemos fazer os ajustes mais tarde, então eu só quero o rótulo. Então eu estou pegando este rótulo em Eu estou movendo dedo adicionar usuário, colocando-o no topo, mudando o texto lá dentro. Então isso é estranho, User. Tudo bem. E então podemos, é claro, re centrá-lo. Tudo bem, então. Vou usar o meu layout. Então eu tenho usado o rendimento da tabela para estes formulários, então eu vou usar o recipiente em It vai ser o painel de layout da tabela. Tudo bem, então. Para que o usuário tem um usuário? O usuário provavelmente gostaria de sentar apenas o nome do usuário. Certo. Portanto, você não quer um baixo Seus usuários são seu usuário administrador para definir a senha. Lembre-se, já somos a senha imaginária do tribunal. Então, bem, deixe aquele Jerry passer que quando eles clicarem em enviar, isso é tudo o que será criado. Então, na verdade, vou redimensionar isso já que não vai ser tão grande de uma janela . Então eu usaria mover nosso painel de mesa ou um recipiente de mesa um pouco. Nós trazemos mais rótulos. Então, sob controles comuns, eu trago meu rótulo e, em seguida, esta propriedade label. Vou definir o texto para ser o nome de usuário. Tudo bem, vamos, então. Vou trazer uma caixa de texto. Então, a caixa de texto para o nome de usuário? Desculpe. Algo que esquece as palavras são caixa de texto. Então podemos no nome do usuário. E, em seguida, a próxima coisa que seria sentado para este usuário é o papel. Não, lembre-se que as regras são todas armazenadas em uma tabela chamada regras, que significa que eu provavelmente precisaria de uma lista suspensa. Então deixe-me copiar os deputados isto usando o rótulo dele. Então vou mudar esta para ver uma regra. Mas então para o papel, eu vou ser tirado isso de uma lista predeterminada em uma caixa de combinação. Luta semelhante com esta caixa de combinação. E depois fizemos uma caixa de combinação antes. Então o que eu vou fazer é apenas eu este Liotta estável bater maior para que possamos endireitar . Um, você sabe, maximizar sob o espaço um pouco mais. Podemos expandir ou controlar um pouco mais. Então, para a caixa de vírgula, temos que modificar as propriedades onde se queria realmente ser uma lista suspensa. Então eu não quero que ninguém seja capaz de digitar lá. Além disso, as funções são os itens. Desculpe. Não seria núcleo duro fez isso. Então vamos ter que definir isso do tribunal para trás quando esta forma senhores. Tudo bem, então nós precisamos que um Lorde funcione já. Esses dobram o formulário. Eu tenho a função do Senhor. Certo, então, para carregar os itens, já fizemos algo assim quando você adicionava o carro em nossos registros. Se você quiser, podemos voltar para o adicionado nosso registro inteiro em Então podemos olhar para a função do Senhor que fizemos para este aqui onde dissemos que queremos adquirir a mesa para todos os carros na mesa. Então queremos que o dedo preencha a nossa caixa de combinação. Então precisamos fazer algo muito parecido. - Onde? Deixe-me voltar ao meu projeto. Eu vou ver que primeiro dos meus livros didáticos para o uso qualquer vai ser nomes de usuário TB. Deixe-me ir às propriedades. Onda, altere esse nome de usuário TB. Em seguida, a caixa de combinação vai ser papéis CB em Regras CB ou papel A estrela algo letra. Mas uma vez que você tem o prefixo e o título apropriado depois são assim, então o que queremos fazer é preencher esta lista de caixa de combinação com as regras e o valor apropriado e dados Membros. Então eu preciso inicializar meu objeto de banco de dados. Certo, então temos nosso objeto de banco de dados. A próxima coisa que eu quero fazer é realmente colocar a chamada de função ou aquela pedreira aqui em algum lugar para salvar. Virais é igual a objetos de banco de dados. Aquela tabela, que é regras ponto sobre então. Bem, eu só quero listar. Tudo bem. Então eu só quero que as regras de coisas inteiramente telefonadas no banco de dados, que sabemos que é realmente, um i d o administrador que começou i d o nome no nome curto. Essas são as colunas. Então eu vou dizer CB dot Desculpe, papéis CB. Tudo bem. Isso é fonte de dados é igual ou oh, são regras variáveis que acabamos de declarar em. Em seguida, regras CB, Mas Value Member é igual a e, em seguida, vamos ver que é eu d em sua dizemos papéis CB. Pensava no ISP, lembras-te? Desculpe. Exibir membro é igual a, e, em seguida, estamos exibindo o nome, não o nome curto, mas o nome desta vez. Certo, então defina a fonte de dados. Nós dissemos que o membro valor e definimos o membro de exibição depois de tudo fora que queremos que esta janela de usuário add seja lançado no clique fora do botão de usuário Eid. Então deixe-me voltar ao meu usuário de gerenciamento. Então este é um evento de clique de botão. Então, claro, você sabe, nós precisamos declarar no objeto no usuário é igual a novo e, em seguida, foi ver adicionar usuário como pode inicializar Sean. Então eu vou ver adicionar usuário Então os objetos MD I pai é igual a on. Então vai ser isso que na aparência do olho lembrar que Nós só queremos ser claros eles aparecem e para ser que em, então eu vou ver o usuário estranho ponto show. Mas, em seguida, lembre-se , É claro, queremos ter certeza de que apenas uma instância desses shows. Então precisamos colocar tudo isso dentro de fora que se declarações eu preciso verificar se um número vai dizer que você diz que para mim está aberto e então eu passo no nome do formulário que eu quero verificar se ele está aberto, que é adicionar usuário. Então, se não significa, se o farm não está aberto, então eu quero fazer tudo fora que Sony clique adicionar usuário. Apenas uma instância deve aparecer porque fora desta declaração if Não, nós não terminamos com isso. A próxima coisa que queremos ter certeza é o botão. Então nós temos. Ah, eu submeteria o botão. Eu também vou colocar o botão de cancelar direito, então você pode enviar isso. Está bem, sim. Este é o usuário que você deseja criar. E você também pode cancelar a operação. Certo? Então só fazemos esses dois botões. Então, mas ninguém que eu vou para propriedades em, eu vou chamá-lo o que eu vou dizer submeter primeiro em. Então ele vai ter o nome BT e enviar. E, em seguida, para uma ferramenta de botão, eu vou fazer mudanças semelhantes. Onde botão do dedo do pé. O nome vai ser Bt e cancelar em que The Tex vai ver cancelar tudo bem. E então para o botão de cancelar, Ahlam foi ver suas roupas. Então, se for clicado, decidi criar inventor elétrico. Estou dizendo que se você clicar, Cancele. Apenas feche a janela. Isso é fácil o suficiente. Direita em. Em seguida, se você clicar em enviar, então queremos fazer outra coisa. Então, quando você clica em enviar é quando nós realmente queremos adicionar o usuário que você está inserindo para o banco de dados, direita. Então eu preciso declarar nosso novo objeto fora do tipo de usuários. Vou salvar a Ire. Usuário é igual a novo usuário. Certo, como então, preciso coletar dados do formulário. Então deixe-me fazer isso primeiro. Na verdade, alguém para salvar nosso nome de usuário é igual dedo do pé e então eu sei TB nome de usuário texto ponto. Então, isto é, use o nome que acabou de entrar, certo e depois foi salvar o nosso papel. I d é igual ao valor selecionado nesta caixa de vírgula ou funções CB que selecionou no índice. Esse é o item. Mas o que eu quero é um valor selecionado, certo, mas então, fora do curso, isso vai ser um objeto fora do tipo. Eu preciso dele como um no domingo indo dedo do pé implicitamente typecast para um inteiro. Portanto, nenhuma ideia de papel está no valor selecionado pelo júri. O que esses usar objeto tem? Então temos o nome de usuário. Temos o papel, mas não temos. A senha e o status ativo são? - Não. Se eu acabei de criar o usuário, eu vou assumir que a atividade é verdadeira, certo? Eu não sei por que criaria um usuário inativo alguém para deixar isso como verdadeiro por padrão. Se eles quiserem alterá-lo mais tarde, eles podem ir em frente e fazer isso a partir da tela de gerenciamento. Mas eu tenho o papel que eu d em d. Eu tenho o nome de usuário e, em seguida, a próxima coisa seria a senha. Então, se você se lembrar, nós temos uma senha padrão que usamos quando fizemos recentemente a funcionalidade de redefinição de senha e eu posso revisar isso e mostrar-lhe no usuário gerenciar, fizemos um botão de redefinição de senha onde nós definimos isso para o padrão postura. Não, se eu quiser 13 isso como uma senha padrão, então isso significa que eu tenho isso duro citado aqui e do coração sobre o hard codificado nesta próxima função, que não é bom porque então se eu precisar mudá-lo, Eu sou eu mudá-lo em um lugar e não me lembro de mudar que o outro lugar então é mais fácil se nós tê-lo. Uma polícia. Certo. Então eu estou realmente indo apenas para criar outra função no U tills onde eu estou indo para ver senha hash padrão. Então eu vou levar tudo isso, certo? Andi, só vou copiar e colar. Vou chamar a função padrão. Senha silenciada. Então, este sou só eu. Diga o nome. Você pode nomeá-lo de outra coisa. Mas este não vai pegar nenhum parâmetro, porque o que eu estou prestes a fazer é silenciar a senha padrão e retornar isso duro. Certo? Então eu vou voltar. Foram substituídos. Desculpe. A referência sou eu para a terrível sala de senhas onde tínhamos o perímetro aqui. Então, os parâmetros aqui temos senha. Estou substituindo isso porque só para cancelar a licença. Este em eu estou substituindo-o por ah, senha codificada em 123 Então isso significa que se queremos mudar esse passe padrão realmente só precisa mudá-lo aqui em cada vez que chamamos esta função, ele vai apenas hash essa senha padrão que nós temos definido. Certo? Então, o que eu vou fazer tendo criado esta função é um Voltar para gerenciar o usuário em. Então eu vou mudar este bloco inteiro fora Corno para apenas usar minha nova função em que Sua senha silenciada padrão, que não leva parâmetros para que ele vai fazer é retornar. Ah, versão silenciosa. E o texto estático que sentamos é para que haja muitas maneiras de torná-lo mais dinâmico. Só estou tentando manter isso antes que o propósito não aprenda. Então, ter utilizado pensamento padrão pastor silencioso, que vai apenas silenciar. Seja qual for o texto que fizemos programadores ou o negócio determinou é inaceitável. senha padrão não está ativada. Então eu tinha usado dentro do espremedor de dinheiro, alguém para usá-lo novamente. Dentro de fora do usuário Quando eu estou adicionando o usuário, eu quero a senha para mim Você tills dot senha hash padrão. Então eles estão recebendo uma postura padrão. Também está tudo bem? Não, eu tenho os requisitos mínimos para um usuário. Use o nome da senha em nossos barcos e ideias de status de atividade não necessárias na tabela do usuário. Então logo chegaremos a essa parte. Mas eu vou dizer que o usuário não está em então, na verdade, eu vou mostrar a vocês como você pode fazer isso com o Isar inicial, alguém vai salvar nosso novo usuário. E então eu vou apenas abrir e fechar as chaves em seguida, dentro dessas chaves abertas e fechadas. Só um pequeno recuo aqui. Vamos ver o nome de usuário que deveria ser. Aqui está o nome de usuário igualdade. Tudo bem. E, em seguida, vírgula, a senha que este usuário vai ter é igual à variável de senha vírgula em. Então o final é que está ativo é verdade. Certo, então quando estamos prestes a comer carne, um novo usuário, chamamos de usar ele que foi introduzido. Recolher a senha, declarar um novo objeto fora do tipo de usuário e, em seguida, sentimos nas colunas, colocar uma chamada semelhante e, assim, acidente. Então temos usado o nome é igual para usar um impostor. Dizzy court of password está ativo é verdade. Podemos ir sobre a adição de alguém para dizer DB pontos usuários algum ninguém para dizer neste registro para o usuário estável. Então, banco de dados de usuário, usuário estável Adicionar este objeto de usuário e, depois de tudo isso, salvamos as alterações. Muito bem, agora, vamos ver se isto funciona. Alguém toe klik começar muito sendo como o usuário administrador para que eu tenha acesso aos usuários gerenciados . Eu clico em gerenciar usuários sabem que ainda não preenchemos este ótimo. E logo chegaremos a isso. Vamos clicar em Adicionar usuário. E aqui vemos nosso formulário chegando. Então, colocamos o nome de usuário e, em seguida, podemos selecionar o rolo. Tudo bem, isso parece bom. Então eu vou colocar em outro usuário e o que dizer Admin um sobre essa pessoa. Esta notícia vai estar na função de administrador. Em seguida, um clique enviar, e eu quero mostrar-lhe uma coisa. Então, antes de eu clicar em enviar, eu estou indo toe colocar um ponto de ruptura direita em Lyon 40 -lo. Tudo bem. Assim como a minha linha 48 ou a última linha desta função porque eu quero verificar uma coisa com você. Então vamos clicar em enviar em, então chegou até aqui sem erros. Então minha suposição é que ele passou por ele criou o usuário a senha em. Então, se olharmos para o objeto do usuário em passeado, veremos que realmente temos uma idéia associada a isso. Os usuários procuram e olham para esse silêncio. Isso é totalmente diferente do que estamos acostumados. Mas o que eu quero apontar para o fato de que uma vez que chegamos tão longe e nós adicionamos o registro e nós salvamos as alterações, ele automaticamente atualizado sobre o objeto do usuário tem o I D que ele recebeu depois que foi adicionado ao banco de dados? Tudo bem, então a relevância é, lembre-se que os problemas que o objeto está tocando sua cúpula. É que só sabe o que lhe dizemos. Então nós só contamos. Tohave está usando ele. Só foram informados que tem uma senha em Devon é estado ativo de verdade. Não lhe demos uma identificação. identificação As ideias estão a ser geradas automaticamente pela base de dados. Então, o fato de que ele fez, o salvar muda. E então ele continuou. O tribunal pode refletir que foi salvo no banco de dados e em nenhum tem um i d off quatro. E isso virá a calhar. Vou mostrar-vos exactamente porquê. Então, eu só vou dar o dedo do pé. Continuar. Tudo bem, então. Bem, você sabe, nós precisamos colocar em nossa captura de tentativa e nossa mensagem de sucesso e fechar a janela depois que tudo estiver feito. Então temos que fazer tudo isso. Mas eu só quero me concentrar em algo primeiro. Lembre-se de que acabamos de adicionar um usuário e selecionamos a regra no menu suspenso. No entanto, com base no buraco, nós projetamos nossas regras. Então, se eu apenas atualizar esta traseira nesta consulta rapidamente, então você vai ver. Então, apertei o botão errado para vermos nosso novo usuário sendo adicionado aqui. Tudo bem, bundas no nosso usuário ou no estábulo. Não temos nenhum reflexo sobre nenhum novo usuário dentro do neural. Então, é claro, se estamos adicionando um novo usuário e estamos selecionando a regra no menu suspenso que precisamos inserir a regra de acordo. São a Associação de Função de Usuário nesta tabela onde o novo usuário I foi adicionado com o I D que acabamos de ver neste caso foi quatro tem a função I d que está associada com o que foi selecionado ou lista suspensa. Precisamos dessa modificação para o nosso tribunal. Então, depois de ter salvo a alteração para adicionar o usuário que podemos saber, dizer var usuário i d é igual toe ou objeto de usuário ponto a coluna i d porque não, ele tem um valor escreve como acabamos de ver Não, depois de obter essa idéia do usuário e já temos função idéia eo meio estranho é muito comum estão mantendo consistente. Então tem idéia de papel Temos usuário I d Então eu posso ir em frente e dizer sobre as regras de usuário pontuação db dot Art Bem, desculpe, desculpe, desculpe. Ir à frente de mim mesmo lá para que eu salve nossa função de usuário é igual a um novo objeto fora da regra de usuário que é a minha tabela, certo? Alguns criando um objeto off tipo de função de usuário em, em seguida, apenas vai inicializá-lo aqui em, em seguida as colunas que eu tenho são papel i d e usuário I d. Tudo bem, Então papel I d vai ser igual toe o valor que eu tenho da minha caixa de combinação em então usuário, I d vai ser igual ao valor que eu acabei de obter do meu usuário recém-criado. E depois que eu faço isso, então nós sabemos que a próxima coisa seria outro registro para o banco de dados de objetos de banco de dados regras de usuário ponto . Não ligado. Então eu fui ver a função de usuário em. Então eu vou dizer db não salvar alterações. Tudo bem , vamos bem, então. Uma vez feito isso, ele irá criar o novo usuário e, em seguida, buscar o i. D, em seguida, atribui-lo à regra ou ela. Certo que disse que o usuário para a regra. Então, antes que o nosso continente vai colocar na tentativa captura Então apenas escrever. Tente pressioná-lo duas vezes. Então eu coloquei toda essa operação dentro da tentativa no dia. Eu não sou um. Basta rolar. Em vez disso, vou ver uma caixa de mensagem encaixada. Claro em. Então a caixa de mensagem que eu só vou ver na seta ocorreu, certo? Algo genérico. Você sempre pode obter um específico como quiser. Mas então, você sabe, nós já passamos por isso algumas vezes naquela época. Depois de uma operação bem-sucedida, eu quero exibir uma caixa de mensagem em. Ah, desculpe. Tudo bem. Ver novo usuário adicionado com sucesso. Então eu apenas um novo usuário adicionado sucesso totalmente em. Então fecharei a janela. Tudo bem, então bem, isso é praticamente tudo para o usuário de arte. Então vamos tentar mais uma vez. Alguém para clicar, iniciar, em seguida, fazer login, ir para gerenciar usuários do que um novo usuário em. Então, desta vez, vou salvar-te. Clark, essa pessoa está usando ele. Estou sentando-os apenas para revisar e, em seguida, clique em Summit. E, em seguida, este é novo usuário nele com sucesso clique em OK em, em seguida, enquanto o ponto de ruptura é para lá. Então eu removo o ponto de ruptura e, em seguida, continuar e eles estavam de volta um Tormey e janela. Ainda não fizemos nada com um grande. Mas então, se eu ir para o meu banco de dados e eu re executar esta consulta, então eu vou ver ah, terceiro rolo direito com o usuário I d cinco. Lembra-se disso antes? Não, os ideais de uso forçam e todos os cinco sobre as ideias de papel. Três. E se eu passar para os usuários em re executar esta consulta e eu vou ver minha visão Clark com usuário i d. Cinco em seguida, a senha porque ambos têm os mesmos transeuntes padrão. Então essas duas senhas são as mesmas. Estes dois pastores são iguais. Os hashes são os mesmos, certo? Então é, quero dizer, não é. Mas se os hashes são para ver e o ponto é que você sabe, se você olhar para ele, você pode dizer se eu não lhe disse qual era qual deles você não saberia qual senha ou qual palavra em inglês ou equivalente dessas senhas ser. Então, a próxima coisa que eu quero saber é modificar minhas janelas de gerenciamento de usuários para que quando um usuário é adicionado, ou, você sabe, desativado ou algo assim, isso deve refletir aqui que esses dados vai ser refletido. Então eu vou realmente fazer isso. Quero que pause o vídeo. Onda tentou você mesmo, e eu vou fazer uma pausa aqui. Faça isso, então eu vou voltar e explicar para você. Mas eu realmente encorajaria você a tentar por conta própria. Tudo bem. Então, vou guiar-te pelos ajustes que fiz. Andi, eu espero que você, você sabe, pausar o vídeo ainda que tentou ITI. E se ainda te sentires confortável o suficiente no teu mundo, estás à minha espera. Então está tudo bem. Vou explicar-te o que fiz. Então eu criei uma função semelhante ao que temos feito sobre saber chamado povoa Grade na grade popular Irã, uma pedreira onde eu disse nos PCs que de carros. Isso é porque eu copiei e colei o tribunal ou o trabalho anterior, certo? Então, neste caso, então nós apenas mudamos rapidamente no DSO. Não deveria dizer carros. Deve dizer “usuários”. Então obtive os usuários que selecionei naquele novo objeto abstrato obtendo o i. D. o nome de usuário das funções. Então lembre-se, tive que fazer que usuário ponto. Foi o primeiro padrão para obter o primeiro rolo ou, você sabe, é uma lista da Rose baseada na construção de dados, mas na realidade é um rolo, certo? Só estou dizendo, me dê a lista. Eu sei que é apenas um na lista, mas a maneira como eles processam para ver a lista começa uma. Então, já que é pelo menos me dê o primeiro na lista em, então me diga o nome do papel. Tudo bem, em, então, o status ativo. Não, lembre-se que essa coluna seja lá o que for, embora seja qual for o nome da coluna seja o que será usado como um nome da coluna para a grade. Então eu não quero nome de usuário assim e, você sabe, nome E qual é o nome? Nome não significa nada para um usuário final. Então eu renomeei as colunas. Então eu disse, qualquer coluna que tenha usado o nome é o nome Defina-o para usar o nome. Nome deve ser Nome da função está ativo. Deve estar ativo. Então dissemos que o dedo do pé da visibilidade cai. Tudo bem, então o que eu também fiz foi modificar o construtor para o usuário final. Então, quando clicamos, adicione usuário e passando no objeto fora deste e este sendo o formulário de usuários gerenciar diretamente. Então eu não me preocupei em fazer dois construtores, então às vezes eu também fiz. Às vezes eu fiz uma coisa que eu fiz também. E eu não usei, você sabe, um deles. Então desta vez só fiz um. Porque realmente e verdadeiramente, eu não acho que eu me lembro na janela abusador sem um objeto fora de gerenciar usuários. Então você sabe que pode misturar e muito mais. Cabe a você determinar o que você pode ou não precisar fazer é eu apenas modificar o dedo do construtor existente. Tirem o harém. Gerenciar usuários em. Declaro o objeto privado propriedade privada. Desculpe. Os usuários do Off Money inicializaram-no aqui para que sozinho, você sabe, depois de clicar, envie a chamada do dedo na função de grade de preenchimento na janela de gerenciamento de usuários. Tudo bem, então uma vez que clicamos em enviar e ele faz fora da mudança que tem que fazer para o banco de dados nós mostramos a mensagem de sucesso em. Em seguida, atualizamos a grade e, em seguida, fechamos esta janela. Tudo bem, então. Eu também chamo isso de grade de preenchimento para em gerenciar usuários. Então, em sucos de dinheiro, lembre-se onde dois outros botões com uma redefinição de senha. Tivemos a desativação, então o ativado, mais do que a redefinição de senha, precisaria atualizar porque para uma mudança, o status ativo. Então isso é mudança de dados visíveis porque temos a coluna está ativa mostrando através de nossos Farr. Então precisamos atualizar cada vez que é feito em. Então eu preciso ligar. Este botão de atualização não faz sentido. Nós temos e não funciona. Então deixe-me apenas adicionar o evento de clique para o botão de atualização neste botão de atualização é apenas indo para preencher grau. Tudo bem, então vamos dar uma olhada nesse aplicativo. Tudo bem? Então, abrimos, logamos, vamos gerenciar usuários. Então é assim que nossa grade será parecida, então sempre teste o usuário nota. Não estou mostrando a senha fora do curso, certo? Quero dizer, não faz sentido mostrar a senha. Este usuário, lembre-se, este foi o primeiro usuário que foi criado, e nós não definimos uma função, então isso vai ficar em branco. Então eu posso realmente usar este para as ativações. Deixe-me clicar em admin one e tentar isso. As atividades são administrativas. O status ativo foi alterado em. Então vemos que muda o dedo do pé cai lá, atualiza a grade e muda o dedo cai. Certo. Então, é claro, a grade não parece tão atraente com todo esse grande espaço que você pode redimensionar, não sei quando priorizar essas coisas também. Só quero que coloquemos a função das coisas sob nossas mãos. Direita em. Então deixe-me apenas criar mais um usuário no. Então eu ia ligar para esse usuário Clark, e essa pessoa vai ser um funcionário de entrada de dados. Enviar e, em seguida, clique em OK em, em seguida. Lá vamos nós. Então a janela fecha, e então o Clark está lá. Se eu tivesse a ativação, então o status ativo é agora cai, certo? E então só para vê-lo, nós se eu clicar. Então, se eu me deixar atualizar e, em seguida, se eu tentar e clicar em um destes iria obter essas setas. Mas por causa das capturas de tri , não vai quebrar o programa. Certo. Então essas são as coisas maravilhosas que temos sido capazes de realizar com tudo isso. Agora, deixe-me apenas colocar em uma função final em que é a verificação se a senha padrão é o pastor que está sendo usado quando o usuário faz login. Então eles são o número quatro é que isso pode ser realizado, certo? Praticamente a raiz disso. O que estamos verificando é se a senha que o usuário usou para se autenticar é um acordo ou sabemos que é a senha padrão. Tudo bem, então o que eu vou fazer é modificar a tela principal do senhor da janela, certo? Então eu vou ter que criar um novo formulário, e isso será como nossa redefinição de senha para o qual é realmente apenas duas caixas de texto no botão enviar para que eu possa simplesmente ir rapidamente para o Solution Explorer em um novo formulário em. Então este só vai ser reiniciado. Sward. Tudo bem, clique estranho. Então você sabe, nós podemos fazer nossos ajustes cosméticos regulares ou redefinir senha. Andi, o que vou deixar este fazer é que vai ser uma janela muito pequena o que vou deixar este fazer é que vai ser uma janela muito pequena. Nossas meninas vão ter que rótulos e duas caixas de texto. Tudo bem, então eu apenas desenhei fora da tela. Você pode pausar e projetar anos também, mas tem que rótulos querem dizer digite nova senha. Quer ver? Confirme a senha ativada. Em seguida, as duas caixas de texto para qualquer um, que eu renomeei dois senha TB e TB confirmou senha em seguida meu botão, que eu chamo Bt e redefinir. Então, e eu não acho que este, um bem, este formulário vai ter que falar com o banco de dados. Não, minha inicialização, minha inicialização, como de costume. Tudo bem, então. Saiba que fiz referência ao meu objeto de banco de dados. O que eu vou ter que fazer é recuperar o usuário, alterar a parte da senha em, em seguida, salvar as alterações. Se vou precisar de acesso ao usuário que deve ser modificado. E eu fui atrás de tíquete como um parâmetro alguém para dizer, usuário em. Em seguida, eu vou ter o meu eso local que é privado, usuário e, em seguida, ver usuário sublinhado. E então eu inicializarei no usuário de pontuação para ter o valor fora do usuário que está sendo passado como um parâmetro. Tudo bem, então. Tudo bem, então nós fizemos um pouco de trabalho na senha de redefinição. Eu quero fazer uma pausa aqui, e então eu vou voltar meu foco para a janela principal. Então eu vou fechar todos os tops do que eu não preciso de um direito. - Não. Tudo bem. Em seguida, na janela principal na janela principal na função Senhor. O que eu vou fazer é dizer que se eles se o valor fora da senha de usuário silenciado é o mesmo que a senha de hash padrão, então a pessoa precisa de uma redefinição de palavras cruzadas. Tudo bem, então o que eu vou dizer aqui é tão na janela. Senhor, eu só vou fazer algum espaço aqui, e eu vou ver, então o que eu vou ver, você sabe, é se em seguida dizer algo como Usuário. Então eu tenho meu objeto de usuário aqui senhas de ponto de usuário. Eu já saberia a senha silenciada baseada no que está no banco de dados. Então eu vou dizer se a senha que está na base de dados é equivalente Oh, você inclina isso. Em seguida, isso seria senha hash padrão. Vê isso? Então estou vendo se a senha na base de dados é equivalente à senha silenciada. Esse é o governo padrão do pastor Tash. Mas esta função está retornando a versão hash fora da senha padrão. Então qualquer um que seja posturado foi reiniciado ou foi criado. Ele vai ter. Seja o que for, esse retorno. Isso é o que vai ser armazenado em seus registros. Estou dizendo que se o usuário que acabou de logar tem a mesma senha que a senha de hash padrão , então precisamos iniciar. Janela para posturas de reposição. Quero o Cevaer reiniciado. Senha é igual a uma nova instância fora da janela de redefinição de senha. Tudo bem, vamos. Então, desta vez vou mostrar o diálogo. Notei que isso está dizendo redefinir senha eso porque eu não criei dois construtores, então ele está esperando a passagem em algum objeto de usuário. Então isso satisfaz isso. E então eu fui ver Redefinir senha e neste tempo, quando mostrá-la como diálogos. Lembre-se que olhamos para como podemos lançar uma janela no momento. - Claro. O diálogo é uma excelente maneira de garantir que você não pode simplesmente fechá-lo assim. Certo? Então, estamos vendo redefinir postura dot show diálogo direito sobre. Então o que vai acontecer é que a expectativa é que o usuário vai usar esse diálogo redefinir passer na verdade mudou sua senha. Se não o fizerem, então isso é um problema. Mas quando os senhores da janela fizermos isso, verificamos, verificamos, então exibimos a janela de redefinição da senha. Então, não, quando eles pegarem aquela janela, então a expectativa é que nós temos quando estamos bem, vamos obter os valores que eles inseriram. Então isso é apenas uma senha de fogo é igual a on. Então temos a senha da TB, não o texto. Direita em. Em seguida, o próximo vai ser posturas confirmadas de TV de estão na firma no placar. A senha é igual a TB. Confirme. Ah, sward, não texto. Tudo bem, então. Primeiro eles querem compará-los. Então eu vou ver se senha não é igual para confirmar senha. Então sabemos que isso é um problema. Se usar qualquer site moderno, você sabe que a pastoral no país e corpos pastor deve ser o mesmo, então vai ver caixa de mensagem que assim E nós vamos pele para avisar o usuário que senhas não vai muito. Por favor, tente novamente. Tudo bem, e então nós vamos saber dizer que a nossa senha do ponto do usuário é igual a você pinta senha áspera, e então nós estamos escondendo qualquer valor que eles colocaram como a senha. E então, uma vez que terminamos com isso, podemos ver sublinhado db dot salvar alterações porque temos acesso ao objeto real vindo das abelhas de dados. Então, fomos tentar isso. Eu sou isso tem funcionado para mim no passado. Eu não quero dizer que definitivamente vai funcionar. Não, mas, quero dizer, vamos testá-lo. Oh, não. Então isso significa começar. E então eu vou entrar com um desses novos usuários que obviamente teriam uma dessas novas senhas. Então eu fui fazer login como o Clark. Então Clark Andi, seria P S W O R D maiúsculo em 7123 Esse é o pastor que colocamos em DWI. Ok, é impressionante ou estudos estão envolvidos. Está nos dizendo que está envolvido porque esse usuário está inativo. Certo, pelo menos algo funciona. Então o pneu meio passador, mas o usuário está inativo, então não funcionou. 36. Adicionar projeto ao GitHub: neste vídeo, vamos apenas rever algumas alterações finais de acordes e, em seguida, verificar a nossa solução toe Get hub para controle de origem. Então eu vou começar explicando esta classe que eu tenho aqui na tela que é classe estática pública. E eu o chamei de “Tiles”. Tudo bem. Então, primeiro, vamos classe estática I baixa você declarar classe onde você pode chamar as outras funções estáticas e propriedades sem a necessidade de declarar um objeto. Então eu vou explicar exatamente o que isso significa. Então, primeiro lugar, no Explorador social em que estava certo. Clique no sinal no anúncio do projeto Goto novamente dizer classe em. Então eu dei o nome que você inclina para que você obtivesse a mesma caixa de diálogo que foram usados dedo onde eu digo classe em. Então eu chamei de você se inclinar. Então eu disse adicionar e eles foram adicionados ao projeto. Então nós vemos que algumas pessoas poderiam colocar isso em uma pasta talvez por si só e em uma pasta chamada talvez ajudantes ou algo assim. Neste ponto, era realmente importante, mas minha classe utilizar é estática, então isso significa que eu posso apenas dizer que você inclina ponto sobre e chamar a função estática que eu tenho aqui, que é chamada de Foreign, está aberta. Tudo bem. Normalmente, quando é uma classe, sabemos que precisamos declarar um objeto. Então, como no caso, declarar um objeto fora de uma das formas que é que são classes teria dizer Dê-me um objeto em inicializá-lo para, em exemplo fora disso e então eu posso começar a interagir com o propriedades nas funções quando se trata de uma classe estática. Em seguida, nesta situação eu estou vendo dar-me tills dot as funções que eu não precisava para declará-lo tills como nosso objeto e, em seguida, usar o nosso declarar um objeto off tipo utilizar e , em seguida, usar o objeto. Eu poderia apenas dizer que você inclina forma ponto está aberto que eu estou passando o nome fora do formulário. Tudo bem, então em vez disso, no tribunal aqui, como eu fiz no vídeo anterior onde eu escrevi uma vez e eu escrevi em nenhuma situação, mas então toda vez que eu preciso verificar se o formulário é Abra, vou ter que reescrever aquele tribunal. O que fiz foi criar uma aula de útero. Criar uma função chamada form is open, que vai retornar um booleano. E ele está esperando um perímetro fora do nome do tipo ou irá digitar string chamada Nome em. Então ele faz essa verificação. Então eu recebo todos os formulários abertos na verificação do aplicativo se aquele com o nome que está sendo passado estiver aberto, certo? Então fizemos tudo isso. Eu só peguei esse acorde em tudo que ele estava colocando uma função e um retorno está aberto, o que ou seria verdadeiro ou falso baseado no resultado desta, hum função direita. Esta operação está ligada? Então a função é realmente retornada. Na verdade são as quedas, que são barras de ouro, certo? Então isso significa que toda vez, ter um evento rápido. Onde está sempre uma situação em que estamos prestes a lançar uma janela? Tudo o que estou fazendo é ver, se não estiver ligado, então seja qual for o resultado, quando eu te chamar de tills, esse formulário está aberto. E depois passei o nome. Lembre-se que o nome fora dos formulários para vê-lo como o tipo, certo? Eu sei. Eu queria lançar a lista de veículos gerenciados. É um formulário prestes a ser lançado quando isso clicou. Tudo bem, então eu sei que esse é o nome que estou passando. Então eu só estou dizendo para checar, chamar essa função. Se não significa que é quedas, então eu quero abri-lo. Então, se ele não está aberto, isso é basicamente dizer que se ele não está aberto, em seguida, mostra lembrar que fizemos isso como uma declaração se , mas mais uma vez teria toe reescrever esse tribunal cada vez para que ele foi colocado em um onde tudo o que estou fazendo é passar o nome relevante de acordo com o evento rápido . Certo? Então foi isso para a listagem de veículos gerenciar mais tarde. Não tem registros gerenciados ou inteiros. Eu uso a mesma função. Tudo o que eu faço é mudar o nome porque eu sei que é uma forma diferente que eu quero lançar desta vez. Está aberta? Se não estiver aberto, então vá em frente e inicie-o como uma criança MD I em seu prosseguimento. Certo. Então essa é uma mudança que fizeram caso contrário eu normalizei o gerente. Registros inteiros estão colocando o mesmo tipo de funcionalidade de exclusão com a caixa de diálogo. E sim, eu sei, como você teria feito na lista de veículos gerenciar em mergulho normalizado. Tudo é a maioria das coisas até agora. Então, não, estou prestes a verificar este cordão para obter esperança, certo? Vou criar o repositório em. Então, no momento em que você teria assistido este vídeo, você seria capaz de ir em frente, obter acesso aberto ao repositório com todos os arquivos do tribunal. E, você sabe, se você não entende algo ou se moveu muito rápido no vídeo e não foi capaz deixar claro, e você só quer ver o próprio tribunal, então você pode ir para a história do post que estamos prestes a criar. Presumo que já tenha criado um gueto por Kant, e se não o fez, então é bem simples. Eu também tenho um vídeo sobre que você já viu isso antes. Espírito Um gueto por conta. Você pode ir para obter Hope Dot com. Então você pode ir para se inscrever neste, um processo bastante simples. Uma vez que você se inscreve, você fornece todos esses detalhes? Você quer escolher uma conta gratuita porque eles carregam fora livre ou empresa são cones fora do curso. Se você é um indivíduo apenas querendo usá-lo para fins educacionais, então você vai em frente e usar a versão gratuita fora do curso uma vez que é gratuito, pode escolher. Se o repositório for público ou privado no momento, a Andi pode prosseguir em conformidade. Então eu não vou passar por isso neste vídeo. Há outro vídeo lá que está com isso. Então agora vamos nos concentrar em adicionar nossa solução ao controle de origem. Certo, então a primeira coisa que você quer fazer é olhar no canto inferior direito. Você vê, adicionar ao controle de origem. Se você não vir isso, então você provavelmente não quer saber os plugins do Visual Studio. Esqueça o hub. Mas se o seu estúdio visual foi instalado corretamente, então você teria os plugins que eu estou falando. Se você não fizer isso, então você pode me soltar uma linha e então eu posso ajudá-lo a obtê-las para que você possa clicar, adicionar ao controle de fonte e então você vê, vá em frente e clique nisso. O que isso faz é criar um repositório local na máquina em que você está, então o controle de origem permite que você acompanhe suas alterações. , Claro, você tem que se certificar de que tudo está salvo, e uma vez que você está rastreando ele muda. Você pode dizer quem alterou qual arquivo em quando. Certo? Então, é uma boa maneira de saber quando seus programadores funcionam, quais as mudanças que você fez. Isso provavelmente quebrou seu tribunal, e você sempre pode voltar para o tribunal de trabalho anterior. É sempre recomendado que você não verifique em nenhum tribunal que tenha erros, especialmente se você estiver trabalhando em uma equipe. Mas, você sabe, esses são os nossos princípios que você aprendeu ao longo do caminho. Mas o que acabei de fazer foi criar o repositório local na minha máquina. O próximo passo, no entanto, é publicar isso para desistir, então minha máquina será acompanhar as alterações. Mas então eu posso sincronizá-lo com o serviço chamado Obter Tobe ou como o seu desenvolvimento. Mas levantar-se é mais fácil para todos e qualquer um para entrar, modo que eu estou focando em levantar-se. Mas você pode sincronizá-lo com o get up para que sua máquina local instruindo alterações e você está basicamente fazendo backup. Todas essas mudanças rastreadas no repositório de roupas que Tobe oferece a você, então isso torna mais fácil para ele trabalhar em uma equipe. Porque, em seguida, os membros da sua equipe podem interagir com esse repositório de roupas em um nível global em contribui para o seu tribunal ou um puro seu tribunal. Então, agora, o que estou fazendo é empurrar para que você possa acessar o tribunal quando precisar escrever . Então eu publiquei um get up e eu apenas fiz isso, publiquei uma banheira get e então ele vai me perguntar. OK, só vai verificar se está se levantando. Saiba o que ele pode fazer é solicitar que você entre. Então, se você criou seu cone com sucesso, basta entrar com as credenciais que usavam para criar essa conta. Eu já estou conectado ao meu estúdio visual com o get up, então ele já me detecta em. Mas vou deixar o nome. Há corrente para cima. Você pode adicionar uma descrição para que você possa ver. Ganhar formaanossa introdutória. a Deixe-me escrever a descrição. Certo, escrevi um pequeno parágrafo. Esta é uma introdução ou aplicação de formulário do Windows feito em cumprimento parcial fora do curso desenvolvimento de aplicativos empresariais com formulários do Windows usando C sharp e um diodo nele . Então isso é um bom É uma descrição, modo que se alguém tropeçar neste repositório, eles podem ter uma idéia fora. O que, exatamente? Eles são exatamente o que é, que eles estão olhando para a caixa de seleção aqui para torná-lo privado ou público. Então, se você torná-lo privado, então obviamente ninguém será capaz de apenas tropeçar nele na Internet. Somente você, em quem você convidar, ainda interagir com o repositório será capaz de vê-lo. Mas deixo isso desmarcado porque quero que o meu seja público, certo? Eu quero que você seja capaz de ir no meu perfil e sentar no final de tudo isso. Eu posso este clique publicar em, então eu posso dar-lhe alguns momentos em uma vez que a operação é concluída. Então você vê as funções são você vê a sugestão visual que é seu repositório criado, bem-sucedido, Você sabe, se este passo falhar, pode ser que você provavelmente colocar em credenciais incorretas, ou você provavelmente precisa mudar a conexão que você está sentado atrás porque eu vi firewalls bloquear esta operação. Então pode ser uma dessas coisas. Então eu não perdi o dia. Sempre que você fizer alterações no seu poço, primeiro, deixe-me entrar na minha conta ah ah, você banheira e mostrar-lhe exatamente o que foi feito. Então você vê atual para cima, Andi, Lá está com a introdutória. Esta é a descrição. Tudo bem, então se eu clicar na corrente acima, então você vai ver toda a minha posição Torrey, com a descrição que acabei de escrever no estúdio visual. Ele aparece aqui, Então se eu entrar na pasta vai ouvir todos os fatos. Então essa é uma solução que obtém incêndios que teriam sido ocultos são criados uma vez que adicionamos ao repositório em. Então eu vou para o carro até subir. Então, quando ele vai para aquela pasta, você será capaz de ver todos aqueles fora da classe para. Então esta é uma pasta de projeto direito sobre isso. Estes são todos os pais estão associados ao nosso projeto. Então, se você quiser ver o que eu fiz em particular arquivo, você pode apenas clicar nele. Então este é um registro que CSC e um slick em log. Isso é sim, e isso vai trazer todo o fogo da classe com tudo fora do cabo que eu teria verificado . E você sempre pode manos. Andi do Perú, você sabe, está familiarizado com o tribunal se você precisa ir do repositório. Se você quiser obter uma cópia de todo o projeto, então você pode ir para clonar ou não Lord on, então isso lhe dá três opções. Você pode abrir bem a área de trabalho. Então, no vídeo onde montamos o gueto Balcones, você também não teria carregado. Prepare-se para uma área de trabalho para que você possa abri-lo nesse aplicativo de área de trabalho. Se você já tem, você pode abri-lo no Visual Studio. Então isso vai realmente de dois para lançar o meu código-fonte. Em um caso, fora do seu próprio estúdio visual. Ele pode vê-lo no seu projeto de configuração no seu estúdio visual como se você tivesse o meu projeto ligado. Você também pode simplesmente não saber o arquivo ZIP para uso posterior à vontade. Certo, Então é assim que você vai sobre adicionar seu dedo do pé repositório. Você deve ser não, só para mostrar qual é o propósito da guitarra se eu fizer um ajuste. Se eu olhar na solução Explorer primeiro, você vai ver os cadeados azuis. Cadeados azuis significam que esses incêndios estão inalterados. Tudo bem? Não, se eu for até vocês e eu vou apenas fazer uma simples mudança, nada muito intrusivo. Mas eu só preciso de um espaço. Então, qualquer que seja a mudança, e então eu vejo isso, se eu olhar para trás para aquele arquivo, eu vou ver um carrapato vermelho. Então, se eu passar o mouse sobre o ridicu ver que ele está pendente em editar nosso há uma edição que foi feita que está sendo preso no dit está pendente ser verificado em. Tudo bem, então deixe-me fazer algo mais, na verdade, e uma mudança mais útil. Então eu vou entrar para colocar no comum. Esse é o cheque dele se a janela já estiver aberta. Certo? Então, antes, se eu for ao meu repositório e olhar para o meu arquivo do útero, certo? Então eu só fui para o repositório. Abra os utilitários. Isso é sim, e outros zoom em um pouco doente e ver melhor. Você vai notar que ele está lá. Não há nenhum comentário ou qualquer coisa, Então eu apenas adicionei Ah, comentário Toe essa linha. Linha de reboque 14. O original não tem comentários na linha 14. Então o que eu vou fazer é checar no Visual Studio. Então eu vou apenas clicar com o botão direito na solução, e então eu vou ver um cometa. Então, quando eu disser commit, eu quero ser o mais explícito possível porque mais uma vez, isso é bom para as configurações da equipe. Então, se eu estiver em um ambiente de equipe, eu quero que os membros da equipe saibam exatamente o que mudar. Eu sou Mead toe the court, alguém para dizer que eu comentei você não é CS porque foi isso que eu fiz. Logo depois que eu escrever esse comentário, eu posso clicar sobre isso. Não corrija. Posso dizer que os Commit são, mas vou te mostrar um tubarão. O que? Onde? Clique sobre isso, não cenoura e é um commit tudo e afundar, então cometer significa que vai cometer a mudança. Mas só vai ser para o seu repositório local, que significa chegar a bordo saber sobre ele, pelo menos ainda não. Quando eu disser acalmar tudo e afundar, ele vai dizer ok. Comprometido com o repositório local e, em seguida, sincronizar com o get up synchronizing significa que se eu tiver alterações feitas, ele irá empurrá-los para se levantar. Então, se alguém da minha equipe fez mudanças, ele também vai puxar essas mudanças para mim. Então, quando eu faço isso, você vê que ele está fazendo operações enquanto eu estou aqui falando em Não, ele está sincronizando Isso pode levar um tempo porque fora da conexão com a Internet que eu estou sentado atrás. Mas uma vez feito, então você verá que sincronizou com sucesso todos os cometas que entram e entram. E muda que meu companheiro de equipe não estará na minha máquina em quaisquer mudanças que eu fiz Will saber além de colocar Tobe em, minha equipe também pode vir aqui. Então este é um explorador de equipe. Tenho uma dor aqui chamada Explorador de Equipes. Se você não vê-lo, você pode ir para ver e procurar Team Explorer em que lhe dará este problema em por padrão , ele será nesta tela. Deixe-me apenas ir para a tela inicial só para mostrar como ele vai se parecer para que você está bem . Então eu tenho esta é a tela inteira, certo? Este é o momento em que o repositório é configurado, e essa é a sua tela inicial se você quiser obter as alterações. Então alguém fez alterações e você quer recuperar essas alterações do que o que você pode fazer é clicar em pia, certo? Então, qualquer pia de clique ele irá automaticamente apenas puxar. Quaisquer mudanças são, bem, ele vai trazer este menu em. Então você pode apenas dizer sinuca. Então, quando você diz puxar, ele vai trazer todas as mudanças que sua equipe fez. Se você apenas gosta, acho que vai fazer o empurrão e um puxão tão puxado significa obter as mudanças, empurrar-me e enviar minhas alterações. Acho que significa Alice para ambos em uma operação, certo? Então você tem várias maneiras de fazê-lo depois de mostrar suas opções. Mas em uma configuração de equipe que é completa, isso pode ser feito para ajudar a colaboração, então saiba que isso é verificado. Vamos apenas verificar se ele foi verificado com sucesso, então se eu atualizar esta exibição, então você vai ver meu comentário é não no get top. Então a mudança que acabei de fazer na minha máquina não está disponível no get top e, em seguida, se eu apenas voltar para a lista fora de arquivos. Só vou te mostrar a dica visual que o gueto te dá. Então, estes estavam nos arquivos do projeto? Isso é tudo. Eu fui gerado automaticamente. Esse foi o primeiro compromisso. Mas então quando eu fiz as mudanças feitas assim até que você até que CSR utilizar um C s. Eu escrevi o comentário adicionado comentário, Toe YouTube é que CS, certo? Então, será um qualquer coisa que você colocar como sua mensagem Corbett irá informar qualquer outra pessoa as alterações feitas no arquivo de partículas. Ou, pelo menos, a última mudança que foi feita no caso das partículas. Não, eu falei de muitos barcos trabalhando em uma equipe e eu só vou te mostrar como você pode convidar outras pessoas para entrar na sua equipe. Então, primeiro, seus companheiros de equipe precisam ter o gueto Buck Owens todos. Se você precisa ter varandas de guitarra, então você. O que você faz é ir para configurações. Então, quem teria criado um repositório uma pessoa pode criar o repositório primeiro, então você pode convidar o outro para que você teria ido para configurações e então você diria, gerenciar o acesso, e então isso provavelmente irá pedir-lhe você sabe, coloque em suas credenciais. Então você faz isso rapidamente. E, a partir daqui, posso convidar colaboradores. Certo? Então eu tenho algumas pessoas que estão seguindo garçonete do gueto, mas em colaboradores realmente são os únicos que serão capazes de acessar em mudanças push para o seu repositório sem você precisar de dedo do pé, você sabe, estar lá todos os tempo. Então foi isso que eu disse equipe. Certo? Então, se eu convidar um colaborador, só precisamos fornecer um nome de usuário ou um e-mail. Então eu acho que talvez eu possa procurar alguém chamado querido Itchy. Tenho um novo sócio com essa alça. Eu não me lembro exatamente o cabo, mas você pode ver que ele está trazendo um número de pessoas. Então, talvez usando bem, endereço de e-mail provavelmente seria o mais certo de nós para ter certeza de que você está inventando a pessoa do carrinho. Então você colocou o endereço de e-mail da pessoa. Eu só coloquei um. Ok, não é conhecido por isso em. Essa é a minha outra conta do Gmail. Eu pensei que eu ainda tinha I up conta. Certo, então vou usar meu amigo Sean McLean. Então eu só clique em Sean McLean, e então eu digo para adicionar show McQueen para o carro no reboque. Então, fazendo isso, acionaria um convite por e-mail para ele. Então você seria capaz de aceitar em, em seguida, ter acesso total ao aplicativo, assim como eu vou associar o convite de gastos. Você sempre pode cancelar. Se quiser que alguém o cancele. Tenho certeza que ele virá e me perguntará, por que eu fiz isso? Isso é bom. Eu posso lidar com essa situação. Mas é assim que você adiciona outros colaboradores ao seu projeto. Com tudo isso dito e feito, é isso para a nossa introdução toe windows Forms desenvolvimento de aplicativos usando C Sharp e video dot net. Espero que tenha se divertido. A Andi. Estou ansioso para ver a funcionalidade adicional que você colocou em nosso comum que você colocou em algo para gerenciar. Talvez os usuários que você provavelmente pode colocar em algo mais dedo do pé. Faça o registro de auditoria como eu mencionei, para ver qual usuário interage com qual arquivo em, você sabe, você pode fazer um número de coisas diferentes em. Estou interessado em ouvir exatamente quais idéias você tem em mente para melhorar esta aplicação. Você sempre pode me deixar uma linha de minhas informações de contato em deixe-me saber seus pensamentos