将方法添加到基类 c#
本文关键字:基类 添加 方法 | 更新日期: 2023-09-27 18:31:41
是否可以将方法添加到像List这样的基类中?如果它具有 MyClass 类型,我真的需要将方法添加到泛型列表类中。喜欢这个: List<MyClass>.FindCoolStuff()
或List<MyClass>.SetValueByName()
谢谢
否,但您可以使用扩展方法。
public static class ListExtensions
{
public static IEnumerable<T> DoCoolStuff<T>(this List<T> collection)
{
// Do cool stuff
}
}
来自 MSDN:在代码中,使用实例方法语法调用扩展方法。
var awesomeList = new List<string>();
var awesomestuff = awesomeList.DoCoolStuff();
虽然不能向类添加方法,但可以使用扩展方法(http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx)给人一种这样做的错觉。请注意,这些方法只会出现在该类或接口的实例上,而不是类型(如静态方法)上。
如果你想限制它只适用于MyClass,你可以使用where关键字;所以使用上面的例子
public static class ListExtensions
{
public static IEnumerable<T> DoCoolStuff<T>(this List<T> collection) where T : MyClass
{
// Do cool stuff
}
}