public virtual bool IsAssignableFrom(IType other)
{
if (other == this || other == Null.Default)
{
return true;
}
if (other.IsArray)
{
IArrayType otherArray = (IArrayType)other;
if (otherArray.GetArrayRank() != _rank)
{
return false;
}
IType otherEntityType = otherArray.GetElementType();
if (_elementType.IsValueType || otherEntityType.IsValueType)
{
return _elementType == otherEntityType;
}
return _elementType.IsAssignableFrom(otherEntityType);
}
return false;
}