我正在查看我正在处理的项目中的一些现有代码,我发现了一个实现为的类:

public class ThingOne
{
    private int A;

    private int B;

    [NonSerialized]
    private System.Timers.Timer timer1;
}

它不应该看起来更像这样吗?
[Serializable]
public class ThingOne
{
    private int A;

    private int B;

    [NonSerialized]
    private System.Timers.Timer timer1;
}

或者即使类本身不是可序列化的,添加 [NonSerialized] 是否还有其他好处?

最佳答案

当不使用 Serializable 时,NonSerialized 将不起作用。默认情况下,类及其成员是不可序列化的。

当类没有被序列化时,声明一些 NonSerialized 的唯一好处是在类被一个 Serialized 对象继承的情况下,然后被继承的成员将是不可序列化的。

MSDN :

关于c# - 不使用 [Serializable] 时 [NonSerialized] 的好处,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3735926/

10-13 06:07