代表如何序列化

时间:2016-02-04 01:27:58

标签: c# serialization delegates binaryformatter

我知道你可以像这样序列化一个委托:

[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是对象引用会发生什么?

0 个答案:

没有答案