У меня есть класс 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);
}
}
C# не поддерживает эту функцию. – SLaks
Какова причина того, что вы не хотите иметь if-условие внутри вашего метода AddChild, проверяя, прошел ли нулевой параметр? –
Близко связано с: http://stackoverflow.com/questions/6365459/create-non-nullable-type-in-c-sharp –