有没有办法将类添加到类中,但允许它仍然由基类继承?
我有以下
public class ListWithRandomize<T> : List<T> {
public void Randomize() { // Randomize function}
}
我将要有一堆需要随机化的List对象。是否可以将List对象设置为ListFithRandomize对象?我想我可以让randomize函数保持静态并让它采用List&lt;&gt;作为一个参数,但我想把它作为一个类的方法..如果可能的话。
感谢。
答案 0 :(得分:7)
当您无权访问源时,extension method是唯一可以向类添加方法的方法。
请记住,扩展方法不是类型的实际成员 - 它只是在源代码中看起来像。它不能访问私有或内部变量 - 至少,不是没有反射,但你可能不想这样做。
我想我可以让randomize函数保持静态并让它采用List&lt;&gt;作为一个参数,但我想把它作为一个类的方法..如果可能的话。
在这种情况下,扩展方法可能是您最好的选择。
答案 1 :(得分:2)
听起来像是想要一种扩展方法,例如
public static void Randomize(this List<T> list)
{
// ...
}
这是一个静态方法,它似乎是List<T>
上的实例方法。
答案 2 :(得分:2)
我认为C# 3.0 Extension method会做你想在这里完成的事情。
public static class MyListExtension {
public static void Randomize(this List<T> list){...}
}
答案 3 :(得分:1)
extension方法怎么样?
public static void Randomize<T>(This IList<T> list)
{
//randomize
}
答案 4 :(得分:1)
扩展方法。您可以将Random方法添加到List。这段代码写在这里,所以它可能无法编译。它应该给你一个开始。
public static class Extenstions
{
public static List<T> Randomize<T>(this List<T> list)
{
// randomize into new list here
}
}