C# |对象类
对象类是 中所有类的基类。网络框架 。它存在于系统命名空间中。在 C# 中,。NET 基类库(BCL) 有一个特定于语言的别名,它是 Object 类,完全限定名为 System。对象。C# 中的每个类都是直接或间接从对象类派生的。如果一个类不扩展任何其他类,那么它是对象类的直接子类,如果扩展其他类,那么它是间接派生的。因此,对象类方法对所有 C# 类都可用。因此,在任何 C# 程序中,对象类都是继承层次的根。对象类的主要目的是为派生类提供低级服务。
C# 中有两种类型,即 引用类型和 值类型。通过使用系统。值类型类,值类型隐式继承对象类。系统。值类型类用更适合值类型的实现重写对象类中的虚拟方法。在其他编程语言中,内置类型如 int、double、float 等。没有任何面向对象的属性。要模拟内置类型的面向对象行为,必须将它们显式包装到对象中。但是在 C# 中,由于从 System 继承的值类型的存在,我们不需要这样的包装。值类型进一步继承自 System.Object。因此在 C# 中,值类型的工作方式也类似于引用类型。引用类型通过使用其他引用类型直接或间接继承对象类。
上图说明:这里可以看到类型层次结构顶部的 Object 类。1 级和2 级为参照类型。类 1 直接继承对象类,而类 2 通过使用类 1 间接继承。结构 1 是通过系统隐式继承对象类的值类型。ValueType 类型。
示例:
// C# Program to demonstrate
// the Object class
using System;
using System.Text;
class Geeks {
// Main Method
static void Main(string[] args)
{
// taking object type
Object obj1 = new Object();
// taking integer
int i = 10;
// taking Type type and assigning
// the value as type of above
// defined types using GetType
// method
Type t1 = obj1.GetType();
Type t2 = i.GetType();
// Displaying result
Console.WriteLine("For Object obj1 = new Object();");
// BaseType is used to display
// the base class of current type
// it will return nothing as Object
// class is on top of hierarchy
Console.WriteLine(t1.BaseType);
// It will return the name class
Console.WriteLine(t1.Name);
// It will return the
// fully qualified name
Console.WriteLine(t1.FullName);
// It will return the Namespace
// By default Namespace is System
Console.WriteLine(t1.Namespace);
Console.WriteLine();
Console.WriteLine("For String str");
// BaseType is used to display
// the base class of current type
// it will return System.Object
// as Object class is on top
// of hierarchy
Console.WriteLine(t2.BaseType);
// It will return the name class
Console.WriteLine(t2.Name);
// It will return the
// fully qualified name
Console.WriteLine(t2.FullName);
// It will return the Namespace
// By default Namespace is System
Console.WriteLine(t2.Namespace);
}
}
输出:
For Object obj1 = new Object();
Object
System.Object
System
For String str
System.ValueType
Int32
System.Int32
System
构造器
构造器 | 描述 |
---|---|
对象() | 初始化对象类的新实例。此构造函数由派生类中的构造函数调用,但也可用于直接创建对象类的实例。 |
方法
C# 对象类中总共有 8 种方法,如下所示:
方法 | 描述 |
---|---|
等于(对象) | 确定指定的对象是否等于当前对象。 |
等于(对象,对象) | 确定指定的对象实例是否被视为相等。 |
最终确定() | 允许对象在被垃圾回收之前尝试释放资源并执行其他清理操作。 |
GetHashCode() | 用作默认哈希函数。 |
gettype() | 获取当前实例的类型。 |
MemberWiseCrone() | 创建当前对象的浅拷贝。 |
参考等式(对象,对象) | 确定指定的对象实例是否为同一实例。 |
ToString() | 返回表示当前对象的字符串。 |
要点:
- C# 类不需要声明对象类的继承,因为继承是隐式的。
- 对象类中定义的每个方法在系统中的所有对象中都是可用的,就像中的所有类一样。NET 框架是从 Object 类派生出来的。
- 派生类可以并且确实重写对象类的 Equals、Finalize、GetHashCode 和 ToString 方法。
- 在内部装箱和取消装箱类型的过程会导致性能成本。使用类型特定的类来处理经常使用的类型可以提高性能成本。
版权属于:月萌API www.moonapi.com,转载请注明出处