当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Object用法及代码示例


Object类是所有类的基类.Net框架。它存在于系统命名空间。在 C# 中,.NET 基类库(BCL)有一个language-specific别名,它是对象类,其完全限定名称为System.Object。 C# 中的每个类都直接或间接派生自 Object 类。如果一个类没有扩展任何其他类,那么它是 Object 类的直接子类,如果扩展另一个类,那么它是间接派生的。因此,Object 类方法可用于所有 C# 类。因此,Object 类充当任何 C# 程序中继承层次结构的根。 Object 类的主要目的是为派生类提供低级服务。

C# 中有两种类型,即 Reference types and Value types 。通过使用 System.ValueType 类,值类型隐式继承对象类。 System.ValueType 类使用更适合值类型的实现来重写对象类中的虚拟方法。在其他编程语言中,int、double、float 等内置类型不具有任何面向对象的属性。要模拟内置类型的面向对象行为,必须将它们显式包装到对象中。但在 C# 中,我们不需要这种包装,因为存在从 System.ValueType 继承的值类型,而 System.ValueType 又进一步从 System.Object 继承。因此,在 C# 中,值类型的工作方式也与引用类型类似。引用类型通过使用其他引用类型直接或间接继承对象类。

上图解释:在这里,您可以看到位于类型层次结构顶部的 Object 类。1级2级是参考类型。类1是直接继承Object类,而类2是使用类1间接继承。Struct1是一个值类型,通过System.ValueType类型。

例子:

C#


// 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

Constructor

.object-table { border-collapse: 崩溃;宽度:100%; } .object-table td { 边框:1px 实心#5fb962; text-align:左!重要;内边距:8px; } .object-table th { 边框:1px 实心#5fb962;内边距:8px; } .object-table tr>th{ 背景颜色: #c6ebd9; vertical-align:中间; } .object-table tr:nth-child(奇数) { 背景颜色: #ffffff; }

构造函数 说明
Object() 初始化 Object 类的新实例。此构造函数由派生类中的构造函数调用,但也可用于直接创建 Object 类的实例。

Methods

C# Object 类中共有 8 个方法,如下所示:

方法 说明
Equals(Object) 确定指定对象是否等于当前对象。
Equals(Object, Object) 确定指定的对象实例是否被视为相等。
Finalize() 允许对象在被垃圾收集回收之前尝试释放资源并执行其他清理操作。
GetHashCode() 用作默认的哈希函数。
GetType() 获取当前实例的类型。
MemberwiseClone() 创建当前对象的浅拷贝。
ReferenceEquals(Object, Object) 判断指定的Object实例是否是同一个实例。
ToString() 返回表示当前对象的字符串。

要点:

  • C# 类不需要声明从 Object 类的继承,因为继承是隐式的。
  • Object 类中定义的每个方法在系统中的所有对象中都可用,就像系统中的所有类一样。.NET框架都是从 Object 类派生的。
  • 派生类可以并且确实重写 Object 类的 Equals、Finalize、GetHashCode 和 ToString 方法。
  • 对类型进行装箱和拆箱的过程在内部会导致性能成本。使用type-specific类来处理频繁使用的类型可以提高性能成本。


相关用法


注:本文由纯净天空筛选整理自Anshul_Aggarwal大神的英文原创作品 C# | Object Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。