0

迅速な方法の呼び出しは次のとおりです。

QuickMethods.IsFullyEmpty(CompanyName.Text) ||
                QuickMethods.IsFullyEmpty(UsernameText.Text) ||
                QuickMethods.IsFullyEmpty(PasswordText.Password)

実装は次のとおりです。

public static class QuickMethods
    {
        public static bool IsFullyEmpty(string s)
        {
            if (string.IsNullOrEmpty(s.Trim()))
                return true;
            return false;
        }
    }

利用できるオプションはありますか?はいの場合、どのように?

4

5 に答える 5

3

このメソッドは空白のみを含む文字列もチェックするという利点があると思いますが、「オプション」を探している場合は、.NET 4.0ではstring.IsNullOrWhiteSpace()、の呼び出しを使用して回避できますTrim()

于 2012-04-15T16:17:04.040 に答える
1

この検証ロジックをメソッド(またはプロパティ)に抽出してみませんか?

class TheViewModel
{
    public string CompanyName { get; set; }
    public string UsernameText { get; set; }
    public string PasswordText { get; set; }

    private bool Validate()
    {
        bool result = !QuickMethods.IsFullyEmpty(CompanyName) &&
                !QuickMethods.IsFullyEmpty(UsernameText) &&
                !QuickMethods.IsFullyEmpty(PasswordText);
        return result;
    }
}
于 2012-04-15T16:29:33.090 に答える
0

paramsextensionメソッドの利点を利用できます。

public static class QuickMethods
    {
        public static bool IsFullyEmpty(this string s, params string[] others)
        {

            if(s != null && s.trim().length > 0) {
               return false;
            }

            for(String o : others) {
              if(o != null && o.trim().length > 0)) {
               return false;
              }
            }

            return true;         
        }
    }
于 2012-04-15T16:27:44.713 に答える
0

これは、IsNullOrEmpty(s.Trim())を組み合わせたものよりもはるかに読みやすくなります。

改善されたバージョンは、何が悪いのかについてのフィードバックを提供します。

于 2012-04-15T16:09:55.923 に答える
0

主な利点は、IsFullyEmptyの実装をカプセル化することです。これにより、(IsFullyEmptyを呼び出すすべてのコンポーネントではなく)1つのコンポーネントでIsFullyEmptyの実装を変更するだけでよいため、設計が改善されます。あなた(または他のチームメンバー)が新しいコンポーネントを開発するとき、IsFullyEmpty()ロジックを再実装した結果として発生したバグを回避できます(つまり、チームの新しいプログラマーは最初に文字列をTrim()するのを忘れる可能性があります) )。リファクタリングの利点もあります。たとえば、これが.NET4.0に移行した.NET2.0プロジェクトの場合、IsFullyEmptyを次のようにリファクタリングできます。

public static class QuickMethods 
{ 
   public static bool IsFullyEmpty(string s) 
   { 
     return string.IsNullOrWhitespace(s);
   }
}
于 2012-04-15T16:23:50.053 に答える