如何避免序列化浮点数组属性

我已经使用了CustomDashPattern的float数组属性,并像下面的代码一样使用它,

float[] customDashPattern = { 5, 3, 5, 3 }; public float[] CustomDashPattern { get { return customDashPattern; } set { customDashPattern = value; } } public bool ShouldSerializeCustomDashPattern() { return customDashPattern != new float[] { 5, 3, 5, 3 }; } 

但是即使默认值没有改变,属性值仍然会在devise器中被序列化。

即使pattern是默认值,应该序列化的逻辑也会返回true。

请问任何人,请让我知道,我做错了什么?

对于数组, !=运算符比较对象引用。 比较数组内容使用Enumerable.SequenceEqual()

 public bool ShouldSerializeCustomDashPattern() { return !Enumerable.SequenceEqual(customDashPattern, new float[] { 5, 3, 5, 3 }) }