.Net System.Object 对象实现代码
1
// Decompiled by Salamander version 1.0.6
2
// Copyright 2002 Remotesoft Inc. All rights reserved.
3
// http://www.remotesoft.com/salamander
4![](/Images/OutliningIndicators/None.gif)
5
using System.Reflection;
6
using System.Runtime;
7
using System.Runtime.Remoting;
8
using System.Runtime.Remoting.Messaging;
9![](/Images/OutliningIndicators/None.gif)
10
namespace System
11
{
12
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
13
[SerializableAttribute()]
14
public class Object
15
{
16![](/Images/OutliningIndicators/InBlock.gif)
17
public Object()
18
{
19
}
20![](/Images/OutliningIndicators/InBlock.gif)
21
// internalcall
22
private Type InternalGetType();
23![](/Images/OutliningIndicators/InBlock.gif)
24
// internalcall
25
private Type FastGetExistingType();
26![](/Images/OutliningIndicators/InBlock.gif)
27
public virtual string ToString()
28
{
29
return GetType().FullName;
30
}
31![](/Images/OutliningIndicators/InBlock.gif)
32
// internalcall
33
public virtual bool Equals(object obj);
34![](/Images/OutliningIndicators/InBlock.gif)
35
public static bool Equals(object objA, object objB)
36
{
37
if (objA == objB)
38
{
39
return true;
40
}
41
if (objA == null || objB == null)
42
{
43
return false;
44
}
45
else
46
{
47
return objA.Equals(objB);
48
}
49
}
50![](/Images/OutliningIndicators/InBlock.gif)
51
public static bool ReferenceEquals(object objA, object objB)
52
{
53
return objA == objB;
54
}
55![](/Images/OutliningIndicators/InBlock.gif)
56
// internalcall
57
public virtual int GetHashCode();
58![](/Images/OutliningIndicators/InBlock.gif)
59
public Type GetType()
60
{
61
Type type = FastGetExistingType();
62
if (type == null)
63
{
64
type = InternalGetType();
65
}
66
return type;
67
}
68![](/Images/OutliningIndicators/InBlock.gif)
69
~Object()
70
{
71
}
72![](/Images/OutliningIndicators/InBlock.gif)
73
// internalcall
74
protected object MemberwiseClone();
75![](/Images/OutliningIndicators/InBlock.gif)
76
private void FieldSetter(string typeName, string fieldName, object val)
77
{
78
FieldInfo fieldInfo = GetFieldInfo(typeName, fieldName);
79
if (fieldInfo.IsInitOnly)
80
{
81
throw new FieldAccessException(Environment.GetResourceString("FieldAccess_InitOnly"));
82
}
83
Message.CoerceArg(val, fieldInfo.FieldType);
84
fieldInfo.SetValue(this, val);
85
}
86![](/Images/OutliningIndicators/InBlock.gif)
87
private void FieldGetter(string typeName, string fieldName, ref object val)
88
{
89
FieldInfo fieldInfo = GetFieldInfo(typeName, fieldName);
90
val = fieldInfo.GetValue(this);
91
}
92![](/Images/OutliningIndicators/InBlock.gif)
93
private FieldInfo GetFieldInfo(string typeName, string fieldName)
94
{
95
Type type;
96![](/Images/OutliningIndicators/InBlock.gif)
97
for (type = GetType(); type != null && !type.FullName.Equals(typeName); type = type.BaseType)
98
{
99
}
100
if (type == null)
101
{
102
throw new RemotingException(String.Format(Environment.GetResourceString("Remoting_BadType"), typeName));
103
}
104
FieldInfo fieldInfo = type.GetField(fieldName, 21);
105
if (fieldInfo == null)
106
{
107
throw new RemotingException(String.Format(Environment.GetResourceString("Remoting_BadField"), fieldName, typeName));
108
}
109
else
110
{
111
return fieldInfo;
112
}
113
}
114
}
115![](/Images/OutliningIndicators/InBlock.gif)
116
}
117![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
49
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
117
![](/Images/OutliningIndicators/None.gif)