方法是否也与.NET中的数据成员一起序列化?

Lis*_*isa 10 c# dll serialization

标题是显而易见的,我需要知道,如果方法是用C#对象实例一起序列化,我知道他们不会在Java中,但我有点新的C#.如果他们不这样做,在将其发送到另一台PC时,是否必须将带有字节流(序列化对象)的原始类放在一个包中?原始类可以像DLL文件一样吗?

Ree*_*sey 16

不会.类型信息会与州一起序列化.为了反序列化数据,您的程序将需要访问包含类型(包括方法)的程序集.


dan*_*n04 10

如果你已经学过C,可能会更容易理解

class C
{
    private int _m;
    private int _n;

    int Meth(int p)
    {
       return _m + _n + p;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上是语法糖

typedef struct
{
   int _m;
   int _n;
   // NO function pointers necessary
} C;

void C_Meth(C* obj, int p)
{
   return obj->_m + obj->_n + p;
}
Run Code Online (Sandbox Code Playgroud)

这实际上是在面向对象语言中实现非虚方法的方式.这里重要的是方法不是实例数据的一部分.