C# 如何将MemorySteam设置为当前对象?

C# 如何将MemorySteam设置为当前对象?,c#,memorystream,C#,Memorystream,我正在编写一个C#应用程序,对如何将MemoryStream设置为当前对象有疑问 我想对一个对象进行一个函数调用,它复制对象的数据而不返回对象,并选择使用序列化 下面是我要复制的对象中的函数: public void CopyTest() { MemoryStream stream = SerializeService.SerializeToStream(this); this = SerializeService.DeserializeFromStream(stream); }

我正在编写一个C#应用程序,对如何将
MemoryStream
设置为当前对象有疑问

我想对一个对象进行一个函数调用,它复制对象的数据而不返回对象,并选择使用序列化

下面是我要复制的对象中的函数:

public void CopyTest()
{
    MemoryStream stream = SerializeService.SerializeToStream(this);
    this = SerializeService.DeserializeFromStream(stream);
}
这是我的
SerializeToStream
函数:

public static MemoryStream SerializeToStream(object o)
{
    MemoryStream stream = new MemoryStream();
    IFormatter formatter = new BinaryFormatter();
    formatter.Serialize(stream, o);
    return stream;
}
以下是我得到的错误:

无法分配给“
”,因为它是只读的


您不能重新分配此,它是当前实例。您可以使您的方法返回一个副本。你可以用它做任何你想做的事。 我认为它需要看起来更像:

public bool CopyTest()
{
   return this == Copy();
}

public object Copy() 
{
   return SerializeService.DeserializeFromStream(SerializeService.SerializeToStream(this));
}

CopyTest
应返回一个
对象
。无法分配“this”,因为它仅获取当前实例<代码>返回SerializeService.DeserializeFromStream(流)您真正想要实现的目标是什么?您当然不能为类重新分配
,但我们没有您尝试这样做的背景。我已经编辑了我的问题。要返回对象的类型,而不是“对象”,除了使用泛型,如何实现此目的?据我所知,您不能。