ููŠ ุงู„ู…ู‚ุงู„ ุฏู‡ุŒ ู‡ู†ุชูƒู„ู… ุจุงู„ุชูุตูŠู„ ุนู† ุงู„ู‡ูŠูƒู„ ุงู„ุฃุณุงุณูŠ ู„ุฃูŠ ุจุฑู†ุงู…ุฌ ุจูŠุชูƒุชุจ ุจู„ุบุฉ C#ุŒ ูˆู‡ู†ุดุฑุญ ูƒู„ ุฌุฒุก ุนุดุงู† ุชูƒูˆู† ูุงู‡ู… ุงู„ูƒูˆุฏ ุงู„ู„ูŠ ุจุชูƒุชุจู‡ ูƒูˆูŠุณ. ู„ูˆ ุญุณูŠุช ุฅู† ููŠู‡ ุญุงุฌุงุช ู…ุด ูˆุงุถุญุฉ ู…ู† ุฃูˆู„ ู…ุฑุฉุŒ ุนุงุฏูŠ ุฌุฏู‹ุงุŒ ู…ู…ูƒู† ุชุฑุฌุน ุชู‚ุฑุงู‡ุง ุชุงู†ูŠ ุจุนุฏ ูุชุฑุฉ ูˆู‡ุชู„ุงู‚ูŠ ุงู„ุฃู…ูˆุฑ ุจู‚ุช ุฃุณู‡ู„.

ุฅูŠู‡ ู‡ูŠ ู„ุบุฉ C# ูˆุจู†ุนู…ู„ ุจูŠู‡ุง ุฅูŠู‡ุŸ

ู„ุบุฉ ุงู„ู€ C# (ุจุชุชู†ุทู‚ ุณูŠ ุดุงุฑุจ) ู‡ูŠ ูˆุงุญุฏุฉ ู…ู† ู„ุบุงุช ุงู„ุจุฑู…ุฌุฉ ุงู„ู„ูŠ ุนู…ู„ุชู‡ุง ุดุฑูƒุฉ ู…ุงูŠูƒุฑูˆุณูˆูุช ุนุดุงู† ุชุดุชุบู„ ู…ุน ุจูŠุฆุฉ ุงู„ุนู…ู„ ุจุชุงุนุชู‡ุง ุฒูŠ ุงู„ู€ .NET Framework ูˆุงู„ู€ .NET Core.

ุงู„ู„ุบุฉ ุฏูŠ ู‚ูˆูŠุฉ ุฌุฏู‹ุง ูˆุจุชุฌู…ุน ู…ู…ูŠุฒุงุช ู…ู† ู„ุบุงุช ุชุงู†ูŠุฉ ูƒุชูŠุฑ ุฒูŠ C++ ูˆ JavaุŒ ุจุงู„ุฅุถุงูุฉ ู„ู…ู…ูŠุฒุงุชู‡ุง ุงู„ุฎุงุตุฉ. ุฃู‡ู… ุญุงุฌุฉ ุจุชู…ูŠุฒู‡ุง ุฅู†ู‡ุง Object-Oriented Programming ุจุดูƒู„ ูƒุงู…ู„ุŒ ูŠุนู†ูŠ ุจุชุฏุนู… ูƒู„ ู…ุจุงุฏุฆ ุงู„ู€ OOP ุงู„ุฃุฑุจุนุฉ.

ุจุงุณุชุฎุฏุงู… C#ุŒ ุจู†ู‚ุฏุฑ ู†ุจู†ูŠ ุฃู†ูˆุงุน ูƒุชูŠุฑ ู…ู† ุงู„ุชุทุจูŠู‚ุงุชุŒ ุฒูŠ:

  • ุชุทุจูŠู‚ุงุช ุงู„ูˆูŠุจ (Web Application).
  • ุชุทุจูŠู‚ุงุช ุฏูŠุณูƒุชูˆุจ (Windows Forms).
  • ุชุทุจูŠู‚ุงุช ุงู„ูƒูˆู†ุณูˆู„ (Console Application).
  • ู…ูƒุชุจุงุช ุฃูƒูˆุงุฏ (Class Library).

Project Structure

