- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
- [C#] Hướng dẫn tạo file PDF sử dụng thư viện QuestPDF
- [C#] Hướng dẫn tạo ứng dụng dock windows giống Taskbar
- [C#] Chia sẻ source code sử dụng Object Listview trên Winform
- [VB.NET] Chia sẻ source code quản lý thu chi mô hình 3 lớp Winform
- [DATABASE] Xóa lịch sử danh sách đăng nhập tài khoản trên SMSS Sqlserver Management Studio
- [C#] Sử dụng FolderBrowserDialog Vista trên Winform
- [DEVEXPRESS] Chia sẻ tool Winform UI Templates Early Access Preview (EAP)
- [C#] Chia sẻ source code Spin Content (Trộn nội dung văn bản theo từ đồng nghĩa) trên Winform
- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
[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