簡體   English   中英

確定對象是否來自特定類型?

[英]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

出口工廠

[英]ExportFactory<T,TMetaData - Get type of class which derives from T

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM