نامگذاری در C#
در C#، نامگذاری متغیرها، کلاسها، متدها و سایر عناصر برنامهنویسی از اهمیت بالایی برخوردار است، زیرا استفاده از اصول مناسب در نامگذاری باعث میشود کد خواناتر، قابل فهمتر و حرفهایتر شود. همچنین، رعایت قوانین و قراردادهای نامگذاری باعث جلوگیری از خطاهای احتمالی میشود. در اینجا به قوانین و بهترین شیوههای نامگذاری در C# پرداخته میشود.
همه متغیرهای C# باید با نامهای منحصر به فرد شناسایی شوند.این اسامی منحصر به فرد را شناسه می نامند.
شناسه ها می توانند نام های کوتاه (مانند x و y) یا نام های توصیفی تر (age, sum, totalVolume) باشند.
توصیحه می شود برای ایجاد کد قابل فهم از نام های توصیفی استفاده کنید.
// این نام قابل فهمه
int minutesPerHour = 10;
// این هم خوبه ولی قابل فهم نیست
int m = 10;قوانین پایه نامگذاری در C#
در C#، برای نامگذاری متغیرها، متدها، کلاسها و سایر عناصر، قوانینی وجود دارد که باید رعایت شوند:
- نام باید با یک حرف یا زیرخط (_) شروع شود. استفاده از اعداد در ابتدای نام غیرمجاز است.
- از کاراکترهای خاص مانند @, #, $ و غیره نمیتوان در نامها استفاده کرد (به جز _).
- فاصله (Space) در نامها مجاز نیست.
- نامها به حروف کوچک و بزرگ حساس هستند (Case-Sensitive). به عنوان مثال، name و Name دو نام متفاوت هستند.
- نمیتوان از کلمات کلیدی زبان C# به عنوان نام استفاده کنید، مگر اینکه از پیشوند @ استفاده کنید.
int age;          // درست
int _age;         // درست
int 1age;         // نادرست، نباید با عدد شروع شود
int @class;       // درست، چون کلمه کلیدی است از @ استفاده شده2. قوانین نامگذاری متغیرها و فیلدها
- 
متغیرها و فیلدها باید با حرف کوچک شروع شوند و از سبک Camel Case پیروی کنند. در این سبک، اولین حرف کوچک است و حروف اول کلمات بعدی بزرگ نوشته میشوند. 
int userAge;
string firstName;
double totalSalary;3. نامگذاری کلاسها و ساختارها
- برای کلاسها و ساختارها، سبک Pascal Case استفاده میشود، یعنی هر کلمه با حرف بزرگ شروع میشود.
public class CustomerDetails
{
    // کلاسها باید با حروف بزرگ شروع شوند
}
public struct OrderInfo
{
    // ساختارها هم باید با حروف بزرگ شروع شوند
}4. نامگذاری متد ها
- 
متدها نیز باید از سبک Pascal Case پیروی کنند. 
public void CalculateTotalAmount()
{
    //  نوشته شوند Pascal Case متدها باید با  
}
public int GetUserAge()
{
    // نام متدها باید توصیفی باشد
}5. نامگذاری متغیر های محلی
- 
متغیرهای محلی معمولاً با سبک Camel Case نوشته میشوند و باید توصیفی باشند تا هدف متغیر به خوبی مشخص شود. 
int totalAmount;
string customerName;6. نامگذاری ویژگی ها (Properties)
- ویژگی ها (Properties) هم باید از سبک Pascal Case استفاده کنند.
public class Customer
{
    public string FirstName { get; set; }
    public int Age { get; set; }
}7. نامگذاری ثابتها (Constants)
- 
برای ثابتها (constants)، از سبک Pascal Case یا All Upper Case استفاده میشود و اغلب با کلمه کلیدی const تعریف میشوند. 
const int MaxAttempts = 5;
const double Pi = 3.14159;8. نامگذاری اینترفیسها (Interfaces)
- 
اینترفیسها باید با حرف I شروع شوند و سپس از سبک Pascal Case استفاده کنند. 
public interface ICustomerRepository
{
    void AddCustomer();
}9. نامگذاری متغیرهای خصوصی
- 
متغیرهای خصوصی معمولاً با یک زیرخط ( _) شروع میشوند و از سبک Camel Case استفاده میکنند.
private int _totalAmount;
private string _customerName;10. بهترین شیوهها (Best Practices)
- نامها باید توصیفی و معنادار باشند. از نامهای کوتاه مانند xیا temp استفاده نکنید مگر اینکه به طور موقت استفاده شود.
- از مخففها استفاده نکنید مگر اینکه کاملاً رایج باشند. مثلاً از btn برای button استفاده نکنید، مگر در مواردی که به وضوح مشخص باشد.
- از نامهای طولانی بیش از حد استفاده نکنید نام باید به اندازه کافی توصیفی باشد، اما نباید به قدری طولانی شود که کد را پیچیده کند.
مثال کامل از نامگذاری مناسب:
public class CustomerDetails
{
    private string _customerName;
    private int _age;
    public string CustomerName
    {
        get { return _customerName; }
        set { _customerName = value; }
    }
    public int Age
    {
        get { return _age; }
        set { _age = value; }
    }
    public void DisplayCustomerInfo()
    {
        Console.WriteLine($"Name: {CustomerName}, Age: {Age}");
    }
}خلاصه درس
در این فصل قوانین نامگذاری در C# آشنا شدیم و با نحوه نامگذاری آشنا شدیم
 
                
             
                     
                     
                     
                     
                    