也有很多人开始使用网络上下载的Jssor等系列数据类型,它能很好的解决数据类型方面导致的问题,但一些常用的三方控件,如DevExpress并不支持自定义的数据类型,这就给使用Jssor等系列数据类型造成了不小的障碍。
但是今天,我却发现可以定义如DateTime?、int?等形式的数据类型,然后用HasValue属性来判断是否为null,用Value属性来访问值。
如下面的代码:
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace ConsoleApplication1
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 // DateTime?
12 DateTime? datetime1 = new DateTime();
13
14 datetime1 = null;
15 Console.Write(datetime1 + "\n");
16 Console.Write(datetime1.HasValue + "\n");
17 try
18 {
19 Console.Write(datetime1.Value + "\n");
20 }
21 catch
22 {
23 Console.Write("Error!" + "\n");
24 }
25 if (datetime1 == null) Console.Write("Ok 1!" + "\n");
26 if (datetime1.HasValue == false) Console.Write("Ok 2!" + "\n");
27
28 datetime1 = DateTime.Now;
29 Console.Write(datetime1 + "\n");
30 Console.Write(datetime1.HasValue + "\n");
31 try
32 {
33 Console.Write(datetime1.Value + "\n");
34 }
35 catch
36 {
37 Console.Write("Error!" + "\n");
38 }
39 if (datetime1 != null) Console.Write("Ok 3!" + "\n");
40 if (datetime1.HasValue == true) Console.Write("Ok 4!" + "\n");
41
42 // DateTime
43 DateTime datetime2 = new DateTime();
44 datetime2 = null; // Error
45
46 Console.ReadLine();
47 }
48 }
49 }
注释掉标记为Error的代码后,运行结果如下图:
有了这些奇怪的数据类型后,我们以后设计数据库的时候就不会为这些为null的值发愁了:)