C# 如何避免序列化浮点数组属性
我已经为CustomDashPattern使用了一个浮点数组属性,并像下面的代码一样使用它C# 如何避免序列化浮点数组属性,c#,windows,winforms,json.net,C#,Windows,Winforms,Json.net,我已经为CustomDashPattern使用了一个浮点数组属性,并像下面的代码一样使用它 float[] customDashPattern = { 5, 3, 5, 3 }; public float[] CustomDashPattern { get { return customDashPattern; } set { customDashPattern = value; } } public bool Should
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 };
}
但是属性值仍然在设计器中序列化,即使其默认值没有更改
即使在模式为默认值时,“应序列化”的逻辑也会返回true
谁能告诉我我做错了什么吗?关于
=代码>运算符比较对象引用。要比较数组内容,请使用可枚举的.SequenceEqual()
:
它总是返回真的。数组不重载运算符=()这样就得到了简单的引用比较。这永远不会匹配。返修!SequenceEqual(新的float[]{5,3,5,3})@谢谢你的解决方案
public bool ShouldSerializeCustomDashPattern()
{
return !Enumerable.SequenceEqual(customDashPattern, new float[] { 5, 3, 5, 3 })
}