📜  C#| Type.Equals()方法

📅  最后修改于: 2021-05-29 14:18:51             🧑  作者: Mango

Type.Equals()方法用于检查当前Type的基础系统类型是否与指定的Object或Type的基础系统类型相同。此方法的重载列表中有2种方法,如下所示:

  • 等于(类型)方法
  • 等于(对象)方法

Type.Equals(Type)方法

此方法用于检查当前Type的基础系统类型是否与指定Type的基础系统类型相同。

下面的程序说明了Type.Equals()方法的用法:

范例1:

// C# program to demonstrate the
// Type.Equals(Type) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing value1
        Type value1 = typeof(System.String);
  
        // Declaring and initializing value2
        Type value2 = typeof(System.Int32);
  
        // using Equals(Type) method
        bool status = value1.Equals(value2);
  
        // checking the status
        if (status)
            Console.WriteLine("{0} is equal to {1}",
                                    value1, value2);
        else
            Console.WriteLine("{0} is not equal to {1}",
                                        value1, value2);
    }
}
输出:
System.String is not equal to System.Int32

范例2:

// C# program to demonstrate the
// Type.Equals(Type) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        // calling get() method
        get(typeof(System.String), typeof(System.String));
        get(typeof(System.String), typeof(System.Int32));
        get(typeof(System.Decimal), typeof(System.Double));
    }
  
    // defining get() method
    public static void get(Type value1,
                           Type value2)
    {
  
        // using Equals(Type) method
        bool status = value1.Equals(value2);
  
        // checking the status
        if (status)
            Console.WriteLine("{0} is equal to {1}",
                                    value1, value2);
        else
            Console.WriteLine("{0} is not equal to {1}",
                                        value1, value2);
    }
}
输出:
System.String is equal to System.String
System.String is not equal to System.Int32
System.Decimal is not equal to System.Double

Type.Equals(Object)方法

此方法用于检查当前定义的Type对象的基础系统类型是否与指定Object的基础系统类型完全相同。

下面的程序说明了上述方法的用法:

范例1:

// C# program to demonstrate the
// Type.Equals(Object) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing value1
        Type value1 = typeof(int);
  
        // Declaring and initializing value2
        object value2 = typeof(int);
  
        // using Equals(Object) method
        bool status = value1.Equals(value2);
  
        // checking the status
        if (status)
            Console.WriteLine("{0} is equal to {1}",
                                    value1, value2);
        else
            Console.WriteLine("{0} is not equal to {1}",
                                        value1, value2);
    }
}
输出:
System.Int32 is equal to System.Int32

范例2:

// C# program to demonstrate the
// Type.Equals(Object) Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // calling get() method
        get(typeof(int), new Object());
        get(typeof(System.String), (object)5.5);
        get(typeof(System.String), null);
    }
  
    // defining get() method
    public static void get(Type value1,
                           object value2)
    {
  
        // using Equals(Object) method
        bool status = value1.Equals(value2);
  
        // checking the status
        if (status)
            Console.WriteLine("{0} is equal to {1}",
                                    value1, value2);
        else
            Console.WriteLine("{0} is not equal to {1}",
                                        value1, value2);
    }
}
输出:
System.Int32 is not equal to System.Object
System.String is not equal to 5.5
System.String is not equal to

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.type.equals?view=netcore-3.0