Truyền giá trị null cho các kiểu dữ liệu trong C#
Góc Kinh Nghiệm sẽ trình bày cách để thiết lập một giá trị null cho một kiểu dữ liệu bất kỳ trong C#. Để làm được điều đó thì cần khai báo biến kiểu dữ liệu ở dạng cho phép thiết lập giá trị null. Cú phát như sau: DateTime? _datetime = null; int? _int = 0; Theo sau kiểu dữ liệu là dấu ?, có ...
Góc Kinh Nghiệm sẽ trình bày cách để thiết lập một giá trị null cho một kiểu dữ liệu bất kỳ trong C#. Để làm được điều đó thì cần khai báo biến kiểu dữ liệu ở dạng cho phép thiết lập giá trị null. Cú phát như sau:
DateTime? _datetime = null; int? _int = 0;
Theo sau kiểu dữ liệu là dấu ?, có nghĩa là cho phép dữ liệu đó được phép null.
Ép kiểu sang kiểu null như sau:
_datetime = (DateTime?)null; _bool = (bool?)null;
Tương tự cho các kiểu dữ liệu còn lại.
Tùy theo cách bạn viết code mà có thể sử dụng ép kiểu hoặc không ép kiểu (thiết lập trực tiếp như _int = null;)
Ví dụ minh họa, Góc Kinh Nghiệm sử dụng VS2005 cho ví dụ này:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyProject
{
public partial class FormSetNullValue : Form
{
public FormSetNullValue()
{
InitializeComponent();
btnCheck.Click += new EventHandler(btnCheck_Click);
}
void btnCheck_Click(object sender, EventArgs e)
{
int? _int = 0;
float? _float = 0;
decimal? _decimal = 0;
bool? _bool = false;
short? _short = 0;
long? _long = 0;
double? _double = 0;
DateTime? _datetime = null;
// Nếu ô "nul cho kiểu in" được check thì biến _int được thiết lập giá trị là null
// Ngược lại được thiết lập = 1
if (chbSetIntNull.Checked)
_int = null;
else
_int = 1;
// Tương tự cho kiểu float
// Cách viết khác của biểu thức điều kiện
_float = chbSetFloatNull.Checked ? (float?)null : 1;
// decimal
_decimal = chbSetDecimalNull.Checked == true ? (decimal?)null : 1;
// bool
_bool = chbSetBoolNull.Checked == true ? (bool?)null : true;
// short
_short = chbSetShortNull.Checked ? (short?)null : 1;
// long
_long = chbSetLongNull.Checked ? (long?)null : 1;
// double
_double = chbSetDoubleNull.Checked ? (double?)null : 1;
// datetime
_datetime = chbSetDateTimeNull.Checked ? (DateTime?)null : DateTime.Now;
// Kiểm tra & xuất ra thông báo
string nullValues = "1. Những kiểu dữ liệu có giá trị null:" + Environment.NewLine;
string notNullValues = "2. Những kiểu dữ liệu có giá trị khác null:" + Environment.NewLine;
// int
if (_int == null)
nullValues += " - int" + Environment.NewLine;
else
notNullValues += " - int" + Environment.NewLine;
// float
if (_float == null)
nullValues += " - float" + Environment.NewLine;
else
notNullValues += " - float" + Environment.NewLine;
// decimal
if (_decimal == null)
nullValues += " - decimal" + Environment.NewLine;
else
notNullValues += " - decimal" + Environment.NewLine;
// bool
if (_bool == null)
nullValues += " - bool" + Environment.NewLine;
else
notNullValues += " - bool" + Environment.NewLine;
// short
if (_short == null)
nullValues += " - short" + Environment.NewLine;
else
notNullValues += " - short" + Environment.NewLine;
// long
if (_long == null)
nullValues += " - long" + Environment.NewLine;
else
notNullValues += " - long" + Environment.NewLine;
// double
if (_double == null)
nullValues += " - double" + Environment.NewLine;
else
notNullValues += " - double" + Environment.NewLine;
// datetime
if (_datetime == null)
nullValues += " - datetime" + Environment.NewLine;
else
notNullValues += " - datetime" + Environment.NewLine;
MessageBox.Show(nullValues + notNullValues, "www.gockinhnghiem.com");
}
}
}
Giải thích:
- Environment.NewLine: xuống dòng
- “ ”: là thục vào dầu dòng (chính là phím tab)
Chạy chương trình, được kết quả như hình bên dưới:

Sau khi nhấn nút “Kiểm tra”, được kết quả như hình bên dưới:

Góc kinh nghiệm chúc các bạn thành công! 