Trong bài viết này, Maker Việt Nam sẽ giới thiệu về các từ khóa và những khái niệm cơ bản nhất trong C#
Field (trường)
Hiểu đơn giản nhất, field là biến trong C#. Ví dụ:
int a = 10;
string myString = "Maker Vietnam";
Trong đoạn code ví dụ trên, a và myString là 2 field.
Trong class, việc truy cập vào field có thể được định nghĩa bởi các từ khóa accessor (như private, public, protected,…) Ví dụ:
public class Student
{
public string Name;
private double Score;
}
Ở ví dụ trên, ta có thể truy cập đến field Name của class Student bên ngoài class này vì field này được khai báo với accessor public. Tuy nhiên không thể truy cập đến field Score bên ngoài class này vì field này được khai báo bới accessor private.
Method (hàm)
Method là hàm trong C#. Method có những đặc tính sau:
- Có hoặc không có dữ liệu trả về, ví dụ:
// Hàm SayHello được khai báo với từ khóa void
// đồng nghĩa với việc không có kiểu dữ liệu trả về
public void SayHello()
{
Console.WriteLine("Hello world!");
}
// Hàm GetCurrentTime là hàm có kiểu dữ liệu trả về (ở đây là string)
// Dữ liệu trả về của hàm được gắn sau từ khóa return
// Khi chạy hết câu lệnh return, hàm sẽ kết thúc
// dù phía sau có còn câu lệnh nào khác hay không
public string GetCurentTime()
{
return DateTime.Now.ToString("hh:mm:ss");
}
- Có hoặc không có dữ liệu truyền vào
// Hàm SayHello sau đây, có biến truyền vào Name
public void SayHello(string Name)
{
Console.WriteLine($"Hello {Name}");
}
Cách truyền dữ liệu vào cho hàm trên
SayHello("Maker Vietnam"); // Hello Maker Vietnam
Property (thuộc tính)
Property (thuộc tính) là khái niệm khá phổ biến trong C#. Property có nhiều đặc điểm giống với field và method. Nếu như 1 field được khai báo với accessor là public, ta có thể vừa đọc và gán dữ liệu cho field đấy. Việc ngăn chặn gán dữ liệu cho 1 field public là bất khả thi.
Ví dụ, ở trong class Student trên, trong trường hợp ta muốn xem giá trị của biến Score thì phải đổi biến này sang kiểu public. Đồng thời ta cũng có thể dễ dàng thay đổi giá trị Score bất cứ đâu ngoài class này. Điều này là không phù hợp. Ta có thể xử lý vấn đề trên như sau
- Tạo thêm PrintScore() function cho class Student
public class Student
{
private double Score;
public string Name;
public void PrintScore()
{
Console.WriteLine($"{Name}'s Score = {Score}");
}
}
Tuy nhiên, có cách hay hơn để giải quyết vấn đề này như sau
public class Student
{
public double Score { get; private set; }
public string Name;
}
Trên đây, ta khai báo Score là 1 property, có thể đọc dữ liệu, nhưng không cho phép gán bên ngoài class.
Property trong C# có những đặc điểm sau
- Được khai báo cùng với từ 1 trong 2 hoặc cả hai từ khóa “get”, “set”
- get là phép trả về giá trị của property
- set là phép gán giá trị cho property
- Property chỉ được khai báo trong class, interface, struct. Không thể khai báo property trong method.
get và set có thể được định nghĩa lại khi khai báo property. Đồng thời, property được sử dụng nhiều trong databinding. Trong bài viết tới, Maker Việt Nam sẽ giới thiệu cụ thể hơn về Property.