我知道你可以像这样序列化一个委托:
[Serializable]
public class Foo
{
public Func<int,int> Del;
}
...
public static void WriteFoo(Foo foo)
{
BinaryFormatter formatter = new BinaryFormatter();
using (var stream = new FileStream("test.bin", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, foo);
}
}
但是该函数包含的对象会发生什么,例如,在这种情况下:
int D = 10;
Func<int, int> del = x => x * x - D;
Foo f = new Foo();
f.Del = del;
WriteFoo(f);
D
会怎样?
是否会保留D
的值?
如果D
是对象引用会发生什么?