如何在textbox类的text属性上添加新的Function或Property

时间:2010-04-23 09:59:11

标签: c# .net

我想再添加一个函数/属性到这样的文本框的文本属性。 txtControl.Text.IsEmpty();txtControl.Text.IsEmpty; 这让我回归bool值。

我不想每次比较空字符串。

即。 if(txtControl.text==string.Empty) {} else {}

我们还可以采取其他方式吗

如果只想这样做的话 if(txtControl.text.isEmpty){}

5 个答案:

答案 0 :(得分:7)

在c#3.0中你可以做这样的事情......

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static bool IsTextEmpty(this Textbox txtBox)
        {
            return string.IsNullOrEmpty(txtBox.Text);
        }
    }   
}

然后你可以像这样使用它。

bool isEmpty = yourTxtBox.IsTextEmpty();

这适用于整个应用程序中的所有文本框实例,前提是您已经引用了扩展方法的命名空间。如果您有自定义文本框,则将TextBox类型替换为自定义文本框的类型。如果您有自己的TextBox,它可能看起来像这样。

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static bool IsTextEmpty(this MyTextbox txtBox)
        {
            return string.IsNullOrEmpty(txtBox.Text);
        }
    }   
}

答案 1 :(得分:2)

text属性是一个字符串。字符串类包含静态方法IsNullOrEmpty() 所以你可以使用if (String.IsNullOrEmpty(txtControl.Text)) {} else {}

Option2是在文本框上创建一个额外的属性:

public class MyTextbox : Textbox
{
  public bool IsEmpty
  { 
    get
    { 
      return String.IsNullOrEmpty(this.Text);
    }
  }
}

您可以像这样使用它:if (txtMyTextbox.IsEmpty) {} else {}

答案 2 :(得分:2)

为什么不创建扩展方法:

public static bool HasEmptyText(this TextBox textBox)
{
    return string.IsNullOrEmpty(textBox.text);
}

然后你可以使用txtControl.HasEmptyText()

答案 3 :(得分:0)

Text属性是一个字符串,其上已经有IsNullOrEmpty个函数。

答案 4 :(得分:0)

String.IsNullOrEmpty( textControl.Text )