单问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!
双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!
1
/*
2 * Created by BpLoveGcy.cnblogs.com
3 * Gump Yin
4 * Date: 2010-3-28
5 * Time: 13:03
6 *
7 * Version:
8 * CopyRight: http://BpLoveGcy.cnblogs.com/
9 */
10
11 using System;
12 using NUnit.Framework;
13
14 namespace MustKnownDotNet
15 {
16 public class QuestionMark
17 {
18 private int ? id;
19
20 public int ? NULL_ID
21 {
22 get
23 {
24 return this .id;
25 }
26 }
27 public int ? NotNULL_ID
28 {
29 get
30 {
31 return this .id ?? 1 ;
32 }
33 }
34 }
35 [TestFixture]
36 public class QuestionMark_Test
37 {
38 [Test]
39 public void TestMethod()
40 {
41 // TODO: Add your test.
42 QuestionMark q = new QuestionMark();
43 Assert.IsNotNull(q.NotNULL_ID);
44 Assert.IsTrue(q.NotNULL_ID == 1 );
45
46 }
47 [Test]
48 public void TestMethod1()
49 {
50 // TODO: Add your test.
51 QuestionMark q = new QuestionMark();
52
53 Assert.IsNull(q.NULL_ID);
54 }
55 }
56 }
57
2 * Created by BpLoveGcy.cnblogs.com
3 * Gump Yin
4 * Date: 2010-3-28
5 * Time: 13:03
6 *
7 * Version:
8 * CopyRight: http://BpLoveGcy.cnblogs.com/
9 */
10
11 using System;
12 using NUnit.Framework;
13
14 namespace MustKnownDotNet
15 {
16 public class QuestionMark
17 {
18 private int ? id;
19
20 public int ? NULL_ID
21 {
22 get
23 {
24 return this .id;
25 }
26 }
27 public int ? NotNULL_ID
28 {
29 get
30 {
31 return this .id ?? 1 ;
32 }
33 }
34 }
35 [TestFixture]
36 public class QuestionMark_Test
37 {
38 [Test]
39 public void TestMethod()
40 {
41 // TODO: Add your test.
42 QuestionMark q = new QuestionMark();
43 Assert.IsNotNull(q.NotNULL_ID);
44 Assert.IsTrue(q.NotNULL_ID == 1 );
45
46 }
47 [Test]
48 public void TestMethod1()
49 {
50 // TODO: Add your test.
51 QuestionMark q = new QuestionMark();
52
53 Assert.IsNull(q.NULL_ID);
54 }
55 }
56 }
57