我已经使用了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 }) }