有一个主类
class A { }
有一个通用单例模板:
class Singleton<T> : A where T : A {
public string Name = typeof (T).ToString();
private static T instance;
public static T Instance {
get {
return instance ?? (instance = Activator.CreateInstance<T>());
}
}
public void TestMethod() {
Console.WriteLine("My name is " + Name);
}
}
从它继承了一堆类:
class Test1 : Singleton<Test1> { }
class Test2 : Singleton<Test2> { }
class Test3 : Singleton<Test3> { }
class Test4 : Singleton<Test4> { }
问题:在主程序中怎么可能总是能够遍历所有这些并引用它们的方法/字段/属性?这样您就不必经常编写这样的包:
Test1.Instance.TestMethod();
Test2.Instance.TestMethod();
Test3.Instance.TestMethod();
Test4.Instance.TestMethod();
还是由于事实证明它是不同的类型-这不可能吗?
据我了解,使用常用方法制作接口的方法之一
单例类会是这样的
在主程序中,将它添加到一个列表中,并且由于通用接口,您已经可以操作所有实例: