- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Làm việc với NULL sử dụng toán tử ?? và ? trong lập trình winform
Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn hai toán tử ?? và ? trong lập trình C# winform.
[C#] Làm việc với NULL sử toán toán tử ?? và ? trong lập trình winform
I. Giới thiệu về toán tử ?? trong C# Winform
Với toán tử ??
này sẽ giúp các bạn viết code được gọn gàng và sạch sẽ hơn.
Toán tử ??
có 2 toán hạng và có thể được sử dụng như biểu thức bên dưới:
x = y ?? z;
Toán tử ??
trả về toán hạng trên trái nếu toán hạng bên trái có giá trị khác null, ngược lại sẽ trả về toán hạng bên phải. Ở ví dụ trên, nếu y khác null, thì x = y; ngược lại, nếu y có giá trị null thì x = z
Ví dụ trên tương đương với biểu thức như sau:
if (y != null)
{
x = y;
}
else
{
x = z;
}
Hoặc
x = (y != null)? y : z;
Bạn thấy đấy, dùng toán tử ??
vẫn chiếm ưu thế hơn. Code chúng ta vô cùng sạch sẽ, gọn đẹp, dễ nhìn. Và quan trọng nhất là nó giúp chúng ta trở nên chuyên nghiệp hơn.
Giờ Góc Kinh Nghiệm sẽ ứng dụng toán tử ??
vào một ví dụ bằng C# cụ thể nhé.
Giả sử, có một TextBox tên txtGender dùng để nhập vào giới tính. Và một Button tên btnClick. Nhập dữ liệu vào ô giới tính, sau đó nhấn vào nút btnClick để xuất ra thông báo
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void btnClick_Click(object sender, EventArgs e)
{
// Lấy giá trị từ TextBox giới tính có tên là txtGender
string strGender = txtGender.Text.Trim();
if (strGender == "")
strGender = null;
// Nếu giới tính nhập vào:
// Khác null thì xuất ra thông báo giới tính vừa nhập;
// Ngược lại, xuất ra thông báo "Giới tính chưa xác định";
// Chúng ta dùng toán tử ??
string message = strGender ?? "Giới tính chưa xác định";
MessageBox.Show(message);
}
}
II. Giới thiệu toán tử ? trong lập trình C#
Trong lập trình C#, dấu chấm hỏi ?
được thêm sau kiểu biến có ý nghĩa gì.
Đối với các kiểu dữ liệu không có giá trị null thì khi chúng ta khai báo như bên dưới đây là sẽ lỗi.
Kiểu dữ liệu Boolean chỉ có hai giá trị: true và false
Kiểu dữ liệu int bao gồm các số tự nhiên.
Và nếu chúng ta khai báo như dưới đây, chương trình sẽ báo lỗi cho chúng ta:
int a = null;
bool b = null;
Hoặc
public int GetNull()
{
return null;
}
Hoặc khai báo hàm như sau:
public static void XuLy(int a, int b)
{ }
Nhưng lúc truyền biến vào hàm là giá trị null:
XuLy(1, null);
Sử dụng dấu hỏi ?
ngay sau kiểu dữ liệu ta được 1 kiểu dữ liệu mới. Miền giá trị bao gồm miền giá trị của kiểu dữ liệu cũ và thêm giá trị null nữa.
Và chúng ta khai báo như sau sẽ không còn báo lỗi nữa:
int? a = null;
bool? b = null;
Hoặc
public int? GetNull()
{
return null;
}
public static void XuLy(int a, int? b)
{ }
Chú ý:
- Chỉ có thể gán kiểu dữ liệu not null cho kiểu dữ liệu có thể null chứ ngược lại thì không.
- Ví dụ có thể gán:
int a = 5;
int? b = a;
int? a = 5;
int b = a;
Hoặc không thể
public int Test()
{
return GetNull();
}
public int? GetNull()
{
return null;
}
Thanks for watching!
Bài viết được tham khảo bởi gockinhnghiem và hanhtranglaptrinh.com