Exercício – Examinar o código inicial
Nesta primeira etapa do processo de desenvolvimento, você revisa o código fornecido na pasta do projeto Starter.
Examinar o conteúdo do arquivo Program.cs
O arquivo Program.cs contém uma versão preliminar do aplicativo no qual você está trabalhando. O código inclui recursos para gerar e exibir os dados de exemplo para o aplicativo e exibe uma lista de opções de menu que definem os principais recursos do aplicativo.
Verifique se você tem a pasta "GuidedProject" (Guided-project-Work-with-variable-data-in-CSharp-main) aberta no Visual Studio Code.
A unidade "Preparar" (a unidade anterior neste módulo) inclui uma seção De instalação que descreve o processo para baixar o ponto de partida inicial do projeto guiado e abrir a pasta Visual Studio Code. Se necessário, volte e siga as instruções de preparação.
No modo de exibição "EXPLORER", expanda a pasta "Starter" e selecione "Program.cs".
Quando você seleciona o arquivo Program.cs, o conteúdo do arquivo é aberto na área principal do Editor à direita do EXPLORER.
Se o modo de exibição EXPLORER não estiver aberto, você poderá selecionar/abrir o modo de exibição EXPLORER na Barra de Atividades no lado esquerdo do Visual Studio Code. EXPLORER é o ícone mais alto na Barra de Atividades.
Leve alguns minutos para examinar as declarações de variável iniciais na parte superior do arquivo Program.cs.
// #1 the ourAnimals array will store the following: string animalSpecies = ""; string animalID = ""; string animalAge = ""; string animalPhysicalDescription = ""; string animalPersonalityDescription = ""; string animalNickname = ""; // #2 variables that support data entry int maxPets = 8; string? readResult; string menuSelection = ""; // #3 array used to store runtime data, there is no persisted data string[,] ourAnimals = new string[maxPets, 6];Primeiro, você verá um comentário (comentário nº 1) seguido de uma lista de variáveis. Essas variáveis,
animalSpeciespor meioanimalNickname, são usadas para manter os valores das características do animal de estimação dentro de uma matriz de cadeia de caracteres multidimensional chamadaourAnimalse inicializadas para conter uma cadeia de caracteres de comprimento""zero. AourAnimalsdeclaração de matriz está um pouco mais abaixo no código.O próximo grupo de variáveis (sob o comentário nº 2) é uma combinação de
stringeintvariáveis usadas para ajudar a gerar dados amostra, ler a entrada do usuário e estabelecer critérios de saída para o loop principal do programa. Observe a linhastring? readResult;de código. Você usa o caractere?para transformar um tipo de variável normalmente não anulável (int, string, bool, ...) com suporte para o tipo que permite valor nulo.Observação
Ao ler valores inseridos pelo usuário com o
Console.ReadLine()método, é melhor habilitar uma cadeia de caracteres de tipo anulável usandostring?para evitar que o compilador de código gere um aviso ao compilar o projeto.A variável final (em comentário nº 3) é a matriz de cadeia de caracteres bidimensional chamada
ourAnimals. Você inicializou o número de linhas, definido por maxPets, como 8. O número de características que você está armazenando inicialmente é seis. As seis características correspondem ao número de variáveis de cadeia de caracteres que você examinou no código de exemplo, mas o número de características precisa ser expandido para adicionar um campo.suggestedDonationRole para baixo o arquivo Program.cs a fim de examinar o loop
forque contém um constructo de seleçãoswitchdentro do bloco de código dele.O exemplo de código é uma versão abreviada para economizar espaço.
// #4 create sample data ourAnimals array entries for (int i = 0; i < maxPets; i++) { switch (i) { case 0: animalSpecies = "dog"; animalID = "d1"; animalAge = "2"; animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken."; animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses."; animalNickname = "lola"; break; case 1: animalSpecies = "dog"; animalID = "d2"; animalAge = "9"; animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken."; animalPersonalityDescription = "loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs."; animalNickname = "gus"; break; // case 2: deleted for brevity // case 3: deleted for brevity default: animalSpecies = ""; animalID = ""; animalAge = ""; animalPhysicalDescription = ""; animalPersonalityDescription = ""; animalNickname = ""; break; } ourAnimals[i, 0] = "ID #: " + animalID; ourAnimals[i, 1] = "Species: " + animalSpecies; ourAnimals[i, 2] = "Age: " + animalAge; ourAnimals[i, 3] = "Nickname: " + animalNickname; ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription; ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription; }Observe que o
forloop usa amaxPetsvariável para estabelecer um limite superior no número de iterações após o comentário nº 4.Observe também que o constructo
switchramifica seletivamente o código para que você possa definir diferentes características de animais de estimação para os animais do conjunto de dados de exemplo.Use uma
switchinstrução para definir valores diferentes para as quatro primeiras iterações doforloop. Após o processamento de dados de exemplo, todas as características serão cadeias de caracteres vazias (ou de comprimento zero).Os valores das variáveis de característica animal são atribuídos à matriz ourAnimals na parte inferior do
forloop.Role até a parte inferior do arquivo de código no Visual Studio Code. Examine o código usado para exibir as opções de menu e capturar a entrada da seleção do usuário.
Você deve observar o seguinte código:
// #5 display the top-level menu options do { // NOTE: the Console.Clear method is throwing an exception in debug sessions Console.Clear(); Console.WriteLine("Welcome to the Contoso PetFriends app. Your main menu options are:"); Console.WriteLine(" 1. List all of our current pet information"); Console.WriteLine(" 2. Display all dogs with a specified characteristic"); Console.WriteLine(); Console.WriteLine("Enter your selection number (or type Exit to exit the program)"); readResult = Console.ReadLine(); if (readResult != null) { menuSelection = readResult.ToLower(); } // use switch-case to process the selected menu option switch (menuSelection) { case "1": // list all pet info for (int i = 0; i < maxPets; i++) { if (ourAnimals[i, 0] != "ID #: ") { Console.WriteLine(); for (int j = 0; j < 6; j++) { Console.WriteLine(ourAnimals[i, j]); } } } Console.WriteLine("\n\rPress the Enter key to continue"); readResult = Console.ReadLine(); break; case "2": // Display all dogs with a specified characteristic"); Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break; default: break; } } while (menuSelection != "exit");Reserve um minuto para analisar as duas instruções
case.Há apenas duas opções de menu trabalhando com uma versão limitada do aplicativo. O aplicativo inicial fornece apenas as funcionalidades necessárias para executar e testar o protótipo de funcionalidades.
Observe que a linha de código é
readResult = Console.ReadLine();seguida por uma verificação de um valor nulo.O código que utiliza o método
Console.ReadLine()tem o valor definido como a string anulávelreadResultpara evitar que o compilador gere um aviso ao compilar o projeto.
Verifique seu trabalho
Teste o aplicativo de console de código inicial no build do prompt de comando TERMINAL e execute o código do seu projeto com um único comando inserindo:
dotnet run.Observação
O prompt terminal deve ser aberto na pasta inicial e o TERMINAL deve ser semelhante a
..\ArrayGuidedProject\starter>Quando o código é executado, dois itens de menu são exibidos.
- Insira:
1, para testar a saída "Listar todas as informações atuais dos nossos animais de estimação" - Insira "
2" para testar a mensagem de espaço reservado "em construção"
- Insira:
Insira:
1, seguido por pressionar a tecla "Enter" para "exibir todos os animais de estimação".Verifique se todas as informações de animais de estimação são exibidas.
Ao observar os dados sobre todos os animais de estimação, o último animal de estimação exibido deve corresponder à seguinte saída:
ID #: c4 Species: cat Age: 3 Nickname: Lion Physical description: Medium sized, long hair, yellow, female, about 10 pounds. Uses litter box. Personality: A people loving cat that likes to sit on your lap. Press the Enter key to continuePressione a tecla Enter para continuar e retornar ao menu.
No prompt de menu, insira
2e pressione a tecla "Enter".Essa opção é um espaço reservado para a funcionalidade "Exibir todos os cães com uma característica especificada".
Verifique se a mensagem
UNDER CONSTRUCTIONé exibida na seleçãoDisplay all dogs with a specified characteristic.A seguinte saída deve ser exibida:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.Digite
exit, no menu do aplicativo, para encerrar o programa e feche o painel “Terminal”.O programa deve ser encerrado.
Agora você está pronto para começar a desenvolver os novos recursos.