【问题标题】:IDataErrorInfo reduce redundancyIDataErrorInfo 减少冗余
【发布时间】:2017-04-03 09:24:34
【问题描述】:

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

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

public string Errorpublic string this[string columnName] 这两个属性都可以检查空值,我不想同时检查空值。

【问题讨论】:

  • 您是如何识别出有冗余代码,却不知道代码是什么的?这是作业题吗?
  • 不,这不是作业问题。我只是不想要冗余代码..我可以从我的实现中看出,但我不知道这怎么可能。 public string Errorpublic string this[string columnName] 代码相同。
  • 请在您的问题中添加更多详细信息,说明您认为哪些部分是多余的。谢谢。
  • 感谢@PeterBailey 指出我。感谢您的帮助

标签: c# wpf idataerrorinfo


【解决方案1】:

一般来说,最好使用验证属性,但如果谈到您的具体示例 - 您可以像这样删除冗余:

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;
    }
}

【讨论】:

  • 谢谢 @Evk 我要添加自己的逻辑,看看是否可行。
  • 我希望原理很清楚:当columnNamethis 索引器中为空时 - 这意味着“验证所有列”。
  • 问题已解决,感谢您的 sn-p。 :) 直到现在我才知道这种具体的方式。是的,原理非常清晰易懂。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 2017-12-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
相关资源
最近更新 更多