CodeGym /Kurslar /C# SELF /C# layihəsinə baş vururuq

C# layihəsinə baş vururuq

C# SELF
Səviyyə , Dərs
Mövcuddur

1. C# layihəsinin ümumi strukturu

Sənin proqramın — sadəcə bir fayl deyil, bütöv bir fayllar, qovluqlar və ayarların kolleksiyasıdır. C# — ciddi tipli dildir, böyük tətbiqlər üçün hər şeyi qaydasında saxlamaq vacibdir. Əgər layihənin strukturunu saymasan, kodun tez bir zamanda elektron labirintə çevriləcək, orda hətta öz "Salam, Dünya!" çıxış sətrini tapmaq mümkün olmayacaq.

Üstəlik, layihənin strukturunu başa düşmək — müsahibələrdə qiymətləndirilən bir skill-dir. Bu, evdə açarların və TV pultunun harada olduğunu bilmək kimidir — yaşamaq asanlaşır!

Gəlin təsəvvür edək ki, bizim C# layihəmiz — hüceyrələri olan bir qutudur:

MyFirstConsoleApp/
├── MyFirstConsoleApp.csproj
├── Program.cs
├── Properties/
│    └── launchSettings.json
├── bin/
│    └── ... (burada kompilyasiya olunmuş proqram yerləşir)
├── obj/
│    └── ... (burada aralıq kompilyasiya faylları saxlanılır)

Strukturun detalları:

Adı Nəyə lazımdır
MyFirstConsoleApp.csproj
Layihə faylı: proqramının “pasportu”, burada bütün layihə ayarları yazılıb.
Program.cs
Əsas fayl, giriş nöqtəsi (Main). Adətən ilk kodunu məhz buraya yazırsan.
Properties/
Layihənin ayarları olan qovluq, məsələn, IDE-dən necə işə salınacağı.
bin/
“Hazır məhsullar üçün səbət” — burada yığılmış (kompilyasiya olunmuş) icra faylı yerləşir.
obj/
Kompilyasiya üçün daxili işçi fayllar (roman yazanda qaralama kimi, bura nadir hallarda baxırsan).

2. Layihə faylı (.csproj)

.csproj uzantılı fayl — layihənin ürəyi və beynidir. Bütün qlobal ayarlar məhz burada yazılıb: dil versiyası, asılılıqlar, hansı fayllar kompilyasiya olunacaq, hansı paketlər qoşulub və s. Solution Explorer-də Files tabına keç.

Konsol tətbiqi üçün nümunə fayl:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net9.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

</Project>
  • <TargetFramework>net9.0</TargetFramework> — layihənin .NET 9 üçün nəzərdə tutulduğunu göstərir.
  • <OutputType>Exe</OutputType> — nəticədə icra faylı (.exe Windows üçün) alınacaq deməkdir.
  • <PropertyGroup> blokunda əsas parametrlər saxlanılır.
  • Bu faylda əlavə NuGet paketləri əlavə edə, kompilyasiya ayarlarını dəyişə, funksiyaları aktiv/deaktiv edə bilərsən.

3. Proqramın əsas faylı: Program.cs

Əgər layihəni teatrla müqayisə etsək, Program.cs — səhnədir, qalan fayllar isə kulisdir. Məhz burada tətbiqin "giriş nöqtəsi" — Main metodu yerləşir.


// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Salam, dünya!");
        }
    }
}
Minimum Program.cs nümunəsi
  • namespace — ad məkanı, class-ları qruplaşdırmağa və ad konfliktlərindən qaçmağa kömək edir.
  • class Program — əsas class, burada Main metodu yerləşir.
  • static void Main(string[] args) — mütləq giriş nöqtəsi — proqram buradan başlayır.
  • Console.WriteLine() — artıq tanış olduğun dünyaya mesaj vermə üsuludur.

Tətbiqimizi yeniləyirik

Xatırlayaq ki, əvvəlki dərslərdə istifadəçidən ad soruşub onu salamlayan mini-tətbiq yazmışdıq. Budur nümunə:


// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Zəhmət olmasa adınızı daxil edin: ");
            string name = Console.ReadLine();
            Console.WriteLine($"Xoş gəldin, {name}! Uzun ömür və firavanlıq.");
        }
    }
}

Layihəni işə sal: yaşıl ▶️ Run düyməsinə kliklə.

Əgər hər şey uğurlu oldu, aşağıda Run tabı açılacaq. Görəcəksən ki, proqram işə düşüb və səndən Zəhmət olmasa adınızı daxil edin: sualına cavab gözləyir. Konsolda istənilən ad (məsələn, "Pişik") yaz və Enter düyməsini bas.

Enter basdıqdan dərhal sonra proqram sənin daxil etdiyin məlumatı emal edib, adınla son mesajı çıxaracaq. Proqram işini bitirdi və nəticəni gördük.

4. Kodunu necə yazmalısan: əsas qaydalar

