public virtual bool IsAssignableFrom(IType other) { if (other == null) { return false; } if (other == this || other.IsSubclassOf(this) || (other == Null.Default && !IsValueType)) { return true; } return false; }