خواص ( Properties ) در سی شارپ

تیم تحریریه 1403/10/23 0 29
لینک کوتاه https://zoheirsoftware.com/z/9ca1d4489 |
خواص ( Properties ) در سی شارپ,انواع خواص در سی‌شارپ,مزایای خواص در سی شارپ

خواص (Properties) در سی‌شارپ

خواص (Properties) یکی از مهم‌ترین ویژگی‌های زبان سی‌شارپ هستند که در برنامه‌نویسی شیءگرا نقش کلیدی دارند.

آن‌ها به ما این امکان را می‌دهند که به داده‌های یک کلاس دسترسی پیدا کنیم یا آن‌ها را تغییر دهیم، بدون اینکه جزئیات داخلی پیاده‌سازی این داده‌ها افشا شود.

این ویژگی کمک می‌کند تا کد تمیز، ایمن و خوانا نوشته شود.

خواص در واقع به عنوان یک واسط بین فیلدها (Fields) و دنیای بیرونی کلاس عمل می‌کنند.

آن‌ها این امکان را فراهم می‌آورند که مقدار یک فیلد خصوصی (Private) به طور کنترل‌شده به کدهای خارجی داده شود یا مقدار جدیدی برای آن تعیین شود.

به عنوان مثال:

public class Person

{

private string name; // فیلد خصوصی




// خاصیت برای دسترسی به فیلد

public string Name

{

get { return name; }

set { name = value; }

}

}

در اینجا، خاصیت Name به فیلد خصوصی name دسترسی دارد. از طریق این خاصیت می‌توان مقدار name را خواند یا تغییر داد.

 

 

خواص (Properties) در سی‌شارپ

 

 

چرا از خواص استفاده می‌کنیم؟

  • کپسوله‌سازی (Encapsulation)

    خواص به ما کمک می‌کنند تا داده‌ها را مخفی نگه داریم و کنترل بیشتری بر نحوه دسترسی به آن‌ها داشته باشیم.
    این باعث کاهش وابستگی بین بخش‌های مختلف کد می‌شود.
  • کنترل روی دسترسی

    با استفاده از خواص می‌توان عملیات مختلفی را در زمان دریافت (get) یا تنظیم (set) یک مقدار انجام داد.
    برای مثال، می‌توانیم قبل از تنظیم مقدار یک فیلد، آن را اعتبارسنجی کنیم.
  • افزایش خوانایی کد

    استفاده از خواص باعث می‌شود کد خواناتر و منظم‌تر شود.
    به جای استفاده از متدها، خواص دسترسی ساده‌تری ارائه می‌دهند.
  • تعریف رفتارهای اضافی

    می‌توان رفتارهای خاصی را هنگام دریافت یا تغییر مقادیر به خواص اضافه کرد.

 

 

 

🌟 آیا به دنبال یک فرصت عالی برای یادگیری برنامه‌نویسی هستید؟ 🚀

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

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادام‌العمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ

 

 

 

 

انواع خواص در سی‌شارپ

  • خواص معمولی (Standard Properties)

    این نوع خواص شامل دو بخش اصلی هستند:

 

    • get برای خواندن مقدار.

    • set برای تنظیم مقدار.

مثال:

public class Product

{

private decimal price;




public decimal Price

{

get { return price; }

set

{

if (value >= 0)

price = value;

else

throw new ArgumentException("Price cannot be negative");

}

}

}

در اینجا، خاصیت Price کنترل می‌کند که قیمت محصول نمی‌تواند منفی باشد.

  • خواص فقط خواندنی (Read-Only Properties)

    این خواص فقط شامل بخش get هستند و مقدار آن‌ها قابل تغییر نیست. این خاصیت معمولاً برای مقادیری استفاده می‌شود که باید ثابت بمانند.

 

public class Circle

{

private double radius;




public Circle(double radius)

{

this.radius = radius;

}




public double Area

{

get { return Math.PI * radius * radius; }

}

}
  • خواص فقط نوشتنی (Write-Only Properties)

    این خواص فقط شامل بخش set هستند و نمی‌توان مقدار آن‌ها را خواند.

 

 

public class PasswordManager

{

private string password;




public string Password

{

set { password = value; }

}

}
  •  خواص خودکار (Auto-Implemented Properties)

    در نسخه‌های اولیه سی‌شارپ، برای هر خاصیت نیاز بود یک فیلد خصوصی تعریف کنیم و سپس خاصیت را بنویسیم.
    اما از نسخه 3.0 به بعد، می‌توان از خواص خودکار استفاده کرد که نیاز به تعریف فیلد جداگانه ندارند.

 

public class Student

{

public string Name { get; set; }

public int Age { get; set; }

}

