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

❌ از خط زیرین (Underline) استفاده نکنید.
استفاده از آندرلاین در دات نت به خصوص برای Propertyها پسندیده نیست و سعی کنید به هیچ وجه از آن استفاده نکنید.
✅ از Pascal Case استفاده کنید.
public class Person
{
// ❌ Don't use underline.
// public string First_Name { get; set; }
public string FirstName { get; set; }
}
❌ برای اعضای public از حروف کوچک استفاده نکنید.
در داتنت، اعضاء (members) شامل Classها، Propertyها و Methodهاست.
// ❌ Don't use lower case for public members
// public class peopleDataStore
// {
// public string myProperty { get; set; }
//
// public IEnumerable<Person> getPeople()
// {
// return Enumerable.Empty<Person>();
// }
// }
در نمونه زیر اعضای عمومی همه با حروف بزرگ شروع شدهاند و همچنین از PascalCase برای خوانایی بیشتر استفاده شده است.
public class PeopleDataStore
{
public string MyProperty { get; set; }
public IEnumerable<Person> GetPeople()
{
return Enumerable.Empty<Person>();
}
}
✅ برای اعضای private از حروف کوچک استفاده کنید.
- ورودی های متد و همچنین متغیر های داخل متد با حروف کوچک نوشته شدهاند.
- برای فیلد ها و متغیر های خصوصی بهتر است از camelCase استفاده کنید.
public class Utilities
{
public static double CalculateDiscount(int price, int percentage)
{
double discount = (percentage/ 100d) * price;
return price - discount;
}
}
✅ در ابتدای نام فیلد های خصوصی داخل کلاس میتوانید از آندرلاین استفاده کنید.
public class GitHubClient
{
// For fields, you can use underline (_) at the beginning.
private readonly string _baseAddress = "https://github.com"
public void SendRequest(string baseAddress)
{
// We can distinguish between fields and parameters.
Console.WriteLine(_baseAddress);
Console.WriteLine(baseAddress);
}
}
این روش نامگذاری موافقان و مخالفان خاص خود را دارد. در صورتی که به صورت تیمی کار میکنید با همتیمی های خود تصمیم بگیرید از موارد اینچنینی استفاده کنید یا خیر.
در صورت عدم استفاده از این روش کد های فوق به صورت زیر در میآیند که در صورت تداخل اسمی، با استفاده از کلمه کلیدی this میتوان فیلد را مشخص کرد.
public class GitHubClient
{
// Otherwise...
private readonly string baseAddress = "https://github.com"
public void SendRequest(string baseAddress)
{
// In this case, we have to use 'this' keyword.
Console.WriteLine(this.baseAddress);
Console.WriteLine(baseAddress);
}
}
✅ سعی کنید برای نامگذاری مجموعه ها از اسم جمع استفاده کنید.
public class MovieDataStore
{
public List<Movie> GetMovies()
{
var movies = new List<Movie>
{
new Movie("The First Movie"),
new Movie("The Second Movie"),
};
return movies;
}
}
معرفی StyleCop Analyzers
آنالایزر StyleCop به شما کمک میکند قواعد نامگذاری و همچنین استایل کلی کد های خود را رعایت کنید. این آنالایزر با پیشنهاد Code Fixها به شما کمک میکند این موارد را به سادگی اصلاح کنید.
نحوه نصب
برای شروع ابتدا پکیج نوگت آن را نصب کنید.
Install-Package StyleCop.Analyzers
با نصب این پکیج هشدار هایی درباره کد استایل پروژه شما نمایش داده خواهد شد. سعی کنید هشدار های داده شده در پروژه را کاهش دهید.

توجه داشته باشید که لازم نیست که تمامی هشدار های تولید شده توسط StyleCop را رعایت کنید. گاهی برخی از آنها با توجه به Breaking Changeهای احتمالی، شاید غیر ممکن باشد.
توقف هشدار های خاص
برای عدم نمایش یک هشدار خاص، ابتدا کد آن را در Error List پیدا کنید. سپس فایل csproj را باز کرده و خصوصیت زیر را اضافه کنید:
<NoWarn> ... </NoWarn>
خواهید دید که هشدار مورد نظر دیگر نمایش داده نخواهد شد.

با کمک ویژوال استودیو میتوانید از سایر روش های Suppress کردن هشدار استفاده کنید.
