C#判断数据类型的简单示例代码


在C#中,判断数据类型通常不是直接通过某种内置函数完成的,因为C#是静态类型语言,在编译时就已经确定了变量的类型。但是,如果你需要在运行时判断一个对象的类型,可以使用`GetType()`方法或者`is`关键字,以及`as`操作符(虽然`as`主要用于类型转换,但也可以间接用于类型判断)。

下面是一个使用`GetType()`方法和`is`关键字的简单示例代码:


using System;

class Program
{
    static void Main(string[] args)
    {
        int intValue = 10;
        string stringValue = "Hello";

        // 使用GetType()方法
        Console.WriteLine(intValue.GetType().Name); // 输出: Int32
        Console.WriteLine(stringValue.GetType().Name); // 输出: String

        // 使用is关键字
        if (intValue is int)
        {
            Console.WriteLine("intValue is an integer.");
        }

        if (stringValue is string)
        {
            Console.WriteLine("stringValue is a string.");
        }

        // 注意:对于null值的类型判断,is关键字比GetType()更安全
        object nullValue = null;
        if (nullValue is string)
        {
            Console.WriteLine("nullValue is a string."); // 这行不会执行
        }
        else
        {
            Console.WriteLine("nullValue is not a string or it's null."); // 这行会执行
        }

        // 尝试使用GetType()判断null值会抛出异常
        // Console.WriteLine(nullValue.GetType().Name); // 这会抛出NullReferenceException
    }
}

在这个示例中,`GetType().Name`用于获取并打印出变量的类型名称。而`is`关键字则用于在运行时检查一个对象是否兼容于给定的类型。对于`null`值的类型判断,使用`is`关键字是更安全的做法,因为直接调用`GetType()`方法会导致`NullReferenceException`异常。