در اینجا، کامپایلر به صورت خودکار یک فیلد پشتیبان برای خاصیت‌ها ایجاد می‌کند.

 

  • خواص فقط خواندنی خودکار (Read-Only Auto-Implemented Properties)

    از سی‌شارپ 6.0 به بعد، می‌توان خواص خودکاری تعریف کرد که فقط خواندنی باشند. این نوع خواص تنها در سازنده مقداردهی می‌شوند.

 

public class Employee

{

public string Name { get; }

public int Id { get; }




public Employee(string name, int id)

{

Name = name;

Id = id;

}

}
  • خواص ایندکسری (Indexer Properties)

    ایندکسرها یک نوع خاص از خواص هستند که به ما اجازه می‌دهند اشیاء را مانند آرایه‌ها دستکاری کنیم.

 

 

public class StringCollection

{

private string[] strings = new string[10];




public string this[int index]

{

get { return strings[index]; }

set { strings[index] = value; }

}

}
  • خواص ایستا (Static Properties)

    خواص ایستا به کلاس تعلق دارند و نیازی به نمونه‌سازی از کلاس برای دسترسی به آن‌ها نیست.

 

 

public class Configuration

{

public static string ApplicationName { get; set; } = "MyApp";

}

 

انواع خواص در سی‌شارپ

 

 

کنترل سطح دسترسی خواص

در سی‌شارپ می‌توان سطح دسترسی بخش‌های get و set یک خاصیت را جداگانه مشخص کرد.

public class BankAccount

{

public decimal Balance { get; private set; }




public void Deposit(decimal amount)

{

if (amount > 0)

Balance += amount;

}

}

در اینجا، Balance فقط از داخل کلاس قابل تغییر است اما می‌توان آن را از بیرون خواند.

 

نکات پیشرفته درباره خواص

  • استفاده از عبارت لامبدا (Expression-bodied Properties)

    از نسخه 6.0 سی‌شارپ می‌توان خواص را به صورت مختصر با استفاده از لامبدا نوشت:

 

 

public class Rectangle

{

public double Width { get; set; }

public double Height { get; set; }




public double Area => Width * Height; // خاصیت فقط خواندنی

}
  • اعتبارسنجی در خواص

    می‌توان هنگام تنظیم مقدار خاصیت، عملیات اعتبارسنجی انجام داد.
public class User

{

private string email;




public string Email

{

get { return email; }

set

{

if (value.Contains("@"))

email = value;

else

throw new ArgumentException("Invalid email address");

}

}

}
  •  مقداردهی اولیه به خواص

    از سی‌شارپ 6.0 به بعد، می‌توان خواص را مستقیماً مقداردهی اولیه کرد.
public class Settings

{

public int MaxUsers { get; set; } = 100;

}

مزایای خواص در سی شارپ

  • افزایش ایمنی داده‌ها با کپسوله‌سازی.

  • انعطاف‌پذیری بالا در کنترل دسترسی به داده‌ها.

  • خوانایی و سادگی بیشتر نسبت به استفاده مستقیم از متدها.

  • امکان افزودن رفتارهای خاص در دسترسی یا تغییر مقادیر.

 

 

مزایای خواص در سی شارپ

 

مثال پروژه محور از  خواص (Properties) در سی‌شارپ

در اینجا یک کوتاه از استفاده از خواص (Properties) در سی‌شارپ برای مدیریت اطلاعات یک محصول آورده شده است:

using System;

public class Product
{
    private string _name;
    private decimal _price;

    // خاصیت برای نام
    public string Name
    {
        get { return _name; }
        set
        {
            if (string.IsNullOrWhiteSpace(value))
                throw new ArgumentException("Name cannot be empty.");
            _name = value;
        }
    }

    // خاصیت برای قیمت
    public decimal Price
    {
        get { return _price; }
        set
        {
            if (value < 0)
                throw new ArgumentException("Price cannot be negative.");
            _price = value;
        }
    }

    public Product(string name, decimal price)
    {
        Name = name;
        Price = price;
    }

    public void DisplayInfo()
    {
        Console.WriteLine($"Product: {Name}, Price: {Price:C}");
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            Product product = new Product("Laptop", 1500);
            product.DisplayInfo();

            product.Price = 2000; // تغییر قیمت
            product.DisplayInfo();

            product.Name = ""; // خطا: نام خالی
        }
        catch (ArgumentException ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}


خروجی نمونه:

Product: Laptop, Price: $1,500.00
Product: Laptop, Price: $2,000.00
Error: Name cannot be empty.


این مثال کوتاه از خواص برای کنترل و مدیریت اطلاعات محصول استفاده می‌کند.

 

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.

999,000 تومان

2.2k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.