annotate Source/Common/Tuple.cs @ 0:f990fcb411a9

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