博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net System.Object 对象实现代码
阅读量:6263 次
发布时间:2019-06-22

本文共 2506 字,大约阅读时间需要 8 分钟。

 

  1
None.gif
//
 Decompiled by Salamander version 1.0.6
  2
None.gif
//
 Copyright 2002 Remotesoft Inc. All rights reserved.
  3
None.gif
//
 
http://www.remotesoft.com/salamander
  4
None.gif
  5
None.gif
using
 System.Reflection;
  6
None.gif
using
 System.Runtime;
  7
None.gif
using
 System.Runtime.Remoting;
  8
None.gif
using
 System.Runtime.Remoting.Messaging;
  9
None.gif
 10
None.gif
namespace
 System
 11
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
{
 12InBlock.gif  [ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
 13InBlock.gif  [SerializableAttribute()]
 14InBlock.gif  public class Object
 15ExpandedSubBlockStart.gifContractedSubBlock.gif  dot.gif{
 16InBlock.gif
 17InBlock.gif    public Object()
 18ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 19ExpandedSubBlockEnd.gif    }
 20InBlock.gif
 21InBlock.gif    // internalcall
 22InBlock.gif    private Type InternalGetType();
 23InBlock.gif
 24InBlock.gif    // internalcall
 25InBlock.gif    private Type FastGetExistingType();
 26InBlock.gif
 27InBlock.gif    public virtual string ToString()
 28ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 29InBlock.gif      return GetType().FullName;
 30ExpandedSubBlockEnd.gif    }
 31InBlock.gif
 32InBlock.gif    // internalcall
 33InBlock.gif    public virtual bool Equals(object obj);
 34InBlock.gif
 35InBlock.gif    public static bool Equals(object objA, object objB)
 36ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 37InBlock.gif      if (objA == objB)
 38ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 39InBlock.gif        return true;
 40ExpandedSubBlockEnd.gif      }
 41InBlock.gif      if (objA == null || objB == null)
 42ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 43InBlock.gif        return false;
 44ExpandedSubBlockEnd.gif      }
 45InBlock.gif      else
 46ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 47InBlock.gif        return objA.Equals(objB);
 48ExpandedSubBlockEnd.gif      }
 49ExpandedSubBlockEnd.gif    }
 50InBlock.gif
 51InBlock.gif    public static bool ReferenceEquals(object objA, object objB)
 52ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 53InBlock.gif      return objA == objB;
 54ExpandedSubBlockEnd.gif    }
 55InBlock.gif
 56InBlock.gif    // internalcall
 57InBlock.gif    public virtual int GetHashCode();
 58InBlock.gif
 59InBlock.gif    public Type GetType()
 60ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 61InBlock.gif      Type type = FastGetExistingType();
 62InBlock.gif      if (type == null)
 63ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 64InBlock.gif        type = InternalGetType();
 65ExpandedSubBlockEnd.gif      }
 66InBlock.gif      return type;
 67ExpandedSubBlockEnd.gif    }
 68InBlock.gif
 69InBlock.gif    ~Object()
 70ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 71ExpandedSubBlockEnd.gif    }
 72InBlock.gif
 73InBlock.gif    // internalcall
 74InBlock.gif    protected object MemberwiseClone();
 75InBlock.gif
 76InBlock.gif    private void FieldSetter(string typeName, string fieldName, object val)
 77ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 78InBlock.gif      FieldInfo fieldInfo = GetFieldInfo(typeName, fieldName);
 79InBlock.gif      if (fieldInfo.IsInitOnly)
 80ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 81InBlock.gif        throw new FieldAccessException(Environment.GetResourceString("FieldAccess_InitOnly"));
 82ExpandedSubBlockEnd.gif      }
 83InBlock.gif      Message.CoerceArg(val, fieldInfo.FieldType);
 84InBlock.gif      fieldInfo.SetValue(this, val);
 85ExpandedSubBlockEnd.gif    }
 86InBlock.gif
 87InBlock.gif    private void FieldGetter(string typeName, string fieldName, ref object val)
 88ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 89InBlock.gif      FieldInfo fieldInfo = GetFieldInfo(typeName, fieldName);
 90InBlock.gif      val = fieldInfo.GetValue(this);
 91ExpandedSubBlockEnd.gif    }
 92InBlock.gif
 93InBlock.gif    private FieldInfo GetFieldInfo(string typeName, string fieldName)
 94ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 95InBlock.gif      Type type;
 96InBlock.gif
 97InBlock.gif      for (type = GetType(); type != null && !type.FullName.Equals(typeName); type = type.BaseType)
 98ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
 99ExpandedSubBlockEnd.gif      }
100InBlock.gif      if (type == null)
101ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
102InBlock.gif        throw new RemotingException(String.Format(Environment.GetResourceString("Remoting_BadType"), typeName));
103ExpandedSubBlockEnd.gif      }
104InBlock.gif      FieldInfo fieldInfo = type.GetField(fieldName, 21);
105InBlock.gif      if (fieldInfo == null)
106ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
107InBlock.gif        throw new RemotingException(String.Format(Environment.GetResourceString("Remoting_BadField"), fieldName, typeName));
108ExpandedSubBlockEnd.gif      }
109InBlock.gif      else
110ExpandedSubBlockStart.gifContractedSubBlock.gif      dot.gif{
111InBlock.gif        return fieldInfo;
112ExpandedSubBlockEnd.gif      }
113ExpandedSubBlockEnd.gif    }
114ExpandedSubBlockEnd.gif  }
115InBlock.gif
116ExpandedBlockEnd.gif}
117
None.gif
你可能感兴趣的文章
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>