日期:2014-05-17  浏览次数:20935 次

如何用is关键字看struct是否是Object?
建立一个新的控制台程序,下面的代码编译错误:

    struct s
    {
        int i;
    }
    if (s is Object)
    {
        Console.WriteLine("Yes");
    }

提示'ConsoleApplication.s' is a 'type' but is used like a 'variable'

问题: 这个错误是什么含义? 我如何能判断结构体定义s是否被C#编译器认为是Object呢? 我把if语句改成了if( s is object)注意用了小写object,还是不行。

顺便问一下,大写的Object(类名)和小写object(关键字)其用法上有什么根本区别么?

谢谢。

------解决方案--------------------
结构体是值类型,而is前面的是引用类型,所以报错了。
------解决方案--------------------
struct s
{
        int i;
}

  
if (typeof(s).IsValueType)
            {
                Console.WriteLine("Yes");
            }