Changeset 3638
- Timestamp:
- 12/27/07 18:33:20 (5 years ago)
- Location:
- lang/csharp/2.0/Util/trunk
- Files:
-
- 2 modified
-
UnitTest/UtilTest.cs (modified) (6 diffs)
-
Util.cs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/csharp/2.0/Util/trunk/UnitTest/UtilTest.cs
r3322 r3638 60 60 br = ta.IsSubclassOf(typeof(Class_A)); // 61 61 br = new List<Type>(ta.GetInterfaces()).Contains(typeof(Class_A)); // 62 br = typeof(Class_A).IsAssignableFrom(ta); //true 62 63 63 64 br = ta.Equals(typeof(Interface_1)); // 64 65 br = ta.IsSubclassOf(typeof(Interface_1)); // 65 66 br = new List<Type>(ta.GetInterfaces()).Contains(typeof(Interface_1)); //true 67 br = typeof(Interface_1).IsAssignableFrom(ta); //true 66 68 67 //Assert.AreEqual(typeof(Class_A).IsInterface, false); 68 //Assert.AreEqual(ta.Equals(typeof(Class_A)), true); 69 //Assert.AreEqual(ta.IsSubclassOf(typeof(Class_A)), false); 70 //Assert.AreEqual(new List<Type>(ta.GetInterfaces()).Contains(typeof(Class_A)), false); 71 72 //Assert.AreEqual(typeof(Interface_1).IsInterface, true); 73 //Assert.AreEqual(ta.Equals(typeof(Interface_1)), false); 74 //Assert.AreEqual(ta.IsSubclassOf(typeof(Interface_1)), false); 75 //Assert.AreEqual(new List<Type>(ta.GetInterfaces()).Contains(typeof(Interface_1)), true); 69 Assert.AreEqual(typeof(Class_A).IsAssignableFrom(ta), Util.TypeIs(ta, typeof(Class_A))); 70 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(ta), Util.TypeIs(ta, typeof(Interface_1))); 76 71 77 72 /** … … 82 77 br = tb.IsSubclassOf(typeof(Class_A)); //true 83 78 br = new List<Type>(tb.GetInterfaces()).Contains(typeof(Class_A)); // 79 br = typeof(Class_A).IsAssignableFrom(tb); //true 84 80 85 81 br = tb.Equals(typeof(Interface_1)); // 86 82 br = tb.IsSubclassOf(typeof(Interface_1)); // 87 83 br = new List<Type>(tb.GetInterfaces()).Contains(typeof(Interface_1)); //true 84 br = typeof(Interface_1).IsAssignableFrom(tb); //true 88 85 89 86 br = tb.Equals(typeof(Class_B)); //true 90 87 br = tb.IsSubclassOf(typeof(Class_B)); // 91 88 br = new List<Type>(tb.GetInterfaces()).Contains(typeof(Class_B)); // 89 br = typeof(Class_B).IsAssignableFrom(tb); //true 92 90 93 91 br = tb.Equals(typeof(Interface_2)); // 94 92 br = tb.IsSubclassOf(typeof(Interface_2)); // 95 93 br = new List<Type>(tb.GetInterfaces()).Contains(typeof(Interface_2)); //true 94 br = typeof(Interface_2).IsAssignableFrom(tb); //true 96 95 97 //Assert.AreEqual(typeof(Class_A).IsInterface, false); 98 //Assert.AreEqual(tb.IsSubclassOf(typeof(Class_A)), true); 99 100 //Assert.AreEqual(typeof(Interface_1).IsInterface, true); 101 //Assert.AreEqual(tb.IsSubclassOf(typeof(Interface_1)), true); 102 103 //Assert.AreEqual(typeof(Class_A).IsInterface, false); 104 //Assert.AreEqual(tb.IsSubclassOf(typeof(Class_B)), true); 105 106 //Assert.AreEqual(typeof(Interface_2).IsInterface, true); 107 //Assert.AreEqual(tb.IsSubclassOf(typeof(Interface_2)), true); 96 Assert.AreEqual(typeof(Class_A).IsAssignableFrom(tb), Util.TypeIs(tb, typeof(Class_A))); 97 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(tb), Util.TypeIs(tb, typeof(Interface_1))); 98 Assert.AreEqual(typeof(Class_B).IsAssignableFrom(tb), Util.TypeIs(tb, typeof(Class_B))); 99 Assert.AreEqual(typeof(Interface_2).IsAssignableFrom(tb), Util.TypeIs(tb, typeof(Interface_2))); 108 100 109 101 /** … … 114 106 br = tc.IsSubclassOf(typeof(Class_A)); // 115 107 br = new List<Type>(tc.GetInterfaces()).Contains(typeof(Class_A)); // 108 br = typeof(Class_A).IsAssignableFrom(tc); // 116 109 117 110 br = tc.Equals(typeof(Interface_1)); // 118 111 br = tc.IsSubclassOf(typeof(Interface_1)); // 119 112 br = new List<Type>(tc.GetInterfaces()).Contains(typeof(Interface_1)); // 113 br = typeof(Interface_1).IsAssignableFrom(tc); // 120 114 121 115 br = tc.Equals(typeof(Class_B)); // 122 116 br = tc.IsSubclassOf(typeof(Class_B)); // 123 117 br = new List<Type>(tc.GetInterfaces()).Contains(typeof(Class_B)); // 118 br = typeof(Class_B).IsAssignableFrom(tc); // 124 119 125 120 br = tc.Equals(typeof(Interface_2)); // 126 121 br = tc.IsSubclassOf(typeof(Interface_2)); // 127 122 br = new List<Type>(tc.GetInterfaces()).Contains(typeof(Interface_2)); // 123 br = typeof(Interface_2).IsAssignableFrom(tc); // 128 124 129 125 br = tc.Equals(typeof(Class_C)); //true 130 126 br = tc.IsSubclassOf(typeof(Class_C)); // 131 127 br = new List<Type>(tc.GetInterfaces()).Contains(typeof(Class_C)); // 128 br = typeof(Class_C).IsAssignableFrom(tc); //true 132 129 133 //Assert.AreEqual(tc.IsSubclassOf(typeof(Class_A)), false); 134 //Assert.AreEqual(tc.IsSubclassOf(typeof(Interface_1)), false); 135 //Assert.AreEqual(tc.IsSubclassOf(typeof(Class_B)), false); 136 //Assert.AreEqual(tc.IsSubclassOf(typeof(Interface_2)), false); 137 138 //Assert.AreEqual(typeof(Class_C).IsInterface, false); 139 //Assert.AreEqual(tc.Equals(typeof(Class_C)), true); 140 //Assert.AreEqual(tc.IsSubclassOf(typeof(Class_C)), false); 130 Assert.AreEqual(typeof(Class_A).IsAssignableFrom(tc), Util.TypeIs(tc, typeof(Class_A))); 131 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(tc), Util.TypeIs(tc, typeof(Interface_1))); 132 Assert.AreEqual(typeof(Class_B).IsAssignableFrom(tc), Util.TypeIs(tc, typeof(Class_B))); 133 Assert.AreEqual(typeof(Interface_2).IsAssignableFrom(tc), Util.TypeIs(tc, typeof(Interface_2))); 134 Assert.AreEqual(typeof(Class_C).IsAssignableFrom(tc), Util.TypeIs(tc, typeof(Class_C))); 141 135 142 136 /** … … 146 140 br = i1.IsSubclassOf(typeof(Interface_1)); // 147 141 br = new List<Type>(i1.GetInterfaces()).Contains(typeof(Interface_1)); // 142 br = typeof(Interface_1).IsAssignableFrom(i1); //true 143 144 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(i1), Util.TypeIs(i1, typeof(Interface_1))); 148 145 149 146 /** … … 153 150 br = i2.IsSubclassOf(typeof(Interface_2)); // 154 151 br = new List<Type>(i2.GetInterfaces()).Contains(typeof(Interface_2)); // 152 br = typeof(Interface_2).IsAssignableFrom(i2); //true 153 154 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(i2), Util.TypeIs(i2, typeof(Interface_1))); 155 Assert.AreEqual(typeof(Interface_2).IsAssignableFrom(i2), Util.TypeIs(i2, typeof(Interface_2))); 155 156 156 157 /** … … 160 161 br = i3.IsSubclassOf(typeof(Interface_1)); // 161 162 br = new List<Type>(i3.GetInterfaces()).Contains(typeof(Interface_1)); //true 163 br = typeof(Interface_1).IsAssignableFrom(i3); //true 162 164 163 165 br = i3.Equals(typeof(Interface_3)); //true 164 166 br = i3.IsSubclassOf(typeof(Interface_3)); // 165 167 br = new List<Type>(i3.GetInterfaces()).Contains(typeof(Interface_3)); // 168 br = typeof(Interface_3).IsAssignableFrom(i3); //true 166 169 167 //Assert.AreEqual(Util.TypeIs(ta, typeof(Class_A)), true); 168 //Assert.AreEqual(Util.TypeIs(ta, typeof(Interface_1)), true); 169 170 //Assert.AreEqual(Util.TypeIs(tb, typeof(Class_A)), true); 171 //Assert.AreEqual(Util.TypeIs(tb, typeof(Interface_1)), true); 172 //Assert.AreEqual(Util.TypeIs(tb, typeof(Class_B)), true); 173 //Assert.AreEqual(Util.TypeIs(tb, typeof(Interface_2)), true); 174 175 //Assert.AreEqual(Util.TypeIs(tc, typeof(Class_A)), false); 176 //Assert.AreEqual(Util.TypeIs(tc, typeof(Interface_1)), false); 177 //Assert.AreEqual(Util.TypeIs(tc, typeof(Class_B)), false); 178 //Assert.AreEqual(Util.TypeIs(tc, typeof(Interface_2)), false); 179 //Assert.AreEqual(Util.TypeIs(tc, typeof(Class_C)), true); 170 Assert.AreEqual(typeof(Interface_1).IsAssignableFrom(i3), Util.TypeIs(i3, typeof(Interface_1))); 171 Assert.AreEqual(typeof(Interface_3).IsAssignableFrom(i3), Util.TypeIs(i3, typeof(Interface_3))); 180 172 } 181 173 } -
lang/csharp/2.0/Util/trunk/Util.cs
r3322 r3638 7 7 public class Util 8 8 { 9 public static Boolean TypeIs1(Type t1, Type t2) 10 { 11 Type wkt = t1; 12 while (wkt != null) 13 { 14 if (wkt.Equals(t2)) 15 { 16 return true; 17 } 18 wkt = wkt.BaseType; 19 } 20 return false; 21 } 22 public static Boolean TypeIs2(Type t1, Type t2) 23 { 24 return t1.Equals(t2) || t1.IsSubclassOf(t2); 25 } 26 public static Boolean TypeIs3(Type t1, Type t2) 27 { 28 return t1.Equals(t2) || t1.IsSubclassOf(t2) || new List<Type>(t1.GetInterfaces()).Contains(t2); 29 } 9 30 public static Boolean TypeIs(Type t1, Type t2) 10 31 { 11 return false;32 return t2.IsAssignableFrom(t1); 12 33 } 13 //''' <summary>14 //''' �^�̌݊�����F�b�N���� //''' </summary>15 //''' <param name="t1">�^�P</param>16 //''' <param name="t2">�^�Q</param>17 //''' <returns>(t1 Is A t2)�Ȃ�ue</returns>18 //''' <remarks>�C���^�[�t�F�C�X�̎���`�F�b�N�ɂ͖��Ή�</remarks>19 //Private Function TypeIs(ByVal t1 As Type, ByVal t2 As Type) As Boolean20 // Dim wkT As Type = t121 // While wkT IsNot Nothing22 // If wkT.Equals(t2) Then23 // Return True24 // End If25 // wkT = wkT.BaseType26 // End While27 // Return False28 //End Function29 34 } 30 35 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)