C# 中判断变量类型的两种方法
1. GetType() 方法
-
GetType()
方法用于获取当前实例的准确运行时类型。 -
该方法返回一个
Type
对象,该对象包含有关该类型的信息,例如类型名称、成员、属性等。
示例:
public class Person
{
public string Name { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
// 创建 Person 对象
Person person = new Person();
// 使用 GetType() 方法获取对象的类型
Type type = person.GetType();
// 输出类型名称
Console.WriteLine(type.Name); // 输出:Person
}
}
2. is 关键字
is
关键字用于判断对象变量是否是指定的类型。- 该运算符返回一个
bool
值,指示对象变量是否与指定的类型兼容。
示例:
public class Animal
{
public virtual void Speak()
{
Console.WriteLine("动物叫声");
}
}
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("汪汪");
}
}
public class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("喵喵");
}
}
public class Program
{
public static void Main(string[] args)
{
// 创建 Dog 对象
Dog dog = new Dog();
// 使用 is 关键字判断对象是否为 Dog 类型
bool isDog = dog is Dog;
// 如果对象是 Dog 类型,则输出“是 Dog 类型”
if (isDog)
{
Console.WriteLine("是 Dog 类型");
}
// 使用 is 关键字判断对象是否为 Animal 类型
bool isAnimal = dog is Animal;
// 如果对象是 Animal 类型,则输出“是 Animal 类型”
if (isAnimal)
{
Console.WriteLine("是 Animal 类型");
}
}
}
总结:
GetType()
方法用于获取对象的准确运行时类型。is
关键字用于判断对象变量是否是指定的类型。
此外,还有一些其他方法可以判断变量的类型,例如:
- 使用
typeof()
运算符获取类型的 Type 对象 - 使用
as
运算符将对象转换为指定的类型 - 使用
switch
语句根据对象的类型执行不同的操作
建议:
- 在需要获取对象的准确运行时类型时,使用
GetType()
方法。 - 在需要判断对象变量是否是指定的类型时,使用
is
关键字。