قرارداد نام گذاری در سی شارپ

توسط کاوه طاهری آخرین بروزرسانی

قراردادی جهت نام گذاری کلاس ها، متدها و ... بین برنامه نویسان‌ وجود دارد. با رعایت این موارد کد شما زیباتر و خوانا تر خواهد بود.

نام شی قرارداد زیرخط

نام کلاس

PascalCase ندارد

سازنده کلاس

Constructor name

PascalCase ندارد

نام متد

PascalCase ندارد

مقادیر ورودی متد

camelCase ندارد

متغیر محلی

camelCase ندارد

نام ثابت ها

PascalCase ندارد

نام فیلدها

camelCase دارد

نام ویژگی

Properties name

PascalCase ندارد

نام نماینده

Delegate name

PascalCase ندارد
Enum type name PascalCase ندارد

توجه: فقط فیلد ها دارای زیر خط در ابتدا هستند. 

مثال: استفاده از PascalCase در نام کلاس و متد

public class ClientActivity
{
  public void ClearStatistics()
  {
    //...
  }
  public void CalculateStatistics()
  {
    //...
  }
}

مثال: استفاده از camelCase در مقادیر ورودی متد و متغیر محلی

public class UserLog
{
  public void Add(LogEvent logEvent)
  {
    int itemCount = logEvent.Items.Count;
    // ...
  }
}

Hungarian notation یا علائم مجارستانی از زمان توسعه word و اکسل توسط مایکروسافت رواج یافت. در زیر نمونه هایی از آن آورده شده است. برای مثال str در ابتدای نام متغیر رشته ای مثل "strName"

bBusy : boolean
chInitial : char
cApples : count of items
dwLightYears : double word (Systems)
fBusy : flag (or float)
nSize : integer (Systems) or count (Apps)
iSize : integer (Systems) or index (Apps)
fpPrice: floating-point
dbPi : double (Systems)
pFoo : pointer
rgStudents : array, or range
szLastName : zero-terminated string
u16Identifier : unsigned 16-bit integer (Systems)
u32Identifier : unsigned 32-bit integer (Systems)
stTime : clock time structure
fnFunction : function name

در برنامه نویسی سی شارپ از این علائم استفاده نکنید.

مثال: 

// صحیح
int counter;
string name;   
 
// اشتباه
int iCounter;
string strName;

مثال: استفاده از حروف بزرگ برای ثابت ها

// صحیح
public static const string ShippingType = "DropShip";
// اشتباه
public static const string SHIPPINGTYPE = "DropShip";

مثال: استفاده از نام های با معنی برای متغیرها

var seattleCustomers = from cust in customers where cust.City == "Seattle" select cust.Name;

در مثال بالا مشتریانی که در سیاتل هستند با نام seattleCustomers نام گذاری شده است.

اسامی را خلاصه نکنید، مگر در موارد استثنا

مثال:

// صحیح
UserGroup userGroup; 
Assignment employeeAssignment; 
// اشتباه
UserGroup usrGrp; 
Assignment empAssignment; 
// استثنا
CustomerId customerId; 
XmlDocument xmlDocument; 
FtpHelper ftpHelper; 
UriPart uriPart;

در موارد خاص PascalCase میتوانید ۲ یا ۳ کاراکتر را مانند مثال زیر بنویسید.

HtmlHelper htmlHelper; 
FtpTransfer ftpTransfer; 
UIControl uiControl;

از underscore یا زیرخط استفاده نکنید. فقط برای فیلد خصوصی و استاتیک مجاز است.

// صحیح
public DateTime clientAppointment;
public TimeSpan timeLeft; 
// اشتباه
DateTime client_Appointment; 
public TimeSpan time_Left; 
// استثنا فیلد خصوصی
private DateTime _registrationDate;

Interface با I شروع شود.

مثال:

public interface IShape { }
public interface IShapeCollection { }
public interface IGroupable { }

براکت ها به صورت عمودی مرتب شود

مثال

// صحیح
class Program { 
   static void Main(string[] args) 
      { 
         //... 
      } 
}

0 نظر

نظر بدهید

نشانی ایمیل منتشر نخواهد شد.

کلیه حقوق مادی و معنوی برای ikaveh.com محفوظ است.