Mercurial > pub > bltoolkit
comparison Source/Common/Tuple.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 | |
3 namespace BLToolkit.Common | |
4 { | |
5 [Obsolete("Use System.Tuple")] | |
6 public struct Tuple<T1,T2> | |
7 { | |
8 public Tuple(T1 field1, T2 field2) | |
9 { | |
10 Field1 = field1; | |
11 Field2 = field2; | |
12 } | |
13 | |
14 public readonly T1 Field1; | |
15 public readonly T2 Field2; | |
16 | |
17 public override int GetHashCode() | |
18 { | |
19 int hash1 = Field1 == null ? 0 : Field1.GetHashCode(); | |
20 int hash2 = Field2 == null ? 0 : Field2.GetHashCode(); | |
21 | |
22 return ((hash1 << 5) + hash1) ^ hash2; | |
23 } | |
24 | |
25 public override bool Equals(object obj) | |
26 { | |
27 if (obj is Tuple<T1,T2>) | |
28 { | |
29 Tuple<T1,T2> t = (Tuple<T1,T2>)obj; | |
30 | |
31 return | |
32 (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) && | |
33 (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2)); | |
34 } | |
35 | |
36 return false; | |
37 } | |
38 } | |
39 | |
40 [Obsolete("Use System.Tuple")] | |
41 public struct Tuple<T1,T2,T3> | |
42 { | |
43 public Tuple(T1 field1, T2 field2, T3 field3) | |
44 { | |
45 Field1 = field1; | |
46 Field2 = field2; | |
47 Field3 = field3; | |
48 } | |
49 | |
50 public readonly T1 Field1; | |
51 public readonly T2 Field2; | |
52 public readonly T3 Field3; | |
53 | |
54 public override int GetHashCode() | |
55 { | |
56 int hash1 = Field1 == null ? 0 : Field1.GetHashCode(); | |
57 int hash2 = Field2 == null ? 0 : Field2.GetHashCode(); | |
58 | |
59 hash1 = ((hash1 << 5) + hash1) ^ hash2; | |
60 hash2 = Field3 == null ? 0 : Field3.GetHashCode(); | |
61 | |
62 return ((hash1 << 5) + hash1) ^ hash2; | |
63 } | |
64 | |
65 public override bool Equals(object obj) | |
66 { | |
67 if (obj is Tuple<T1,T2,T3>) | |
68 { | |
69 Tuple<T1,T2,T3> t = (Tuple<T1,T2,T3>)obj; | |
70 | |
71 return | |
72 (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) && | |
73 (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2)) && | |
74 (Field3 == null ? t.Field3 == null : Field3.Equals(t.Field3)); | |
75 } | |
76 | |
77 return false; | |
78 } | |
79 } | |
80 | |
81 [Obsolete("Use System.Tuple")] | |
82 public struct Tuple<T1,T2,T3,T4> | |
83 { | |
84 public Tuple(T1 field1, T2 field2, T3 field3, T4 field4) | |
85 { | |
86 Field1 = field1; | |
87 Field2 = field2; | |
88 Field3 = field3; | |
89 Field4 = field4; | |
90 } | |
91 | |
92 public readonly T1 Field1; | |
93 public readonly T2 Field2; | |
94 public readonly T3 Field3; | |
95 public readonly T4 Field4; | |
96 | |
97 public override int GetHashCode() | |
98 { | |
99 int hash1 = Field1 == null ? 0 : Field1.GetHashCode(); | |
100 int hash2 = Field2 == null ? 0 : Field2.GetHashCode(); | |
101 | |
102 hash1 = ((hash1 << 5) + hash1) ^ hash2; | |
103 hash2 = Field3 == null ? 0 : Field3.GetHashCode(); | |
104 | |
105 hash1 = ((hash1 << 5) + hash1) ^ hash2; | |
106 hash2 = Field4 == null ? 0 : Field4.GetHashCode(); | |
107 | |
108 return ((hash1 << 5) + hash1) ^ hash2; | |
109 } | |
110 | |
111 public override bool Equals(object obj) | |
112 { | |
113 if (obj is Tuple<T1,T2,T3,T4>) | |
114 { | |
115 Tuple<T1,T2,T3,T4> t = (Tuple<T1,T2,T3,T4>)obj; | |
116 | |
117 return | |
118 (Field1 == null ? t.Field1 == null : Field1.Equals(t.Field1)) && | |
119 (Field2 == null ? t.Field2 == null : Field2.Equals(t.Field2)) && | |
120 (Field3 == null ? t.Field3 == null : Field3.Equals(t.Field3)) && | |
121 (Field4 == null ? t.Field4 == null : Field4.Equals(t.Field4)); | |
122 } | |
123 | |
124 return false; | |
125 } | |
126 } | |
127 } |