[英]Determine if object is or derives from specific Type?
我正在尋找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
,但它似乎沒有工作 :
var x = "asdf";
Console.WriteLine(x.GetType().IsAssignableFrom(typeof(object)));
Console.WriteLine(x is object);
聽起來你正在尋找IsAssignableFrom
:
type.IsAssignableFrom(value.GetType())
是的,有一種更好的方法,你只需要扭轉你的問題。 而不是詢問valueType是否是類型的子類,檢查type是否可以從valueType分配。 幸運的是,有一個電話要做到這一點,請參閱IsAssignableFrom
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.