【发布时间】:2014-12-10 17:26:52
【问题描述】:
我了解在 C# 中,闭包如何允许访问与匿名方法在同一范围内声明的私有变量,以便在不同范围内调用该方法时这些变量可用。
但是私有构造函数呢?此代码有效:
class Program
{
static void Main(string[] args)
{
var someClassFactory = SomeClass.GetFactoryMethod();
var someclass = someClassFactory();
}
}
class SomeClass
{
private SomeClass()
{
}
public static Func<SomeClass> GetFactoryMethod()
{
return () => new SomeClass();
}
}
当编译器为闭包创建一个类时,它如何引用私有构造函数,或者在客户端代码调用匿名方法时允许它被访问?
【问题讨论】:
-
我认为这与关闭无关。它只是一个方法调用。
-
@CriketerOnSO 问题是关于如何将闭包转换为方法调用。