ู„ู…ุง ุจู†ุดุชุบู„ ุจู€ .NETุŒ ุจู†ุณุชุฎุฏู… ุจุฑู†ุงู…ุฌ ุงุณู…ู‡ Visual StudioุŒ ูˆุฏู‡ ูŠุนุชุจุฑ ุจูŠุฆุฉ ุชุทูˆูŠุฑ ู…ุชูƒุงู…ู„ุฉ (IDE) ุจู†ูƒุชุจ ูˆู†ุดุบู„ ุนู„ูŠู‡ุง ุงู„ุฃูƒูˆุงุฏ ุจุชุงุนุชู†ุง. ุงู„ุชู†ุธูŠู… ุจูŠูƒูˆู† ุจุงู„ุดูƒู„ ุฏู‡:

  • ุบุงู„ุจู‹ุง ุจู†ุนู…ู„ Folder (ู…ุฌู„ุฏ) ู„ูƒู„ Solution. ุงู„ู€ Solution ู‡ูˆ ุงู„ุญุงูˆูŠุฉ ุงู„ูƒุจูŠุฑุฉ ุงู„ู„ูŠ ุจุชุถู… ูƒู„ ุงู„ู…ุดุงุฑูŠุน ุงู„ู…ุฑุชุจุทุฉ ุจุจุนุถ.
  • ุฌูˆู‡ ุงู„ู€ Folder ุฏู‡ุŒ ุจูŠูƒูˆู† ููŠู‡ ู…ู„ู ุงู…ุชุฏุงุฏู‡ .sln. ุฏู‡ ู…ุฌุฑุฏ ู…ู„ู ุฅุนุฏุงุฏุงุช (configuration file) ู„ู„ู€ Solution ูƒู„ู‡ ูˆู„ู„ู…ุดุงุฑูŠุน (Projects) ุงู„ู„ูŠ ุชุญุชู‡.
  • ุฌูˆู‡ ุงู„ู€ Solution ู†ูุณู‡ุŒ ุจู†ุนู…ู„ Folder ู„ูƒู„ Project ู„ูˆุญุฏู‡ ุนุดุงู† ู†ู†ุธู… ุดุบู„ู†ุง.

  • ูƒู„ Project ุจุฑุถู‡ ุจูŠูƒูˆู† ู„ูŠู‡ ู…ู„ู ุงู„ุฅุนุฏุงุฏุงุช ุงู„ุฎุงุต ุจูŠู‡ (ุงู…ุชุฏุงุฏู‡ .csproj ู„ูˆ ุงู„ู…ุดุฑูˆุน ู…ูƒุชูˆุจ ุจู€ C#).
  • ู…ู…ูƒู† ู†ุบูŠุฑ ุดูˆูŠุฉ Properties (ุฎุตุงุฆุต) ุฎุงุตุฉ ุจุงู„ู€ Project ุฏู‡ ู„ูˆ ุนู…ู„ุช ุนู„ูŠู‡ right-click ููŠ Visual Studio ูˆุงุฎุชุฑุช Properties.

ุฅุฒุงูŠ ุชุนู…ู„ Console ApplicationุŸ

ุงู„ู€ Console Application ู‡ูˆ ุฃุจุณุท ู†ูˆุน ู…ู† ุงู„ุชุทุจูŠู‚ุงุชุŒ ุจูŠุดุชุบู„ ู…ู† ุฎู„ุงู„ ุดุงุดุฉ ุงู„ุฃูˆุงู…ุฑ (Command Prompt) ูˆู…ููŠู‡ูˆุด ูˆุงุฌู‡ุฉ ุฑุณูˆู…ูŠุฉ (GUI). ุฏู‡ ุจูŠูƒูˆู† ุฃูุถู„ ุจุฏุงูŠุฉ ู„ุฃูŠ ุญุฏ ุจูŠุชุนู„ู… C#.

ุจุจุณุงุทุฉุŒ ุจุชูุชุญ Visual Studio ูˆุชุฎุชุงุฑ Create a New ProjectุŒ ูˆุจุนุฏู‡ุง ุจุชุฎุชุงุฑ Console AppุŒ ูˆุชุญุฏุฏ ุงุณู… ุงู„ู…ุดุฑูˆุน ูˆุงู„ู…ูƒุงู† ุงู„ู„ูŠ ู‡ูŠุชุญูุธ ููŠู‡ุŒ ูˆุงู„ุจุฑู†ุงู…ุฌ ู‡ูŠุฌู‡ุฒู„ูƒ ุงู„ู‡ูŠูƒู„ ุงู„ุฃุณุงุณูŠ ู„ู„ู…ุดุฑูˆุน.

ุงู„ู€ Syntax ุงู„ุฃุณุงุณูŠ ููŠ C#

ุฃูŠ ุญุงุฌุฉ ููŠ ู„ุบุฉ C# ู‡ูŠ ุนุจุงุฑุฉ ุนู† OOP ุจุดูƒู„ ุจุญุช. ุนุดุงู† ูƒุฏู‡ ุฏุงูŠู…ู‹ุง ู‡ุชู„ุงู‚ูŠ ู†ูุณูƒ ุจุชุชุนุงู…ู„ ู…ุน Classes. ูˆุจุณุจุจ ุฏู‡ุŒ ุงู„ู€ function ุงู„ุฃุณุงุณูŠุฉ ุงู„ู„ูŠ ุงู„ุจุฑู†ุงู…ุฌ ุจูŠุจุฏุฃ ูŠุดุชุบู„ ู…ู†ู‡ุง (ุงู„ู„ูŠ ู‡ูŠ Main) ู…ูŠู†ูุนุด ุชุชูƒุชุจ ู„ูˆุญุฏู‡ุงุŒ ู„ุงุฒู… ุชูƒูˆู† ุฌูˆู‡ Class.

ุงู„ู‡ูŠูƒู„ ุงู„ุฃุณุงุณูŠ ู„ุฃูŠ ูƒูˆุฏ C# ุจุณูŠุท ุจูŠูƒูˆู† ูƒุฏู‡:

  1. ุงู„ู€ Namespace: ุฃูˆู„ ุญุงุฌุฉ ุจู†ุญุฏุฏู‡ุง ุนุดุงู† ู†ู†ุธู… ุงู„ูƒูˆุฏ ุจุชุงุนู†ุง.
  2. ุงู„ู€ Class: ุฌูˆู‡ ุงู„ู€ namespace ุจู†ุนุฑู‘ู ุงู„ู€ Class ุงู„ู„ูŠ ู‡ูŠุญุชูˆูŠ ุงู„ูƒูˆุฏ ุจุชุงุนู†ุง.
  3. ุงู„ู€ Main Method: ุฌูˆู‡ ุงู„ู€ Class ุจู†ูƒุชุจ ุงู„ู€ Main function ุจุชุงุนุชู†ุงุŒ ูˆุฏูŠ ู†ู‚ุทุฉ ุจุฏุงูŠุฉ ุชู†ููŠุฐ ุงู„ุจุฑู†ุงู…ุฌ.

ู„ุงุฒู… ุงู„ู€ Main function ุชูƒูˆู† staticุŒ ูˆุฏู‡ ู„ุณุจุจ ู…ู‡ู… ุฌุฏู‹ุง. ุงู„ู„ูŠ ุจูŠู†ุงุฏูŠ ุนู„ู‰ ุงู„ู€ Main function ุฏูŠ ู‡ูˆ ุงู„ู€ CLR (Common Language Runtime). ูˆุนุดุงู† ุงู„ู€ CLR ูŠู‚ุฏุฑ ูŠู†ุงุฏูŠู‡ุง ุนู„ู‰ ุทูˆู„ ู…ู† ุบูŠุฑ ู…ุง ูŠุญุชุงุฌ ูŠุนู…ู„ object ุฌุฏูŠุฏ ู…ู† ุงู„ู€ Class ุงู„ุฃูˆู„ุŒ ู„ุงุฒู… ุชูƒูˆู† ู…ุชุนุฑูุฉ ูƒู€ static.

// Define a namespace to organize our code
namespace HWNS // HWNS = HelloWorldNameSpace (example name)
{
    // Define the main class for our program
    class Program
    {
        // The Main method: entry point of the application
        // It must be static so the CLR can call it without creating an instance (object) of Program
        public static void Main()
        {
            // Write "Hello World" to the console
            // We need to specify 'System' namespace because Console class is inside it
            System.Console.WriteLine("Hello World");
        }
    }
}

ุงู„ู€ using Directive

ู„ูˆ ู„ุงุญุธุช ููŠ ุงู„ูƒูˆุฏ ุงู„ู„ูŠ ููˆู‚ุŒ ูƒุชุจู†ุง System.Console.WriteLine. ุงู„ู€ Console ุฏู‡ Class ู…ูˆุฌูˆุฏ ุฌูˆู‡ namespace ุงุณู…ู‡ System. ุทูŠุจ ู„ูˆ ุฃู†ุง ุจุณุชุฎุฏู… ุญุงุฌุงุช ูƒุชูŠุฑ ู…ู† SystemุŒ ู‡ูุถู„ ุฃูƒุชุจู‡ุง ูƒู„ ุดูˆูŠุฉุŸ ู„ุฃ ุทุจุนู‹ุง.

ู‡ู†ุง ุจุชูŠุฌูŠ ูุงูŠุฏุฉ ูƒู„ู…ุฉ using. ุจู†ูƒุชุจู‡ุง ููˆู‚ ุฎุงู„ุต ููŠ ุฃูˆู„ ุงู„ู…ู„ูุŒ ูˆู…ุนู†ุงู‡ุง ุจุจุณุงุทุฉ: โ€œูŠุง ูƒูˆู…ุจุงูŠู„ุฑุŒ ู„ูˆ ู„ู‚ูŠุช Class ุฃูˆ datatype ุฃู†ุง ุจุณุชุฎุฏู…ู‡ ูˆู…ุด ู„ุงู‚ูŠู‡ ููŠ ุงู„ู€ namespace ุงู„ุญุงู„ูŠ ุจุชุงุนูŠุŒ ุฑูˆุญ ุจุต ุนู„ูŠู‡ ุงู„ุฃูˆู„ ููŠ ุงู„ู€ namespaces ุงู„ู„ูŠ ุฃู†ุง ุนุงู…ู„ู‡ุง usingโ€.

ูƒุฏู‡ ุจู†ู‚ุฏุฑ ู†ุณุชุฎุฏู… ุงู„ู€ Classes ุงู„ู„ูŠ ุฌูˆู‡ System ู…ุจุงุดุฑุฉู‹ ู…ู† ุบูŠุฑ ู…ุง ู†ูƒุชุจ ุงุณู…ู‡ุง ูƒู„ ู…ุฑุฉ.

using System; // Tell the compiler to look in the System namespace
 
namespace HWNS
{
    class Program
    {
        public static void Main()
        {
            // Now we can just write Console.WriteLine directly
            Console.WriteLine("Hello World!");
 
            // Keeps the console window open until a key is pressed
            Console.ReadKey();
        }
    }
}

ููŠู‡ ูƒู…ุงู† ุญุงุฌุฉ ุฌุฏูŠุฏุฉ ู†ุณุจูŠู‹ุง ุงุณู…ู‡ุง global using. ุฏูŠ ุจุชูƒูˆู† ู…ุฌู…ูˆุนุฉ namespaces ู…ุชุนุฑูุฉ ุชู„ู‚ุงุฆูŠ ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ู€ Project ูƒู„ู‡ ููŠ ู…ู„ู ู…ุฎุตูˆุตุŒ ุนุดุงู† ู…ุชุถุทุฑุด ุชูƒุชุจู‡ุง ููŠ ูƒู„ ู…ู„ู .cs ุจุชุนู…ู„ู‡.

ู†ู‚ุท ู…ู‡ู…ุฉ ุนู† C#

  • ุงู„ู„ุบุฉ Case sensitive: ูŠุนู†ูŠ ุจูŠูุฑู‚ ู…ุนุงู‡ุง ุงู„ุญุฑู ุงู„ู€ capital ูˆุงู„ู€ small. ุงู„ู…ุชุบูŠุฑ myVariable ู…ุฎุชู„ู ุชู…ุงู…ู‹ุง ุนู† MyVariable.
  • ุชุณู…ูŠุฉ ุงู„ู…ุชุบูŠุฑุงุช ูˆุงู„ุฏูˆุงู„: ุบุงู„ุจู‹ุง ุจู†ุณุชุฎุฏู… ุทุฑูŠู‚ุฉ PascalCase ููŠ ุชุณู…ูŠุฉ ุงู„ู€ Classes ูˆุงู„ู€ Methods ูˆุงู„ู€ Properties. ูŠุนู†ูŠ ุฃูˆู„ ุญุฑู ู…ู† ูƒู„ ูƒู„ู…ุฉ ููŠ ุงู„ุงุณู… ุจูŠูƒูˆู† CapitalุŒ ุฒูŠ BackgroundColor ุฃูˆ GetUserData.
  • ู†ู‡ุงูŠุฉ ูƒู„ ุณุทุฑ: ูƒู„ ุฌู…ู„ุฉ ุจุฑู…ุฌูŠุฉ (statement) ููŠ C# ู„ุงุฒู… ุชู†ุชู‡ูŠ ุจูุงุตู„ุฉ ู…ู†ู‚ูˆุทุฉ (;).