您好我想创建继承自Set
List<int>
class Set : List<int>
{
public void Add(tmp)
public void Pop(tmp)
public print()
}
但是我有问题怎么看看consturctor可以有人给我的例子? 我知道应该怎么看方法(我会自己写的)。
答案 0 :(得分:1)
List<T>
有一个无参数构造函数,所以你不需要 在你的构造函数中做任何事情。
如果你不打算添加带参数的构造函数,你甚至可以完全省略它,当你创建new Set()
时它会自动在基类上运行空构造函数:
class Set : List<int>
{
public new void Add(int tmp)
{
// custom logic here
base.Add(tmp);
}
}
Set myset = new Set();
myset.Add(43);
请注意,您选择继承来自List<int>
,这意味着List<int>
定义的所有成员也可以在Set
课程中使用。另一种解决方案是 wrap 列表:
class Set : IEnumerable<int>
{
private readonly List<int> wrappedCollection = new List<int>();
public void Add(int value)
{
wrappedCollection.Add(value);
}
...
}
通过这种方式,您可以选择要实现的接口,并添加print()
方法等其他功能。
答案 1 :(得分:0)
在类类型ctor
中,然后按Tab键两次,这将创建默认构造函数:
public Set()
{
}
使用Set作为类名可能会让人感到困惑,因为'set'关键字用于属性
答案 2 :(得分:0)
另一种可能性是使用扩展方法,因为在我看来,您只是尝试通过方法向List添加功能。这是一个例子:
public static class ListExtensions
{
/// <summary>
/// Adds an empty Dropdown Option at the start of the list
/// If the list is null then null will be returned and nothing happens
/// </summary>
/// <param name="list">
/// List of dropdown options
/// </param>
/// <returns >The list of dropdown options with the prepended empty option</returns>
public static IList<SelectListItem> AddEmpty(this IList<SelectListItem> list)
{
list?.Insert(0, new SelectListItem {Value = string.Empty, Text = Resources.Labels.ChooseListItem});
return list;
}
}