我正在尝试像
ToString()
方法一样在控制台上打印列表,但是如何在使用列表时覆盖?例如:
public override string ToString()
{
return "[" + string.Join(',', lable) + "]";
}
我们如何重写上面的列表方法。
但是如果我想覆盖这个怎么办?
public override list<Node> list()
{
}
如果我明白你想做什么。你不能 List 是一个密封类,它不允许直接重写方法。
但是,如果您真的想这样做(上帝知道为什么,因为没有代码),您可以将其作为属性放入自定义类中。像这样:
public class CustomList<T>
{
private List<T> items = new List<T>();
public void Add(T item)
{
items.Add(item);
}
public override string ToString()
{
return "[" + string.Join(", ", items) + "]";
}
}
但是,如果您只是想覆盖该方法,因为您想控制打印。考虑一下:
public static class ListExtensions {
public static string ToCustomString<T>(this List<T> list)
{
return "[" + string.Join(", ", list) + "]";
}
}
这是一种扩展方法。它在 C# 中的工作方式就像现有方法的“Concat”(过度简化),您可以将方法添加到现有方法,而不更改基本方法。在你的情况下至少在我看来更干净......再次只有当你想控制打印输出时