Я ищу оператор 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);