C# IDataErrorInfo减少冗余
代码包含一些冗余数据。如何在不更改其功能的情况下删除冗余并简化代码。 我还想知道实现IDataErrorInfo的正确方法C# IDataErrorInfo减少冗余,c#,wpf,idataerrorinfo,C#,Wpf,Idataerrorinfo,代码包含一些冗余数据。如何在不更改其功能的情况下删除冗余并简化代码。 我还想知道实现IDataErrorInfo的正确方法 public string Error和public string此[string columnName]这两个属性都用于检查空值。我不希望这两个属性都检查空值。一般来说,最好使用验证属性,但如果谈论您的具体示例,您可以这样删除冗余: public string Error { get { return this[null]; } } public string
public string Error和public string此[string columnName]这两个属性都用于检查空值。我不希望这两个属性都检查空值。一般来说,最好使用验证属性,但如果谈论您的具体示例,您可以这样删除冗余:
public string Error
{
get { return this[null]; }
}
public string this[string columnName]
{
get
{
if (columnName == null || columnName == "UnitCode") {
if (String.IsNullOrEmpty(UnitCode)) {
return "Unit Code cannot be empty";
}
}
if (columnName == null || columnName == "UnitName") {
if (string.IsNullOrEmpty(UnitName)) {
return "Unit Name cannot be Empty";
}
}
return null;
}
}
一般来说,最好使用验证属性进行验证,但如果谈到您的具体示例,您可以这样删除冗余:
public string Error
{
get { return this[null]; }
}
public string this[string columnName]
{
get
{
if (columnName == null || columnName == "UnitCode") {
if (String.IsNullOrEmpty(UnitCode)) {
return "Unit Code cannot be empty";
}
}
if (columnName == null || columnName == "UnitName") {
if (string.IsNullOrEmpty(UnitName)) {
return "Unit Name cannot be Empty";
}
}
return null;
}
}
您如何确定存在冗余代码,但却不知道代码是什么?这是作业问题吗?不,不是作业问题。我只是不想要多余的代码。。我可以从我的实现中看出,但我不知道这是怎么可能的。公共字符串错误和公共字符串此[string columnName]具有相同的代码。请在问题中添加更多详细信息,说明您认为哪些部分是多余的。谢谢。谢谢你在彼得贝利给我指出来。。感谢您的帮助您如何确定存在冗余代码,但您不知道代码是什么?这是作业问题吗?不,不是作业问题。我只是不想要多余的代码。。我可以从我的实现中看出,但我不知道这是怎么可能的。公共字符串错误和公共字符串此[string columnName]具有相同的代码。请在问题中添加更多详细信息,说明您认为哪些部分是多余的。谢谢。谢谢你在彼得贝利给我指出来。。感谢您的帮助谢谢@Evk我将添加我自己的逻辑,看看是否有效。我希望原则是明确的:当
此
索引器中的columnName
为空时-这意味着“验证所有列”。问题已解决,感谢您提供的代码片段。:)直到现在我才知道这种具体的方式。是的原则非常清楚和理解。谢谢@Evk我将添加我自己的逻辑,看看是否有效。我希望原则很清楚:当这个索引器中columnName
为空时-这意味着“验证所有列”。问题已经解决,感谢您的代码片段。:)直到现在我才知道这种具体的方式。是的,这个原则非常清楚,也很容易理解。