如何在泛型函数中传递和迭代 List<T>

How to pass and iterate over List<T> in a generic function

首先,此代码的目的是在需要时重置 class 的静态变量,我知道这不是一个优雅的解决方案,但至少目前只能做到这一点。 这是代码

public static void ResetStaticObjects<T>()
{
    var type = typeof(T);
    if (type != null)
    {
        var items = type.GetProperties(BindingFlags.Public | BindingFlags.Static);
        foreach (var item in items)
        {
            item.SetValue(type, null, null);
        }
    }
}

这就是我现在的称呼

HelperClass.ResetStaticObjects<DemoClass>();

我想要的是传递一个列表而不是传递一个 class 然后在所有这些 classes

上调用相同的函数

下面是我发布的问题的答案

public static void ResetStaticObjects<Type>(IEnumerable<Type>types)where Type:System.Type
{
     foreach(var item in types)
     {         
              var props = item.GetProperties(BindingFlags.Public | BindingFlags.Static);
              foreach (var prop in props)
              {
                  prop.SetValue(item, null, null);
              }        
     }
}

我们可以这样称呼它

HelperClass.ResetStaticObjects(new[] { typeof(Class1), typeof(Class2)});