Type.Equals()方法用于检查当前Type的基础系统类型是否与指定的Object或Type的基础系统类型相同。此方法的重载列表中有2种方法,如下所示:
- 等于(类型)方法
- 等于(对象)方法
Type.Equals(Type)方法
此方法用于检查当前Type的基础系统类型是否与指定Type的基础系统类型相同。
Syntax: public virtual bool Equals (Type o);
Here, it takes the object whose underlying system type is to be compared with the underlying system type of the current Type.
Return Value: This method returns true if the underlying system type of o is the same as the underlying system type of the current Type otherwise, it returns false.
下面的程序说明了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的基础系统类型完全相同。
Syntax: public override bool Equals (object obj);
Here, it takes the object whose underlying system type is to be compared with the underlying system type of the current Type. For the comparison to succeed, obj must be able to be cast or converted to an object of type Type.
Return Value: This method returns true if the underlying system type of obj is the same as the underlying system type of the current Type otherwise, it returns false. This method also returns false if obj is null or cannot be cast or converted to a 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