2
我在尋找is
運算符,但類型操作數(右)是動態的。確定對象是否或來自特定類型?
public static bool Is(this object value, Type type)
{
if (type == null) throw new ArgumentNullException(type, "type");
if (value == null) return false;
var valueType = value.GetType();
return valueType == type || valueType.IsSubclassOf(type)
|| valueType implements interface
}
有沒有更簡單的方法呢?
我試着用IsAssignableFrom
,但它doesn't seem to be working:
var x = "asdf";
Console.WriteLine(x.GetType().IsAssignableFrom(typeof(object)));
Console.WriteLine(x is object);
關於您的更新:您使用它錯誤,應該是'typeof(object).IsAssignableFrom(x.GetType())' – BrokenGlass 2012-03-25 01:46:10
@BrokenGlass,oops,抱歉。 – Shimmy 2012-03-25 01:47:00
@BrokenGlass,請投票結束,而不是downvoting。謝謝 – Shimmy 2012-03-25 01:49:20