gpt4 book ai didi

c# - 不使用 [Serializable] 时 [NonSerialized] 的好处

转载 作者:可可西里 更新时间:2023-11-01 08:32:19 29 4
gpt4 key购买 nike

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

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] 是否还有一些额外的好处?

最佳答案

Or is there some additional benefit to adding [NonSerialized] even when the class itself is not Serializable?

该类不是密封的,因此另一个类可以从该对象继承。该类可以标记为可序列化,然后 NotSerializable 属性将发挥作用。 (尽管正如指出的那样不适用于私有(private)成员)。

请记住,您也可以通过反射检查属性。运行时可能不会使用它来检查应该和不应该序列化的内容,它可以用作程序中处理某种自定义序列化的其他内容的标记(我并不是说这是一个好主意至少)。

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

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com