01/10/2018, 17:30

Hướng dẫn sử dụng toán tử ?? trong C#

Hôm nay Góc Kinh Nghiệm sẽ giới thiệu các cách dùng toán tử ?? trong C#. Với toán tử này sẽ làm code bạn gọn, sạch và chuyên nghiệp hơn. Toán tử ?? đã được giới thiệu từ C# phiên bản 2.0. 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ề ...

Hôm nay Góc Kinh Nghiệm sẽ giới thiệu các cách dùng toán tử ?? trong C#. Với toán tử này sẽ làm code bạn gọn, sạch và chuyên nghiệp hơn.

Toán tử ?? đã được giới thiệu từ C# phiên bản 2.0. 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);
        }
    }

Góc Kinh Nghiệm chúc các bạn thành công!  :shock:


0