Cú pháp C# cơ bản

Qua bài vừa rồi thì các bạn cũng đã biết được ít nhiều về cấu trúc của một chương trình C# phải không nào ? Ở bài này, mình sẽ cùng các bạn tìm hiểu một số cú pháp và quy tắc cơ bản trong C# nhé. Đây là một bài khá quan trọng, các bạn cần phải nắm rõ các quy tắc và cú pháp mình trình bày ở dưới đây để việc lập trình tốt hơn và tránh mắc những lỗi không cần thiết về mặc cú pháp nhé.

1. Quy tắc đặt tên trong C#

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.

Quy tắc chung:

  • 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ữ hoachữ thường.

Đặt tên biến:

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 đà: 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ư: tinhTienLuong, gioLamViec,...
  • 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 tongTienLuong thì bạn sẽ hiểu biến đó sẽ có nhiệm vụ tính tổng tiền lương của nhân viên hay công nhân, còn khi bạn đặ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:
int soGioLam, tienLuongCoBan;
float thuong;
// không nên đặt tên biến kiểu:
int a, b, c;
long x, y, z;

Đặt tên hằng số:

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 tên phương thức:

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 tên thuộc tính:

  • 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;
}

Bạn đừng quan tâm chức năng của nó làm gì nhé, vì bài này mình chỉ muốn các bạn hiểu đặt tên như thế nào thôi. Chức năng của nó mình sẽ nói ở các bài tiếp theo.

Đặt tên class, interface và Struct:

  • 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;
}

2. Các từ khóa trong C#

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ừ):

abstract as base bool break byte case
catch char checked class const continue decimal
default delegate do double else enum event
explicit extern false finally fixed float for
foreach goto if implicit in in (generic
modifier)
int
interface internal is lock long namespace new
null object operator out out (generic
modifier)
override params
private protected public readonly ref return sbyte
sealed short sizeof stackalloc static string struct
switch this throw true try typeof uint
ulong unchecked unsafe ushort using virtual void
volatile while          

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:

add alias ascending descending dynamic from get
global group into join let orderby partial (type)
partial
(method)
remove select set await async  

3. Nhập xuất cơ bản trong C#.

Trong C# chúng ta có 5 lệnh dùng để nhập xuất đó là:

  • Console.Write();  Lệnh này dùng để xuất dữ liệu, giá trị ra màn hình, tuy nhiên các giá trị chỉ nằm trên 1 hàng.
  • Console.WriteLine(); Tương tự như Console.Write(); nhưng lệnh này có thêm là con trỏ sẽ xuống hàng mỗi khi xuất xong dữ liệu.
  • Console.Read(); Đọc ký tự từ bàn phím sau đó trả về kiểu số nguyên của ký tự đó dựa trên bảng mã ASCII.
  • Console.ReadLine(); Đây cũng là một cách đọc ký tự từ bàn phím và giá trị đọc được luôn là một chuổi ký tự vì lệnh này cho phép ta đọc dữ liệu đến khi gặp ký tự xuống dòng thì dừng.
  • Console.ReadKey(); Lệnh này với mục đích dừng màn hình để xem kết quả.

Mình có một ví dụ nhỏ để minh họa cho 5 lệnh trên:

Ví dụ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace freetuts.net
{
    class freetuts
    {
        static void Main(string[] args)
        {
            /* mặc dù viết rất nhiều dòng hiển thị kết quả nhưng kết quả chỉ xuất hiện trên một dòng */
            Console.Write("1 ");
            Console.Write("2 ");
            Console.Write("3 ");
            /* khi dùng lệnh Console.WriteLine(); nó sẽ tự động xuống dòng */
            Console.WriteLine("\n1");
            Console.WriteLine("\n2");
            Console.WriteLine("\n3");
            /* sử dụng lệnh nhập ký tự từ bàn phím nè:*/
            Console.WriteLine("\nnhap vao thong tin ban muon hien thi ");
            Console.WriteLine("\nban vua nhap vao " + Console.ReadLine());
            
            Console.WriteLine("\nnhap vao mot ky tu bat ky !");
            Console.WriteLine("\nky tu ban vua nhap co ma ASSCII la: " + Console.Read());
            Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");
            Console.ReadKey();

        }
    }
}

Biên dịch chương trình trên ta được:

4. Kết luận

Qua bài này, chúng ta đã tìm hiểu được cách đặt tên một số thuộc tính trong C# và tìm hiều sơ được về một số từ khóa cũng như các lệnh nhập xuất cơ bản trong C#. Đây đều là những kiến thức rất phổ thông và yêu cầu các bạn cần nắm rõ để phục vụ cho các bài học sau này cũng như tiền đề cho các ngôn ngữ tiếp theo. Chúc các bạn học tốt và luôn đồng hành cùng freetuts nhé.!

Nguồn: freetuts.net