برنامه نویسی

تسلط بر اصول C#: مقدمه ای بر کلاس ها

Summarize this content to 400 words in Persian Lang
توضیحات متا: اصول کلاس های سی شارپ را با یک مثال عملی بیاموزید. نحوه ایجاد و استفاده از یک کلاس Employee در دنیای واقعی، با ویژگی‌ها، روش‌ها و ثابت‌ها برای کپسوله‌سازی مؤثر داده‌ها و عملکردها را کشف کنید.

هنگامی که شروع به کدنویسی می کنند، اکثر افراد کار را با متغیرهایی مانند شروع می کنند int a = 3. این یک مقدمه عالی برای درک نحوه ذخیره و دستکاری داده ها است. با این حال، برای کاربردهای پیچیده‌تر، ما به روشی ساختاریافته برای نمایش موجودیت‌ها با داده‌ها و رفتارهای مرتبط نیاز داریم. اینجاست که کلاس ها در سی شارپ وارد بازی شوید.

در این مقاله به بررسی کلاس‌ها می‌پردازیم، چرا مفید هستند و چگونه آنها را در سی شارپ ایجاد کنیم. ما از یک استفاده خواهیم کرد کارمند کلاس به عنوان مثالی برای نشان دادن اینکه چگونه می‌توانیم داده‌ها و عملکرد را در یک واحد کپسوله کنیم و مدیریت، استفاده مجدد و نگهداری آن را آسان‌تر کنیم.

کلاس چیست؟

الف کلاس در سی شارپ یک طرح اولیه برای ایجاد است اشیاء- نمونه هایی که موجودیت های دنیای واقعی را نشان می دهند. کلاس ها به کپسوله کردن کمک می کنند داده ها (خواص) و عملکرد (روش ها) به یک واحد منطقی واحد. این یک مفهوم اصلی است برنامه نویسی شی گرا (OOP)، توسعه دهندگان را قادر می سازد کدهای مدولار، قابل استفاده مجدد و سازماندهی شده بیشتری بنویسند.

کلاسی را مانند طرحی برای یک خانه در نظر بگیرید: طرح اولیه به خودی خود خانه نیست، اما طرحی برای ایجاد آن فراهم می کند. به طور مشابه، یک کلاس یک الگو است و اشیاء ایجاد شده از آن نمونه هایی از آن الگو هستند.

نمونه کلاس کارمند

بیایید به یک مثال شیرجه بزنیم. ما ایجاد خواهیم کرد Employee کلاسی که ویژگی های مختلف یک کارمند را به همراه روش های مختلفی که مشخص می کند کارمند چه کاری می تواند انجام دهد را در بر می گیرد.

در اینجا به روز رسانی ما است Employee کلاس:

