我在这里找不到我的问题,所以我问,希望这是一个新问题。
假设我有一个名为 Base 的基类,并且 Base 中有一个名为 Reset 的函数,我将定义< strong> Base 类,但是每次我想重置所有数组项时,都必须迭代所有元素 Reset 函数。
我的问题是:有没有办法将 Base 类派生为 Child 类,该类由 Base 数组组成,并创建一个< Child 中的strong> ResetAll 函数可以迭代数组的所有 Reset 函数?
或者创建一个 ResetAll 函数将触发所有 Reset 函数?
答案 0 :(得分:3)
您不需要创建派生类。基本上,您不想遍历数组中的所有基础对象,并在想重设所有对象时调用它们的Reset方法。
您所需要做的就是扩展基础数组的方法。
了解扩展方法对于您的情况,您可以按以下方法创建扩展方法。
public static class BaseExtensions
{
public static void ResetAll(this Base[] baseArray)
{
foreach(var baseItem in baseArray)
{
baseItem.Reset();
}
}
}
您可以按以下方式使用上述方法。
//Let say you have a an array of base as following.
Base[] items = new Base[2];
items[0] = new Base();
items[1] = new Base();
//You can reset them as following.
items.ResetAll(); //This is the ResetAll extension method created above.
这应该可以帮助您解决问题。