C#空类分析
链接: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 方法:创建当前对象的浅表复制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统