public bool Equals(GenericArgumentNode other) { return(other != null && ArgumentType == other.ArgumentType && Parent == other.Parent && CompareUtil.ListEquals(children, other.children)); }
private StringBuilder AppendChild(StringBuilder builder, GenericArgumentNode node, bool fullname, byte depth) { builder.AppendLine().AppendIndent(depth, " "); AppendNode(builder, node, fullname); foreach (var child in node.Children) { AppendChild(builder, child, fullname, (byte)(depth + 1)); } return(builder); }
public GenericArgumentNode(Type argumentType, GenericArgumentNode parent = null) { Ensure.Argument.NotNull(argumentType, "argumentType"); ArgumentType = argumentType; Parent = parent; if (argumentType.IsGenericType) { children = ArgumentType.GetGenericArguments() .Select(a => new GenericArgumentNode(a, this)) .ToArray(); } }
private static StringBuilder AppendNode(StringBuilder builder, GenericArgumentNode node, bool fullname) { return(builder.Append(node.GetType().GetName(fullname)) .AppendFormat("({0})", node.ArgumentType.GetName(fullname))); }