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!