我正在将一些 Java 代码转换为 C#。 Java 代码看起来像
public abstract class myClass implements Cloneable, Serializable {
//fields, constructors etc here.
//...
//...
public abstract Object clone(); //an implementation of this is eventually provided
in a subclass
//...
//...
}
Cloneable 接口(interface)中的 clone() 已实现,而 Serializable 没有方法,因此无需从那里实现任何内容。
在 C# 中,我的类看起来像这样:
public class myClass : ISerializable, ICloneable{
//fields, constructors etc here.
//...
//...
public abstract Object Clone ();
//...
//...
如您所见,ICloneable 的方法已经实现,但是在C# 中,与Java 的Serializable 不同,ISerializable 接口(interface)确实有一个方法,所以我需要实现它。问题是我不确定如何,因为我是从 Java 翻译这段代码,不需要在那里完成。
有人可以告诉我如何在 C# 中执行此操作吗?
我知道缺少的方法是 GetObjectData,但我不知道如何实现它,传递给它什么,或者里面应该有什么,因为这在 Java 等价物中完全缺失......
最佳答案
我假设您已经使用 Java 中的 Serializable
接口(interface)通知您的类可以被序列化。在 .Net 中,您应该为此使用 [Serializable]
属性,ISerializable
接口(interface)的含义略有不同。
所以在 .Net 中你的代码应该是这样的:
[Serializable]
public class myClass : ICloneable
{
//fields, constructors etc here.
//...
//...
public abstract Object Clone ();
//...
//...
}
关于c# - Java 的 Serializable 和 C# 的 ISerializable 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21505180/