Kodu harada yazmaq lazımdır?

Əsas məntiqi əvvəlcə Program.cs faylında, Main metodunda yazmaq daha yaxşıdır. Tətbiqin böyüdükcə yeni fayllar və class-lar yaradacaqsan, amma hələlik tələsmə — ən maraqlı şeylər məhz burada baş verir.

Main-də nə etmək olar (və olmaz)?

  • Olar: dəyişənlər elan etmək, hesablamalar yazmaq, metodlar çağırmaq, məlumat çıxarmaq/oxumaq.
  • Olmaz: kodu metod və ya class-dan kənarda yazmaq (məsələn, sadəcə Console.WriteLine("Salam"); sətrini Main-dən kənarda yazmaq olmaz!).

Şərhlər

Kodunu özün və başqaları üçün şərh et. Bir sətrlik şərhlər üçün //, çoxsətrli üçün /* ... */ istifadə et. Sonra bu qəribə kod parçasını niyə yazdığını anlamaq nə qədər asan olsa, bir o qədər yaxşıdır.

// Bu bir sətrlik şərhdir

/*
 Bu isə —
 çoxsətrlidir.
*/

5. Proqram necə icra olunur?

Sənin proqramın həmişə Main metodundan başlayır. Bu sətrlərdən əvvəl olan hər şey ignor olunur. Başlanğıcda nəsə etmək istəyirsən? Onu Main-ə qoy.

Nümunə — sadələşdirilmiş blok-sxem (kod → işə salma):

Proqramın başlanğıcı
     |
     v
Main metodu
     |
     v
Main daxilindəki təlimatların icrası (ardıcıllıqla)
     |
     v
Proqramın sonu

6. Tətbiqin böyüməsi: yeni faylların əlavə olunması

Yeni fayl nə vaxt yaratmaq lazımdır?

Kodun artıq bir ekrana sığmırsa, dəyişənləri yadda saxlamaq olmursa, kodu hissələrə bölmək vaxtıdır.

Məsələn: kalkulyator yazırsansa, ayrıca Calculator.cs faylı yaradıb, ayrıca class-ı ora köçürmək olar.

MyFirstConsoleApp/
├── Program.cs
├── Calculator.cs  // Kalkulyatorun məntiqi üçün yeni fayl

Rider-də yeni fayl necə əlavə olunur

  1. Solution Explorer ağacında layihəyə sağ klik → "Add" → "New File" (və ya "New Class").
  2. Fayla mənalı ad ver.
  3. Faylda yeni class və ya funksiya yaz.
// Calculator.cs
namespace MyFirstConsoleApp
{
    class Calculator
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
    }
}

İndi isə onu Program.cs-dən istifadə edirik:

// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int sum = Calculator.Add(2, 3);        //Calculator class-ından Add funksiyasını istifadə edirik
            Console.WriteLine($"2 + 3 = {sum}");
        }
    }
}

7. "Build" və "Run" — pərdə arxasında nə baş verir?

Run (və ya F5) basanda, IDE:

  • Sintaksisi yoxlayır və kodunu binar fayla (.exe və ya .dll) yığır, bin/Debug/net9.0/ və ya bin/Release/net9.0/ qovluğuna qoyur.
  • Yığılmış faylı işə salır.
  • Nəticəni terminal/konsole çıxarır, sən də onu görürsən.

bin/ və obj/: bu qovluqlar nəyə lazımdır?

  • bin/ — burada hazır məhsulun (yığılmış proqramlar) yerləşir.
  • obj/ — burada kompilyator üçün aralıq hesablamalar üçün lazım olan müvəqqəti fayllar saxlanılır.

Adətən bu qovluqları rahatlıqla ignor edə bilərsən, onların içindəkilər lazım olanda avtomatik yenidən yığılır.

8. Kod yazarkən və layihə ilə işləyərkən tez-tez rast gəlinən səhvlər

Kod yazmaq — klaviaturaya kor-koranə basmaq deyil. CS5001: Program does not contain a static 'Main' method suitable for an entry point kimi səhvlər çıxan kimi proqramçılar Google-da axtarışa başlayır, IDE isə daha çətin dildə şikayət edir.

  • Ən çox rast gəlinən səhvlərdən biri — kodun metod və ya class-dan kənarda olmasıdır. C#-da proqram faylında birbaşa ifadə yazmaq olmaz. Hər şey class və metod daxilində olmalıdır!
  • Fayl və class adlarının fərqli olması. Olar, amma fayllara və class-lara eyni, aydın adlar vermək daha yaxşıdır — həm özün, həm də gələcək kolleqan üçün rahatdır.
  • Ad məkanlarında (namespace) çaşqınlıq. Əgər class-ı başqa namespace-də yaratmısansa, onu using ilə qoşmağı unutma.
  • Giriş nöqtəsini unutmaq. Əgər Main metodunu silmisən və ya adını dəyişmisənsə, proqram işə düşməyəcək.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION