Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IDataErrorInfo减少冗余_C#_Wpf_Idataerrorinfo - Fatal编程技术网

C# 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

代码包含一些冗余数据。如何在不更改其功能的情况下删除冗余并简化代码。

我还想知道实现IDataErrorInfo的正确方法


public string Errorpublic 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
为空时-这意味着“验证所有列”。问题已经解决,感谢您的代码片段。:)直到现在我才知道这种具体的方式。是的,这个原则非常清楚,也很容易理解。