public class Employee
{
// Properties to store data about the employee
public int EmployeeID { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public string Title { get; set; }
public string TitleOfCourtesy { get; set; }
public DateTime? BirthDate { get; set; }
public DateTime? HireDate { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string Region { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public string HomePhone { get; set; }
public string Extension { get; set; }
public byte[] Photo { get; set; }
public string Notes { get; set; }
public int? ReportsTo { get; set; }
public string PhotoPath { get; set; }

// Constant to represent default values
private const double defaultHourlyRate = 20.0;
private const int minimalHoursWorkedUnit = 1;

// Field to store hours worked and hourly rate
private int numberOfHoursWorked;
private double hourlyRate;

// Constructor to initialize the employee
public Employee(int employeeID, string firstName, string lastName, double hourlyRate = defaultHourlyRate)
{
EmployeeID = employeeID;
FirstName = firstName;
LastName = lastName;
this.hourlyRate = hourlyRate;
numberOfHoursWorked = 0; // Initialize hours worked to zero
}

// Method to perform work for the minimum unit of hours
public void PerformWork()
{
PerformWork(minimalHoursWorkedUnit);
}

// Overloaded method to perform work for a given number of hours
public void PerformWork(int hours)
{
numberOfHoursWorked += hours;
Console.WriteLine($”{FirstName} {LastName} has worked for {numberOfHoursWorked} hours.”);
}

// Method to receive payment
public double ReceivePay(bool resetHours = true)
{
double wage = numberOfHoursWorked * hourlyRate;
Console.WriteLine($”{FirstName} {LastName} has been paid {wage:C}.”);

if (resetHours)
{
numberOfHoursWorked = 0;
}

return wage;
}

// Method to update the employee’s address
public void UpdateAddress(string newAddress, string newCity, string newRegion, string newPostalCode, string newCountry)
{
Address = newAddress;
City = newCity;
Region = newRegion;
PostalCode = newPostalCode;
Country = newCountry;

Console.WriteLine($”{FirstName} {LastName}’s address has been updated.”);
}

// Method to display full employee information
public void DisplayEmployeeDetails()
{
Console.WriteLine($”Employee ID: {EmployeeID}”);
Console.WriteLine($”Name: {TitleOfCourtesy} {FirstName} {LastName}”);
Console.WriteLine($”Title: {Title}”);
Console.WriteLine($”Address: {Address}, {City}, {Region}, {Country}”);
Console.WriteLine($”Hire Date: {HireDate?.ToString(“d”)}”);
Console.WriteLine($”Reports To: {(ReportsTo.HasValue ? ReportsTo.ToString() : “None”)}”);
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تفکیک طبقه کارمند

خواص: Employee کلاس دارای طیف وسیعی از خصوصیات است که جزئیات مختلف یک کارمند را نشان می دهد، مانند EmployeeID، FirstName، LastName، Addressو غیره این ویژگی ها وضعیت هر کارمند را نگه می دارد.

ثابت ها:

defaultHourlyRate: تنظیم کنید 20.0، این نرخ پرداخت پیش فرض در ساعت را نشان می دهد.

minimalHoursWorkedUnit: نشان دهنده کوچکترین واحد ساعات کار است که می باشد 1 hour. استفاده از ثابت هایی مانند این ها ثبات را تضمین می کند و از اعداد جادویی جلوگیری می کند.

فیلدها:

numberOfHoursWorked و hourlyRate زمینه های خصوصی هستند که وضعیت داخلی ساعات کار و نرخ دستمزد هر کارمند را حفظ می کنند.

سازنده:

سازنده اطلاعات ضروری کارکنان مانند EmployeeID، FirstName، LastNameو به صورت اختیاری hourlyRate.

روش ها:

PerformWork(): کار انجام شده توسط کارمند را شبیه سازی می کند. نسخه بدون پارامتر ساعات کار را با حداقل واحد افزایش می دهد، در حالی که نسخه بارگذاری شده امکان تعیین تعدادی ساعت را فراهم می کند.

ReceivePay(): دستمزد کارمند را محاسبه و نمایش می دهد. همچنین به صورت اختیاری ساعات کار را بازنشانی می کند.

UpdateAddress(): آدرس کارمند را به روز می کند و تغییر مکان را یکباره آسان می کند.

DisplayEmployeeDetails(): تمام جزئیات کارمند را نمایش می دهد که برای مشاهده اطلاعات به صورت قالب بندی شده مفید است.

مثال عملی استفاده از کلاس کارمند

حالا بیایید از آن استفاده کنیم Employee کلاس در یک برنامه ساده برای دیدن نحوه کار:

public class Program
{
public static void Main()
{
// Creating an Employee object
Employee johan= new Employee(1, “Johan”, “Wick”);

// Displaying initial employee details
johan.DisplayEmployeeDetails();

// Performing work
johan.PerformWork(); // Output: Bethany Smith has worked for 1 hours.
johan.PerformWork(4); // Output: Bethany Smith has worked for 5 hours.

// Receiving payment
double pay = johan.ReceivePay(); // Output: Bethany Smith has been paid $100.00.

// Updating employee address
johan.UpdateAddress(“456 New St”, “Los Angeles”, “CA”, “90001”, “USA”);
// Output: Bethany Smith’s address has been updated.

// Displaying updated employee details
johan.DisplayEmployeeDetails();
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مفاهیم کلیدی توضیح داده شده است

ثابت برای قابلیت استفاده مجدد:

با استفاده از defaultHourlyRate و minimalHoursWorkedUnit، اجتناب می کنیم اعداد جادویی در کد این ثابت‌ها کد را خواناتر و نگهداری آسان‌تر می‌کنند.

کپسولاسیون:

را Employee کلاس هر دو را کپسوله می کند داده ها (ویژگی هایی مانند FirstName، Address) و رفتار (روش هایی مانند PerformWork()، ReceivePay()). این رویکرد کلاس را منسجم می‌کند، با تفکیک واضح نگرانی‌ها، که کمک می‌کند کد سازماندهی شده و قابل درک باشد.

خواص در مقابل فیلدها:

از ویژگی ها برای نمایش داده ها در معرض دنیای خارج استفاده می شود، در حالی که فیلدهایی مانند numberOfHoursWorked و hourlyRate برای حفظ کنترل بر دولت داخلی، خصوصی نگه داشته می شوند. این یک مثال عالی است کپسوله سازی داده ها- یک اصل کلیدی OOP.

روش اضافه بار:

PerformWork() بیش از حد بارگذاری می شود تا راه های مختلفی را برای تعیین میزان کاری که کارمند انجام داده است امکان پذیر کند. این انعطاف پذیری را در نحوه استفاده ما از کلاس فراهم می کند.

نتیجه گیری

را Employee class نمایش کاملی است از اینکه چگونه کلاس ها به ما اجازه می دهند تا موجودیت های دنیای واقعی را در C# مدل کنیم. با گروه بندی داده ها (خواص) و عملکرد (روش ها) در یک واحد منطقی، به یک ساختار تمیز، قابل استفاده مجدد و قابل نگهداری دست می یابیم.

در این مقاله به موارد زیر پرداختیم:

چه کلاس هایی هستند و چرا آنها مهم هستند.

نحوه ایجاد و استفاده از یک Employee کلاس، با یک مثال مفصل.
اضافه شدن از ثابت ها و روش ها تا کلاس برای سناریوهای دنیای واقعی کاربردی و کاربردی باشد.

کلاس ها در هسته اصلی هستند برنامه نویسی شی گرا و برای نوشتن کد قابل نگهداری و ماژولار بسیار مهم هستند. همانطور که به سفر خود در C# ادامه می دهید، بر اساس این مفاهیم خواهید بود.

توضیحات متا: اصول کلاس های سی شارپ را با یک مثال عملی بیاموزید. نحوه ایجاد و استفاده از یک کلاس Employee در دنیای واقعی، با ویژگی‌ها، روش‌ها و ثابت‌ها برای کپسوله‌سازی مؤثر داده‌ها و عملکردها را کشف کنید.

هنگامی که شروع به کدنویسی می کنند، اکثر افراد کار را با متغیرهایی مانند شروع می کنند int a = 3. این یک مقدمه عالی برای درک نحوه ذخیره و دستکاری داده ها است. با این حال، برای کاربردهای پیچیده‌تر، ما به روشی ساختاریافته برای نمایش موجودیت‌ها با داده‌ها و رفتارهای مرتبط نیاز داریم. اینجاست که کلاس ها در سی شارپ وارد بازی شوید.

در این مقاله به بررسی کلاس‌ها می‌پردازیم، چرا مفید هستند و چگونه آنها را در سی شارپ ایجاد کنیم. ما از یک استفاده خواهیم کرد کارمند کلاس به عنوان مثالی برای نشان دادن اینکه چگونه می‌توانیم داده‌ها و عملکرد را در یک واحد کپسوله کنیم و مدیریت، استفاده مجدد و نگهداری آن را آسان‌تر کنیم.

کلاس چیست؟

الف کلاس در سی شارپ یک طرح اولیه برای ایجاد است اشیاء– نمونه هایی که موجودیت های دنیای واقعی را نشان می دهند. کلاس ها به کپسوله کردن کمک می کنند داده ها (خواص) و عملکرد (روش ها) به یک واحد منطقی واحد. این یک مفهوم اصلی است برنامه نویسی شی گرا (OOP)، توسعه دهندگان را قادر می سازد کدهای مدولار، قابل استفاده مجدد و سازماندهی شده بیشتری بنویسند.

کلاسی را مانند طرحی برای یک خانه در نظر بگیرید: طرح اولیه به خودی خود خانه نیست، اما طرحی برای ایجاد آن فراهم می کند. به طور مشابه، یک کلاس یک الگو است و اشیاء ایجاد شده از آن نمونه هایی از آن الگو هستند.

نمونه کلاس کارمند

بیایید به یک مثال شیرجه بزنیم. ما ایجاد خواهیم کرد Employee کلاسی که ویژگی های مختلف یک کارمند را به همراه روش های مختلفی که مشخص می کند کارمند چه کاری می تواند انجام دهد را در بر می گیرد.

در اینجا به روز رسانی ما است Employee کلاس:

public class Employee
{
    // Properties to store data about the employee
    public int EmployeeID { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }
    public string Title { get; set; }
    public string TitleOfCourtesy { get; set; }
    public DateTime? BirthDate { get; set; }
    public DateTime? HireDate { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string Region { get; set; }
    public string PostalCode { get; set; }
    public string Country { get; set; }
    public string HomePhone { get; set; }
    public string Extension { get; set; }
    public byte[] Photo { get; set; }
    public string Notes { get; set; }
    public int? ReportsTo { get; set; }
    public string PhotoPath { get; set; }

    // Constant to represent default values
    private const double defaultHourlyRate = 20.0;
    private const int minimalHoursWorkedUnit = 1;

    // Field to store hours worked and hourly rate
    private int numberOfHoursWorked;
    private double hourlyRate;

    // Constructor to initialize the employee
    public Employee(int employeeID, string firstName, string lastName, double hourlyRate = defaultHourlyRate)
    {
        EmployeeID = employeeID;
        FirstName = firstName;
        LastName = lastName;
        this.hourlyRate = hourlyRate;
        numberOfHoursWorked = 0; // Initialize hours worked to zero
    }

    // Method to perform work for the minimum unit of hours
    public void PerformWork()
    {
        PerformWork(minimalHoursWorkedUnit);
    }

    // Overloaded method to perform work for a given number of hours
    public void PerformWork(int hours)
    {
        numberOfHoursWorked += hours;
        Console.WriteLine($"{FirstName} {LastName} has worked for {numberOfHoursWorked} hours.");
    }

    // Method to receive payment
    public double ReceivePay(bool resetHours = true)
    {
        double wage = numberOfHoursWorked * hourlyRate;
        Console.WriteLine($"{FirstName} {LastName} has been paid {wage:C}.");

        if (resetHours)
        {
            numberOfHoursWorked = 0;
        }

        return wage;
    }

    // Method to update the employee's address
    public void UpdateAddress(string newAddress, string newCity, string newRegion, string newPostalCode, string newCountry)
    {
        Address = newAddress;
        City = newCity;
        Region = newRegion;
        PostalCode = newPostalCode;
        Country = newCountry;

        Console.WriteLine($"{FirstName} {LastName}'s address has been updated.");
    }

    // Method to display full employee information
    public void DisplayEmployeeDetails()
    {
        Console.WriteLine($"Employee ID: {EmployeeID}");
        Console.WriteLine($"Name: {TitleOfCourtesy} {FirstName} {LastName}");
        Console.WriteLine($"Title: {Title}");
        Console.WriteLine($"Address: {Address}, {City}, {Region}, {Country}");
        Console.WriteLine($"Hire Date: {HireDate?.ToString("d")}");
        Console.WriteLine($"Reports To: {(ReportsTo.HasValue ? ReportsTo.ToString() : "None")}");
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تفکیک طبقه کارمند

  1. خواص: Employee کلاس دارای طیف وسیعی از خصوصیات است که جزئیات مختلف یک کارمند را نشان می دهد، مانند EmployeeID، FirstName، LastName، Addressو غیره این ویژگی ها وضعیت هر کارمند را نگه می دارد.

  2. ثابت ها:

    • defaultHourlyRate: تنظیم کنید 20.0، این نرخ پرداخت پیش فرض در ساعت را نشان می دهد.
    • minimalHoursWorkedUnit: نشان دهنده کوچکترین واحد ساعات کار است که می باشد 1 hour. استفاده از ثابت هایی مانند این ها ثبات را تضمین می کند و از اعداد جادویی جلوگیری می کند.
  3. فیلدها:

    • numberOfHoursWorked و hourlyRate زمینه های خصوصی هستند که وضعیت داخلی ساعات کار و نرخ دستمزد هر کارمند را حفظ می کنند.
  4. سازنده:

    • سازنده اطلاعات ضروری کارکنان مانند EmployeeID، FirstName، LastNameو به صورت اختیاری hourlyRate.
  5. روش ها:

    • PerformWork(): کار انجام شده توسط کارمند را شبیه سازی می کند. نسخه بدون پارامتر ساعات کار را با حداقل واحد افزایش می دهد، در حالی که نسخه بارگذاری شده امکان تعیین تعدادی ساعت را فراهم می کند.
    • ReceivePay(): دستمزد کارمند را محاسبه و نمایش می دهد. همچنین به صورت اختیاری ساعات کار را بازنشانی می کند.
    • UpdateAddress(): آدرس کارمند را به روز می کند و تغییر مکان را یکباره آسان می کند.
    • DisplayEmployeeDetails(): تمام جزئیات کارمند را نمایش می دهد که برای مشاهده اطلاعات به صورت قالب بندی شده مفید است.

مثال عملی استفاده از کلاس کارمند

حالا بیایید از آن استفاده کنیم Employee کلاس در یک برنامه ساده برای دیدن نحوه کار:

public class Program
{
    public static void Main()
    {
        // Creating an Employee object
        Employee johan= new Employee(1, "Johan", "Wick");

        // Displaying initial employee details
        johan.DisplayEmployeeDetails();

        // Performing work
        johan.PerformWork(); // Output: Bethany Smith has worked for 1 hours.
        johan.PerformWork(4); // Output: Bethany Smith has worked for 5 hours.

        // Receiving payment
        double pay = johan.ReceivePay(); // Output: Bethany Smith has been paid $100.00.

        // Updating employee address
        johan.UpdateAddress("456 New St", "Los Angeles", "CA", "90001", "USA");
        // Output: Bethany Smith's address has been updated.

        // Displaying updated employee details
        johan.DisplayEmployeeDetails();
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مفاهیم کلیدی توضیح داده شده است

  1. ثابت برای قابلیت استفاده مجدد:

    • با استفاده از defaultHourlyRate و minimalHoursWorkedUnit، اجتناب می کنیم اعداد جادویی در کد این ثابت‌ها کد را خواناتر و نگهداری آسان‌تر می‌کنند.
  2. کپسولاسیون:

    • را Employee کلاس هر دو را کپسوله می کند داده ها (ویژگی هایی مانند FirstName، Address) و رفتار (روش هایی مانند PerformWork()، ReceivePay()). این رویکرد کلاس را منسجم می‌کند، با تفکیک واضح نگرانی‌ها، که کمک می‌کند کد سازماندهی شده و قابل درک باشد.
  3. خواص در مقابل فیلدها:

    • از ویژگی ها برای نمایش داده ها در معرض دنیای خارج استفاده می شود، در حالی که فیلدهایی مانند numberOfHoursWorked و hourlyRate برای حفظ کنترل بر دولت داخلی، خصوصی نگه داشته می شوند. این یک مثال عالی است کپسوله سازی داده ها– یک اصل کلیدی OOP.
  4. روش اضافه بار:

    • PerformWork() بیش از حد بارگذاری می شود تا راه های مختلفی را برای تعیین میزان کاری که کارمند انجام داده است امکان پذیر کند. این انعطاف پذیری را در نحوه استفاده ما از کلاس فراهم می کند.

نتیجه گیری

را Employee class نمایش کاملی است از اینکه چگونه کلاس ها به ما اجازه می دهند تا موجودیت های دنیای واقعی را در C# مدل کنیم. با گروه بندی داده ها (خواص) و عملکرد (روش ها) در یک واحد منطقی، به یک ساختار تمیز، قابل استفاده مجدد و قابل نگهداری دست می یابیم.

در این مقاله به موارد زیر پرداختیم:

  • چه کلاس هایی هستند و چرا آنها مهم هستند.
  • نحوه ایجاد و استفاده از یک Employee کلاس، با یک مثال مفصل.
  • اضافه شدن از ثابت ها و روش ها تا کلاس برای سناریوهای دنیای واقعی کاربردی و کاربردی باشد.

کلاس ها در هسته اصلی هستند برنامه نویسی شی گرا و برای نوشتن کد قابل نگهداری و ماژولار بسیار مهم هستند. همانطور که به سفر خود در C# ادامه می دهید، بر اساس این مفاهیم خواهید بود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا