我有一个node
基本上由一个parent
属性和一个孩子列表组成的类。有一种AddChild
方法不应该接收 null 作为参数。用户不得添加空子。
但该parent
属性必须允许空值(根节点的父节点为空)。
问题是“如何禁止用户在 ? 处添加空子项compile-time
?”。我知道我可以添加一个NullArgumentException
,但这不是我需要的。
另一种方法是创建一个不接受空项目的列表(编译时)。
代码:
class Node
{
public Node Parent { get; set; }
private List<Node> Children = new List<Node>();
public void AddChild<Maybe a generics solution?>(Node???? Child) where ????
{
//I don't want to add (if Child == null) Throw new ArgumentNullException();
Children.Add(Child);
}
}