Защо ни е това
В предишния урок изброихме инструментите на програмиста. Сега ги отваряме — всичките наведнъж, събрани в средата Visual Studio на Microsoft. Оттук нататък ще я наричаме просто средата.
Проект и решение
Проект (project)
Съвкупността от всички файлове, нужни за създаването на една компютърна програма — както писаните от програмиста, така и служебните файлове, създавани от средата.
Решение (solution)
Резултатът, който се получава от файловете на проекта след подходяща обработка. Може да е изпълнима програма, обектен код на подпрограма или цяла библиотека от подпрограми.
Едно решение може да е съставено от няколко различни проекта. Ние започваме с най-простото решение — изпълнима програма с буквено-цифров интерфейс, наричана конзолно приложение (англ. console application).
Конзола
Общото име на клавиатурата, откъдето конзолното приложение чете данни (стандартен вход), и прозореца на командния интерпретатор, където програмата извежда резултата (стандартен изход).
Създаване на конзолно приложение
Стартирай средата. В десния край на стартовия прозорец има бутон Create a new project — оттам започва нов проект. (Ако продължаваш вече започнат проект, той е в списъка Open recent вляво или зад бутона Open a project or solution.)
- Щракни
Create a new project. - От трите текстови кутии горе избери език
C#, ОСWindowsи типConsole. - Избери
Console Applicationот списъка. - В прозореца
Configure your new project, полеProject name, въведи името на проекта — напримерHello. - В
Locationзадай папката, в която ще се съхранява проектът. Запомни пълния път — ще ти трябва. - Натисни
OK. Средата отваря няколко нови прозореца и подготвя решението вместо теб.
Полето Solution name е името на решението. При конзолни приложения то съвпада с името на проекта, а полученото решение се съхранява в папката на проекта заедно с всички автоматично създадени файлове. Това води до по-добра организация на твърдия диск.
Първата програма
В основния работен прозорец се отваря страница, надписана Program.cs — в нея средата вече е поставила изходния текст на малка програма. Оцветяването на текста е автоматично.
using System;
namespace Hello
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}Програмата е готова и трябва да се компилира, т.е. да се преведе на машинен език и да се свърже с необходимите подпрограми — в случая стандартната функция WriteLine.
- Компилирай с
Build/Build SolutionилиCtrl+Shift+B. Под прозореца с програмата се появява отчет на компилатора, който завършва сBuild: 1 succeeded. - Стартирай с
Debug/Start Without DebuggingилиCtrl+F5. Отваря се конзолен прозорец с текстаHello world!.
Когато нещо се счупи
Промени думата WriteLine на Writeline и опитай да компилираш. Компилацията няма да завърши успешно и средата ще отвори прозореца Error List със съобщение:
CS0117 'Console' does not contain a definition for 'Writeline' Hello Program.cs 10Т.е. управлението на работата с конзолата не познава действието Writeline. Текстовият показалец на редактора застава върху реда, причинил грешката, а сбърканата дума се подчертава с червено.
Направи и втори опит: изтрий кавичките около текста, който искаш да изведеш. Още преди да си поискал компилиране, редакторът ще изведе съобщение в Error List — той познава синтаксиса на C# и лови много синтактични грешки, преди изобщо да си стигнал до компилатора.
Четене от клавиатурата
Освен да пишат на конзолата, програмите могат и да четат данни от клавиатурата. Ето приложението Hello1, което подканва да въведеш името си и ти отправя поздрав:
static void Main(string[] args)
{
Console.WriteLine("What is your name?");
string s = Console.ReadLine();
Console.WriteLine("Hello " + s + "!");
}Console.ReadLine()чака да въведеш ред и натиснеш Enter, след което връща въведеното като низ.- Знакът
+между низове ги слепва един за друг —"Hello " + s + "!".
Изпълнимият файл и командната процедура
Намери във файловата система папката на решението Hello, а в нея — папката на проекта. В папката на проекта има папка bin с подпапка Debug. Там е изпълнимата програма Hello.exe.
Ако я стартираш с двойно щракване, тя приключва за миг и конзолният прозорец се затваря, преди да си видял резултата. Това се оправя с командна процедура — текстов файл с разширение .bat в същата папка:
Hello
pause- Първият ред е команда към ОС да изпълни програмата
Hello.exeот папката, в която се намира процедурата. - Вторият казва да не се затваря конзолният прозорец, преди да натиснеш клавиш.
Резултатът е същият като при Ctrl+F5 — сега вече знаеш откъде идва „Press any key to close this window“.
Стандартен вход и стандартен изход
Досега свързвахме конзолата с клавиатурата и монитора. Всъщност тя може да бъде свързана с произволно място:
| Стандартен вход | Стандартен изход | |
|---|---|---|
| По подразбиране | Клавиатурата | Конзолният прозорец |
| Чете/пише се с | Console.ReadLine() | Console.WriteLine() |
| Пренасочва се с | <input.txt | >output.txt |
Пренасочването става в командната процедура. Създай текстов файл с твоето име и го съхрани като input.txt, а после нов файл Hello1.bat със следното съдържание:
Hello1 <input.txt >output.txt
pauseСтартирай процедурата с двойно щракване. Програмата ще завърши, без да чака да въведеш името си и без да пише каквото и да е на екрана: <input.txt премества стандартния вход от клавиатурата върху файла, а >output.txt премества стандартния изход във файла. Отвори output.txt, за да видиш резултата.
Задачи
Какво трябва да запомниш
- Проектът е съвкупността от файлове; решението е това, което се получава от тях. Едно решение може да съдържа няколко проекта.
Ctrl+Shift+Bкомпилира,Ctrl+F5стартира без дебъгване.- Звездичка след името на файла в редактора значи незаписани промени.
- Редакторът лови част от синтактичните грешки още преди компилиране — прозорецът
Error Listсочи реда и описва грешката. - Стандартният вход и изход не са задължително клавиатурата и екранът — с
<и>в командна процедура се пренасочват към файлове.