在抽象类和单例上做一些工作,我遇到了StackOverflow的许多有用资源。但是,我仍然对单身人士班的孙辈有疑问。
我的单例代码看起来像这样,取自关于如何抽象单例类的答案?,看起来像这样:
public abstract class Singleton<T> where T : Singleton<T>
{
private static readonly Lazy<T> _instance;
static Singleton()
{
_instance = new Lazy<T>(() =>
{
try
{
// Binding flags include private constructors.
var constructor = typeof(T).GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null);
return (T)constructor.Invoke(null);
}
catch (Exception exception)
{
throw new SingletonConstructorException(exception);
}
});
}
public static T Instance { get { return _instance.Value; } }
}
我的此类孩子是使用以下语法创建的:
public class SingletonChild : Singleton<SingletonChild>
{
[code]
}
现在,我的问题就在这里:一个人如何声明一个孩子类别的孩子,或一个单身人士的孙子?
我相信这是这两者之一,但是我不确定哪一个:
public class SingletonGrandChild : SingletonChild { [code] }
或者
public class SingletonGrandChild : SingletonChild<SingletonGrandChild> { [code] }
谁能提供一些有关其见解的见解?谢谢!
ITMISS
相关分类