Thực ra những quy tắc này chúng ta tự
đưa ra để phát triển dự án. Chẳng hạn
như khi một dự án đưa ra mà cần phải có
nhiều lập trình viên làm việc chung với nhau thì phải
đưa ra một bộ chuẩn để đặt
tên biến, tên hàm,... để khi nhìn vào đó các lập
trình viên có thể dể dàng hiểu code của nhau.
·
Chúng ta nên khai báo tên có ý
nghĩa và thực hiện đúng mục đích của nó.
·
Chúng ta không nên khai báo tên
dài quá 20 ký tự, tên phải mang đầy đủ về
mặt ý nghĩa của nó, không nên đặt tên quá ngắn
ví dụ như i, j, k, a, b, c...(trừ khi đó
là biến tạm)
·
Nên tránh đặt những
cái tên tương tự như nhau, ví dụ Student và Students chúng
ta không nên sử dụng chúng trong một class vì sẽ
gây ra nhầm lẫn trong quá trình viết code.
·
Tránh đặt tên khó hiểu,
gây nhầm lẫn về mặt ý nghĩa.
·
Hạn chế sử dụng
tên viết tắt trừ khi đó là tên phổ biến
được nhiều người biết đến hoặc
phổ biến.
·
Tránh kết hợp nhiều
ngôn ngữ khác nhau vào cùng một tên.
·
Tên không được
trùng với từ khóa
·
Tên không được
bắt đầu bằng số, ví dụ như:123Abc
·
Tên phải bắt đầu
bằng một chữ cái hoặc một số ký tự
như $, _, ...
·
Tên tuyệt đối
không được chứa khoảng trắng, nếu tên
bao gồm nhiều từ thì nên phân cách bởi dấu _ cho
dễ đọc.
·
Trong C# có phân biệt chữ
hoa và chữ thường.
Tên biến cần đặt
theo quy tắc chung, ngoài ra chúng ta cũng nên tuân thủ theo một
số quy định sau:
·
Tên được viết
theo quy tắc lạc đà (Camel case): theo quy tắc này thì
chữ cái đầu tiên của biến được viết
thường và các từ tiếp theo sau đó các chữ cái
đầu tiên phải viết hoa. Ví dụ như: chieuDai, phuongVi,...
·
Sử dụng các tên biến
có ý nghĩa, nêu lên được vai trò của nó. Ví dụ:
khi đọc biến tinhChieuDai thì sẽ hiểu biến
đó sẽ có nhiệm vụ lưu trữ giá trị chiều
dài, còn khi đặt tên biến là a, b, c thì
ngoài bạn ra thì khó có người thứ hai hiểu
được nhiệm vụ của biến, đôi khi
chính bản thân bạn sau 1 hay 2 tuần cũng không hiểu
biến đó làm gì.
// nên
đặt tên biến:
float
chieuDai, phuongVi;
float
deltaX, deltaY;
// không
nên đặt tên biến kiểu:
int a, b,
c;
long x, y,
z;
|
Tên hằng số cần
được đặt theo quy tắc chung, ngoài ra cần
phải được viết hoa và nếu như hằng
số có từ hai từ trở lên thì nên ngăn cách bởi
dấu _.
Ví dụ
|
// Tên hằng
nên đặt:
const
SO_PI = 3.14;
const
SO_AVOGADRO = 6.022E23;
// Không
nên đặt tên:
const pi =
3.14;
const a =
6.022E23;
|
Tên phương thức cần nêu được mục
đích của phương thức, chúng ta sử dụng
động từ hoặc một số cụm động
từ để đặt tên cho phương thức
như: Run, MoveUp, SendEmail,...
·
Tên thuộc tính
được đặt theo quy tắc Pascal: theo quy tắc
này thì chữ cái đầu tiên của mỗi từ đều
được viết hoa. Ví dụ như: PhoneCustomer, AddressStudent,...
·
Tên thuộc tính nên sử
dụng danh từ, tính từ hoặc cum danh từ sao cho
nói lên ý nghĩa và vai trò của thuộc tính.
·
Có thể sử dụng
tiền tố Boolean để đặt tên cho tên thuộc
tính.
Ví dụ tên thuộc tính
|
// khai
báo một thuộc tính MyHeight có kiểu dữ liệu int
public int
MyHeight
{
//trả
về chiều cao của tôi
return
myHeight;
}
// Hay
khai báo thuộc tính MyName có kiểu dữ liệu string
public
string MyName
{
return
myName;
}
|
·
Tên được đặt
theo quy tắc Pascal
·
Đối với tên
class và struct: ta dùng danh từ hoặc cụm danh từ
để đặt tên.
·
Nếu một class kế
thừa một class cha, thì khi đặt tên của class
kế thừa chúng ta nên kết thúc bằng tên của class
cha.
·
Khi đặt tên
interface thì nên sử dụng "I" đứng trước.
Ví dụ: IFrame, IProduct,...
Ví dụ
|
//khai báo
một hình chữ nhật có 3 thuộc tính
class
HinhChuNhat
{
public
double chieu_dai;
public
double chieu_rong;
}
// Khai
báo một interface di chuyển với 4 phương thức
public
interface IMove
{
public
void up;
public
void down;
public
void left;
public
void right;
}
|
Từ khóa là các từ dành riêng đã được
định nghĩa trong C#, chúng ta không thể sử dụng
chúng để đặt tên.
Bảng dưới đây trình bày các từ khóa có
trong C# (khoảng 80 từ):
Bảng 1.1. Từ khóa của ngôn ngữ C#
Ngoài ra còn có từ khóa ngữ cảnh (contextual keyword), đây là
một loại từ khóa được sử dụng để cung cấp một ý nghĩa cụ thể trong mã nhưng nó không phải là danh từ
riêng:
Bảng 1.2. Các từ khóa ngữ cảnh
add
|
alias
|
ascending
|
descending
|
dynamic
|
from
|
get
|
global
|
group
|
into
|
join
|
let
|
orderby
|
partial
(type)
|
Partial
|
remove
|
select
|
set
|
await
|
async
|
|