エンティティのいくつかの単例汎用型
8486 ワード
このシールは単利のいくつかの書き方を議論するのではなく、stringのような既存のクラスを単利に拡張する.Emptyの概念.
直接ドアを開けて山を見て、単例の汎用型を見てみましょう.
実際の用途例:
如果得到奥布杰克的话,可以进行null值的判断,有可能进行西肯斯的动作。首先,关于这种情况扩大方法.1 public static class EntityExtensions 2 { 3 public static T Instance<T>(this T t) 4 where T : class,new() 5 { 6 return t ?? Singleton<T>.Empty; 7 } 8}在这种情况下不需要进行null判定,而是直接使用空的价格。例如:entity.Instance(); MVCではCreateとEditの書き方が大きく異なりますが、実際には使用単利Object,作为Ed it View初期化Views.1 public ActionResult Create() 2 { 3 return View(Singleton<DemoModel>.Empty); 4}在一般的mvc中可能会出现他的价值,但在特定的动作中完全出现他的价值.例如,99出版システムアーキテクチャでは、Model UIの生産プロセスが必要になります.
直接ドアを開けて山を見て、単例の汎用型を見てみましょう.
1 ///Copyright (c) Q397386036
2 /// <summary>
3 ///
4 /// </summary>
5 /// <typeparam name="T"></typeparam>
6 public static class Singleton<T>
7 where T : new()
8 {
9 private readonly static T empty = new T();
10 public static T Empty
11 {
12 get
13 {
14 return empty;
15 }
16 }
17 }
18
19 /// <summary>
20 /// List
21 /// </summary>
22 /// <typeparam name="T"></typeparam>
23 public static class SingletonList<T>
24 {
25 public static List<T> Empty
26 {
27 get
28 {
29 return Singleton<List<T>>.Empty;
30 }
31 }
32 }
33 /// <summary>
34 /// Array
35 /// </summary>
36 /// <typeparam name="T"></typeparam>
37 public static class SingletonArray<T>
38 {
39 private readonly static T[] empty = new T[0];
40 public static T[] Empty
41 {
42 get
43 {
44 return empty;
45 }
46 }
47 }
48
49 public static class SingletonCollection<T>
50 {
51 public static ICollection<T> Empty
52 {
53 get
54 {
55 return SingletonList<T>.Empty;
56 }
57 }
58 }
実際の用途例:
如果得到奥布杰克的话,可以进行null值的判断,有可能进行西肯斯的动作。首先,关于这种情况扩大方法.1 public static class EntityExtensions 2 { 3 public static T Instance<T>(this T t) 4 where T : class,new() 5 { 6 return t ?? Singleton<T>.Empty; 7 } 8}在这种情况下不需要进行null判定,而是直接使用空的价格。例如:entity.Instance(); MVCではCreateとEditの書き方が大きく異なりますが、実際には使用単利Object,作为Ed it View初期化Views.1 public ActionResult Create() 2 { 3 return View(Singleton<DemoModel>.Empty); 4}在一般的mvc中可能会出现他的价值,但在特定的动作中完全出现他的价值.例如,99出版システムアーキテクチャでは、Model UIの生産プロセスが必要になります.