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