代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

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

  •  1
  • Shantanu Gupta  · 技术社区  · 15 年前

    我想在这样的文本框的文本属性中再添加一个函数/属性。 txtControl.Text.IsEmpty(); txtControl.Text.IsEmpty; 它返回布尔值。

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

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

    我们能换个方式吗

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

    5 回复  |  直到 15 年前
        1
  •  7
  •   this. __curious_geek    15 年前

    在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();
    

    如果您已经引用了扩展方法的命名空间,这将适用于应用程序中的所有文本框实例。如果有自定义文本框,请将类型文本框替换为自定义文本框的类型。如果你有自己的文本框,可能会像这样。

    namespace ExtensionMethods
    {
        public static class MyExtensions
        {
            public static bool IsTextEmpty(this MyTextbox txtBox)
            {
                return string.IsNullOrEmpty(txtBox.Text);
            }
        }   
    }
    
        2
  •  2
  •   David M    15 年前

    为什么不创建扩展方法:

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

    那你就可以用 txtControl.HasEmptyText() .

        3
  •  2
  •   edosoft    15 年前

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

    选项2是在文本框上创建额外属性:

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

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

        4
  •  0
  •   Oded    15 年前

    这个 Text 属性是一个字符串,它已经具有 IsNullOrEmpty 对它起作用。

        5
  •  0
  •   kurige    15 年前

    String.IsNullOrEmpty( textControl.Text )