Kurz: Vytvoření jednoduché konzolové aplikace v jazyce C# v sadě Visual Studio (část 1 ze 2)
V tomto kurzu pomocí sady Visual Studio vytvoříte a spustíte konzolovou aplikaci jazyka C# a prozkoumáte některé funkce integrovaného vývojového prostředí (IDE) sady Visual Studio. Tento kurz je 1. částí dvoudílné série kurzů.
V tomto kurzu provedete následující úlohy:
- Vytvořte projekt sady Visual Studio.
- Vytvořte konzolovou aplikaci jazyka C#.
- Ladění aplikace
- Zavřete aplikaci.
- Zkontrolujte celý kód.
V části 2 rozšíříte tuto aplikaci o další projekty, naučíte se ladění triků a odkazujete na balíčky třetích stran.
Požadavky
Musíte mít nainstalovanou sadu Visual Studio.
Pokud jste visual Studio ještě nenainstalovali, přejděte na stránku pro stažení sady Visual Studio a nainstalujte ji zdarma.
Vytvoření projektu
Začněte vytvořením projektu aplikace v jazyce C#. Typ projektu obsahuje všechny soubory šablony, které potřebujete.
Otevřete Visual Studio a v okně Start vyberte Vytvořit nový projekt .
V okně Vytvořit nový projekt zvolte v seznamu Jazyků jazyk C#. Potom ze seznamu typů projektů a konzoly ze seznamu typů projektů zvolte Windows.
Po použití filtrů jazyka, platformy a typu projektu zvolte šablonu konzolové aplikace a pak vyberte Další.
Poznámka:
Pokud šablonu konzolové aplikace nevidíte, vyberte Nainstalovat další nástroje a funkce.
V Instalační program pro Visual Studio vyberte úlohu vývoje pro různé platformy .NET Core.
V Instalační program pro Visual Studio vyberte Upravit. Může se zobrazit výzva k uložení práce. Výběrem možnosti Pokračovat nainstalujte úlohu.
Vraťte se ke kroku 2 v tomto postupu Vytvoření projektu.
V okně Konfigurovat nový projekt zadejte nebo zadejte kalkulačkudo pole Název projektu. Pak vyberte Další.
V okně Další informace ověřte, že se v poli Cílová architektura zobrazí .NET Core 3.1. Potom vyberte Vytvořit.
Visual Studio otevře nový projekt, který obsahuje výchozí kód Hello World. Pokud ho chcete zobrazit v editoru, vyberte soubor kódu Program.cs v okně Průzkumník řešení, který je obvykle na pravé straně sady Visual Studio.
Výchozí kód "Hello World" volá metodu WriteLine pro zobrazení literálového řetězce "Hello, World!" v okně konzoly. Pokud stisknete klávesu F5, můžete spustit výchozí program v režimu ladění. Po spuštění aplikace v ladicím programu zůstane okno konzoly otevřené. Stisknutím libovolné klávesy okno konzoly zavřete.
Otevřete Visual Studio a v okně Start vyberte Vytvořit nový projekt .
V okně Vytvořit nový projekt vyberte Všechny jazyky a pak v rozevíracím seznamu zvolte C# . Ze seznamu Všechny platformy zvolte Windowsa v seznamu Všechny typy projektů zvolte Konzola.
Po použití filtrů jazyka, platformy a typu projektu zvolte šablonu konzolové aplikace a pak vyberte Další.
Poznámka:
Pokud šablonu konzolové aplikace nevidíte, vyberte Nainstalovat další nástroje a funkce.
V Instalační program pro Visual Studio vyberte úlohu vývoje desktopových aplikací .NET.
V Instalační program pro Visual Studio vyberte Upravit. Může se zobrazit výzva k uložení práce. Výběrem možnosti Pokračovat nainstalujte úlohu.
Vraťte se ke kroku 2 v tomto postupu Vytvoření projektu.
V okně Konfigurovat nový projekt zadejte nebo zadejte kalkulačkudo pole Název projektu a pak vyberte Další.
V okně Další informace vyberte .NET 8.0 pro pole Target Framework. Potom vyberte Vytvořit.
Visual Studio otevře nový projekt, který obsahuje výchozí kód Hello World. Pokud ho chcete zobrazit v editoru, vyberte soubor kódu Program.cs v okně Průzkumník řešení, který je obvykle na pravé straně sady Visual Studio.
Jeden příkaz kódu volá metodu WriteLine k zobrazení literálového řetězce "Hello, World!" v okně konzoly. Pokud stisknete klávesu F5, můžete spustit výchozí program v režimu ladění. Po spuštění aplikace v ladicím programu zůstane okno konzoly otevřené. Stisknutím libovolné klávesy okno konzoly zavřete.
Poznámka:
Od .NET 6 vygenerují nové projekty pomocí šablony konzoly jiný kód než předchozí verze. Další informace najdete na stránce Nové šablony jazyka C#, které generují příkazy nejvyšší úrovně.
Vytvoření aplikace
V této části dokončíte následující úlohy:
- Prozkoumejte základní celočíselnou matematiku v jazyce C#.
- Přidejte kód pro vytvoření základní aplikace kalkulačky.
- Laděním aplikace vyhledejte a opravte chyby.
- Zpřesněte kód, aby byl efektivnější.
Seznámení s matematikou celých čísel
Začněte základní celočíselnou matematikou v jazyce C#.
V editoru kódu odstraňte výchozí kód Hello World.
Konkrétně odstraňte řádek, který říká ,
Console.WriteLine("Hello World!");
.Na svém místě zadejte následující kód:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Všimněte si, že když zadáte kód, nabízí funkce IntelliSense v sadě Visual Studio možnost automatického dokončování položky.
Výběrem zeleného tlačítka Start vedle kalkulačky sestavte a spusťte program nebo stiskněte klávesu F5.
Otevře se okno konzoly, které zobrazí součet 42 + 119, což je 161.
(Volitelné) Pokud chcete změnit výsledek, můžete změnit operátor. Operátor v
int c = a + b;
řádku kódu můžete například změnit+
na-
odčítání,*
násobení nebo/
dělení. Když pak program spustíte, výsledek se také změní.Zavřete okno konzoly.
V Průzkumník řešení v pravém podokně vyberte Program.cs, aby se soubor zobrazil v editoru kódu.
V editoru kódu nahraďte výchozí kód "Hello World", který říká
Console.WriteLine("Hello World!");
.Řádek nahraďte následujícím kódem:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Pokud zadáte kód, nabízí funkce IntelliSense sady Visual Studio možnost automatického dokončování položky.
Pokud chcete sestavit a spustit aplikaci, stiskněte klávesu F5 nebo vyberte zelenou šipku vedle názvu Kalkulačka na horním panelu nástrojů.
Otevře se okno konzoly se součtem 42 + 119, což je 161.
Zavřete okno konzoly.
Volitelně můžete změnit operátor tak, aby změnil výsledek. Operátor v
int c = a + b;
řádku kódu můžete například změnit+
na-
odčítání,*
násobení nebo/
dělení. Když aplikaci spustíte, výsledek se odpovídajícím způsobem změní.
Přidání kódu pro vytvoření kalkulačky
Pokračujte přidáním složitější sady kódu kalkulačky do projektu.
V editoru kódu nahraďte veškerý kód v Program.cs následujícím novým kódem:
using System; namespace Calculator { class Program { static void Main(string[] args) { // Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey(); } } }
Vyberte tlačítko Kalkulačka nebo stisknutím klávesy F5 spusťte aplikaci.
Otevře se okno konzoly.
V okně konzoly postupujte podle pokynů a sečtěte čísla 42 a 119 dohromady.
Aplikace by měla vypadat podobně jako na následujícím snímku obrazovky:
V editoru kódu nahraďte veškerý kód v Program.cs následujícím novým kódem:
// Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey();
Vyberte tlačítko Kalkulačka nebo stisknutím klávesy F5 spusťte aplikaci.
Otevře se okno konzoly.
V okně konzoly postupujte podle pokynů a sečtěte čísla 42 a 119 dohromady.
Aplikace by měla vypadat podobně jako na následujícím snímku obrazovky:
Přidání desetinných míst
Teď kód upravte a přidejte další funkce.
Aktuální aplikace kalkulačky přijímá a vrací pouze celá čísla. Pokud například spustíte aplikaci a vydělíte číslo 42 číslem 119, bude výsledkem nula, což není přesné.
Oprava kódu pro zlepšení přesnosti zpracováním desetinných míst:
Z Program.cs v editoru sady Visual Studio otevřete stisknutím kláves Ctrl+H ovládací prvek Najít a nahradit.
Do ovládacího prvku zadejte hodnotu int a do pole Nahradit zadejte hodnotu float.
Vyberte ikony pro rozlišovat velká a malá písmena a v ovládacím prvku vyberte celé slovo nebo stiskněte Alt +C a Alt+W.
Vyberte ikonu Nahradit vše nebo stisknutím klávesy Alt+A spusťte hledání a nahraďte ho.
Spusťte aplikaci kalkulačky znovu a vydělte číslo 42 číslem 119.
Aplikace teď místo nuly vrátí desetinné číslo.
Aplikace teď může vytvořit desetinné číslo. Proveďte několik dalších úprav kódu, aby aplikace také mohl vypočítat desetinné čárky.
Pomocí Find a Replace ovládací prvek změnit každou instanci
float
proměnné nadouble
, a změnit každou instanciConvert.ToInt32
metody naConvert.ToDouble
.Spusťte aplikaci kalkulačky a vydělte číslo 42,5 číslem 119,75.
Aplikace teď přijímá desetinné hodnoty a jako výsledek vrátí delší desetinnou číslici.
V části Revize kódu zmenšete počet desetinných míst ve výsledcích.
Ladění aplikace
Vylepšili jste základní aplikaci kalkulačky, ale vaše aplikace ještě nezpracuje výjimky, jako jsou chyby uživatelského vstupu. Pokud se například uživatelé pokusí dělit nulou nebo zadají neočekávaný znak, může aplikace přestat fungovat, vrátit chybu nebo vrátit neočekávaný nečíselný výsledek.
Pojďme si projít několik běžných chyb uživatelského vstupu, vyhledat je v ladicím programu, pokud se tam objeví, a opravit je v kódu.
Tip
Další informace o ladicím programu a jeho fungování najdete v tématu První seznámení s ladicím programem sady Visual Studio.
Oprava chyby "dělit nulou"
Pokud se pokusíte vydělit číslo nulou, aplikace konzoly se může ukotvit a pak vám ukáže, co je v editoru kódu špatně.
Poznámka:
Někdy se aplikace neukotvuje a ladicí program nezobrazuje chybu dělení nulou. Místo toho může aplikace vrátit neočekávaný nečíselný výsledek, například symbol nekonečna. Stále platí následující oprava kódu.
Pojďme změnit kód pro zpracování této chyby. V Program.cs nahraďte kód case "d":
následujícím kódem:
// Ask the user to enter a non-zero divisor until they do so.
while (num2 == 0)
{
Console.WriteLine("Enter a non-zero divisor: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
Po nahrazení kódu by část s příkazem switch
měla vypadat podobně jako na následujícím snímku obrazovky:
Když teď vydělíte jakékoli číslo nulou, aplikace požádá o další číslo a bude se ptát, dokud nezadáte nenulové číslo.
Oprava chyby formát
Pokud zadáte abecední znak, když aplikace očekává číselný znak, aplikace se zablokuje. Visual Studio vám ukáže, co je v editoru kódu špatně.
Pokud chcete této výjimce zabránit, můžete refaktorovat kód, který jste zadali dříve.
Revize kódu
Místo toho, aby třída zpracovávala program
veškerý kód, můžete aplikaci rozdělit do dvou tříd: Calculator
a Program
.
Třída Calculator
zpracovává hromadnou práci výpočtu a Program
třída zpracovává uživatelské rozhraní a práci při zpracování chyb.
Pojďme na to.
V Program.cs odstraňte vše a přidejte následující novou
Calculator
třídu:class Calculator { public static double DoOperation(double num1, double num2, string op) { double result = double.NaN; // Default value is "not-a-number" if an operation, such as division, could result in an error. // Use a switch statement to do the math. switch (op) { case "a": result = num1 + num2; break; case "s": result = num1 - num2; break; case "m": result = num1 * num2; break; case "d": // Ask the user to enter a non-zero divisor. if (num2 != 0) { result = num1 / num2; } break; // Return text for an incorrect option entry. default: break; } return result; } }
Přidejte také novou
Program
třídu následujícím způsobem:class Program { static void Main(string[] args) { bool endApp = false; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); while (!endApp) { // Declare variables and set to empty. string numInput1 = ""; string numInput2 = ""; double result = 0; // Ask the user to type the first number. Console.Write("Type a number, and then press Enter: "); numInput1 = Console.ReadLine(); double cleanNum1 = 0; while (!double.TryParse(numInput1, out cleanNum1)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput1 = Console.ReadLine(); } // Ask the user to type the second number. Console.Write("Type another number, and then press Enter: "); numInput2 = Console.ReadLine(); double cleanNum2 = 0; while (!double.TryParse(numInput2, out cleanNum2)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput2 = Console.ReadLine(); } // Ask the user to choose an operator. Console.WriteLine("Choose an operator from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); string op = Console.ReadLine(); try { result = Calculator.DoOperation(cleanNum1, cleanNum2, op); if (double.IsNaN(result)) { Console.WriteLine("This operation will result in a mathematical error.\n"); } else Console.WriteLine("Your result: {0:0.##}\n", result); } catch (Exception e) { Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") endApp = true; Console.WriteLine("\n"); // Friendly linespacing. } return; } }
Vyberte tlačítko Kalkulačka nebo stisknutím klávesy F5 spusťte aplikaci.
Postupujte podle pokynů a vydělte číslo 42 číslem 119. Výsledky by měly vypadat podobně jako na následujícím snímku obrazovky:
Teď můžete spouštět další výpočty, dokud se nerozhodnete zavřít konzolovou aplikaci. Ve výsledcích je také méně desetinných míst. A pokud zadáte nesprávný znak, zobrazí se příslušná chybová odpověď.
Uzavření aplikace
Pokud jste to ještě neudělali, zavřete aplikaci Kalkulačka.
Zavřete podokno Výstup v sadě Visual Studio.
V sadě Visual Studio uložte aplikaci stisknutím kláves Ctrl+S.
Přidání správy zdrojového kódu Gitu
Teď, když jste vytvořili aplikaci, můžete ji přidat do úložiště Git. Visual Studio usnadňuje tento proces pomocí nástrojů Gitu, které můžete použít přímo z integrovaného vývojového prostředí (IDE).
Tip
Git je nejčastěji používaný moderní systém správy verzí, takže ať už jste profesionální vývojář nebo se učíte kódovat, Git může být velmi užitečný. Pokud s Gitem začínáte, https://git-scm.com/ je web dobrým místem, kde začít. Tam můžete najít taháky, oblíbenou online knihu a videa základy Gitu.
Pokud chcete kód přidružit k Gitu, začněte vytvořením nového úložiště Git, ve kterém se váš kód nachází:
Na stavovém řádku v pravém dolním rohu sady Visual Studio vyberte Přidat do správy zdrojového kódu a pak vyberte Git.
V dialogovém okně Vytvořit úložiště Git se přihlaste k GitHubu.
Název úložiště se automaticky naplní na základě umístění vaší složky. Vaše nové úložiště je ve výchozím nastavení soukromé, což znamená, že jste jediný, kdo k němu má přístup.
Tip
Bez ohledu na to, jestli je vaše úložiště veřejné nebo soukromé, je nejlepší mít bezpečně uložené vzdálené zálohování kódu na GitHubu. I když nepracujete s týmem, vzdálené úložiště vám zpřístupní váš kód z libovolného počítače.
Vyberte Vytvořit a nasdílení změn.
Po vytvoření úložiště se na stavovém řádku zobrazí podrobnosti o stavu.
První ikona se šipkami ukazuje, kolik odchozích a příchozích potvrzení je ve vaší aktuální větvi. Pomocí této ikony můžete vyžádat příchozí potvrzení nebo odeslat odchozí potvrzení. Můžete se také rozhodnout, že se budou tyto potvrzení zobrazovat jako první. Uděláte to tak, že vyberete ikonu a pak vyberete Zobrazit odchozí/příchozí poštu.
Druhá ikona s tužkou zobrazuje počet nepotvrzených změn kódu. Tuto ikonu můžete vybrat, pokud chcete tyto změny zobrazit v okně Změny Gitu.
Další informace o používání Gitu s vaší aplikací najdete v dokumentaci ke správě verzí sady Visual Studio.
Revize: Kód je dokončený.
V tomto kurzu jste provedli mnoho změn v aplikaci Kalkulačka. Aplikace teď zpracovává výpočetní prostředky efektivněji a zpracovává většinu chyb uživatelského vstupu.
Tady je kompletní kód, a to vše na jednom místě:
class Calculator
{
public static double DoOperation(double num1, double num2, string op)
{
double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error.
// Use a switch statement to do the math.
switch (op)
{
case "a":
result = num1 + num2;
break;
case "s":
result = num1 - num2;
break;
case "m":
result = num1 * num2;
break;
case "d":
// Ask the user to enter a non-zero divisor.
if (num2 != 0)
{
result = num1 / num2;
}
break;
// Return text for an incorrect option entry.
default:
break;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
bool endApp = false;
// Display title as the C# console calculator app.
Console.WriteLine("Console Calculator in C#\r");
Console.WriteLine("------------------------\n");
while (!endApp)
{
// Declare variables and set to empty.
string numInput1 = "";
string numInput2 = "";
double result = 0;
// Ask the user to type the first number.
Console.Write("Type a number, and then press Enter: ");
numInput1 = Console.ReadLine();
double cleanNum1 = 0;
while (!double.TryParse(numInput1, out cleanNum1))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput1 = Console.ReadLine();
}
// Ask the user to type the second number.
Console.Write("Type another number, and then press Enter: ");
numInput2 = Console.ReadLine();
double cleanNum2 = 0;
while (!double.TryParse(numInput2, out cleanNum2))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput2 = Console.ReadLine();
}
// Ask the user to choose an operator.
Console.WriteLine("Choose an operator from the following list:");
Console.WriteLine("\ta - Add");
Console.WriteLine("\ts - Subtract");
Console.WriteLine("\tm - Multiply");
Console.WriteLine("\td - Divide");
Console.Write("Your option? ");
string op = Console.ReadLine();
try
{
result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
if (double.IsNaN(result))
{
Console.WriteLine("This operation will result in a mathematical error.\n");
}
else Console.WriteLine("Your result: {0:0.##}\n", result);
}
catch (Exception e)
{
Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
}
Console.WriteLine("------------------------\n");
// Wait for the user to respond before closing.
Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
if (Console.ReadLine() == "n") endApp = true;
Console.WriteLine("\n"); // Friendly linespacing.
}
return;
}
}
Další kroky
Pokračujte druhou částí tohoto kurzu: