我已根据使用此页面实现了单例System.Lazy<T>
。
我想知道,当System.Lazy<T>
构造函数的访问修饰符为时,如何从技术上访问的构造T
函数private
。
在Lazy<T>
与一个匿名方法实例如下:
new Lazy<Singleton>(() => new Singleton());
匿名方法只是位于定义它们的类中的私有方法。由于这是类中的方法,因此它被允许访问该类的任何其他私有成员,包括私有构造函数。
C#编译器生成的代码与以下代码非常相似:
Func<Singleton> factory = this.__compiler_generated_method;
new Lazy<Singleton>(factory);
private static Singleton __compiler_generated_method()
{
return new Singleton();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句