链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/inheritance
public class SimpleClass
{ }
这是一个空类,但是包含的却不空,当前类隐式继承于Object类,或者说是Object的派生类。该类包含九个成员,其中一个为默认的无参构造函数,和八个Object类的成员。
using System;
using System.Reflection;
public class Example
{
public static void Main()
{
Type t = typeof(SimpleClass);
BindingFlags flags = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.FlattenHierarchy;
MemberInfo[] members = t.GetMembers(flags);
Console.WriteLine($"Type {t.Name} has {members.Length} members: ");
foreach (var member in members)
{
string access = "";
string stat = "";
var method = member as MethodBase;
if (method != null)
{
if (method.IsPublic)
access = " Public";
else if (method.IsPrivate)
access = " Private";
else if (method.IsFamily)
access = " Protected";
else if (method.IsAssembly)
access = " Internal";
else if (method.IsFamilyOrAssembly)
access = " Protected Internal ";
if (method.IsStatic)
stat = " Static";
}
var output = $"{member.Name} ({member.MemberType}): {access}{stat}, Declared by {member.DeclaringType}";
Console.WriteLine(output);
}
}
}
由于隐式继承自 Object 类,因此 SimpleClass 类可以使用下面这些方法:
1.公共 ToString 方法将 SimpleClass 对象转换为字符串表示形式,返回完全限定的类型名称。 在这种情况下,ToString 方法返回字符串“SimpleClass”。
2,3,4..三个用于测试两个对象是否相等的方法:公共实例 Equals(Object) 方法、公共静态 Equals(Object, Object) 方法和公共静态 ReferenceEquals(Object, Object) 方法。 默认情况下,这三个方法测试的是引用相等性;也就是说,两个对象变量必须引用同一个对象,才算相等。
5.公共 GetHashCode 方法:计算允许在经哈希处理的集合中使用类型实例的值。
6.公共 GetType 方法:返回表示 SimpleClass 类型的 Type 对象。
7.受保护 Finalize 方法:用于在垃圾回收器回收对象的内存之前释放非托管资源。
8.受保护 MemberwiseClone 方法:创建当前对象的浅表复制。