繁体   English   中英

如何在文本框类的文本属性上添加新的函数或属性

[英]How can i add a new Function or Property on textbox class's text property

我想向这样的文本框的文本属性添加一个功能/属性。 txtControl.Text.IsEmpty(); txtControl.Text.IsEmpty; 这给我带来了布尔值。

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

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

我们还能做点其他的事情吗

如果只是想像if(txtControl.text.isEmpty){}

在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,它可能看起来像这样。

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

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

为什么不创建扩展方法:

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

然后,您可以只使用txtControl.HasEmptyText()

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

String.IsNullOrEmpty( textControl.Text )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM