如何在C#中检查运行时对象是否属于某种类型?

car*_*ips 6 c# types object

如何在C#中检查运行时对象是否属于某种类型?

car*_*ips 7

您可以使用is关键字.例如:

using System; 

class CApp
{
    public static void Main()
    { 
        string s = "fred"; 
        long i = 10; 

        Console.WriteLine( "{0} is {1}an integer", s, (IsInteger(s) ? "" : "not ") ); 
        Console.WriteLine( "{0} is {1}an integer", i, (IsInteger(i) ? "" : "not ") ); 
    }

    static bool IsInteger( object obj )
    { 
        if( obj is int || obj is long )
            return true; 
        else 
            return false;
    }
} 
Run Code Online (Sandbox Code Playgroud)

产生输出:

fred is not an integer 
10 is an integer
Run Code Online (Sandbox Code Playgroud)

  • 我发现关键字方式未得到充分利用.阅读起来容易得多! (3认同)
  • 使用`is`通常意味着当一个人足够时使用两个演员阵容.这就是为什么它不经常使用.当然,99.99%的时间内可能难以察觉性能. (2认同)