博客
关于我
强烈建议你试试无所不能的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
你可能感兴趣的文章
基于RBAC权限管理
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>