blob: 854e31cb5110d7b35b3c37ff7b5ab686c6f53a5c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
using System;
using System.Collections;
namespace System.Xml.Serialization
{
/// <summary>
/// TypeMember is immutable class which is used as a key in a Hashtable.
/// </summary>
internal sealed class TypeMember
{
Type type;
string member;
internal TypeMember(Type type, string member)
{
this.type = type;
this.member = member;
}
public override int GetHashCode()
{
return unchecked (type.GetHashCode() + member.GetHashCode());
}
public override bool Equals(object obj)
{
if(obj is TypeMember)
return TypeMember.Equals(this,(TypeMember)obj);
return false;
}
public static bool Equals(TypeMember tm1, TypeMember tm2)
{
if(Object.ReferenceEquals(tm1,tm2))
return true;
if(Object.ReferenceEquals(tm1,null) || Object.ReferenceEquals(tm2,null))
return false;
if(tm1.type == tm2.type && tm1.member == tm2.member)
return true;
return false;
}
public static bool operator==(TypeMember tm1, TypeMember tm2)
{
return TypeMember.Equals(tm1,tm2);
}
public static bool operator!=(TypeMember tm1, TypeMember tm2)
{
return !TypeMember.Equals(tm1,tm2);
}
}
}
|