代码之家  ›  专栏  ›  技术社区  ›  DRapp

分配给不同子类类型的通用属性和方法

  •  0
  • DRapp  · 技术社区  · 17 年前

    我不想将完全相同的代码复制到每个类,但不确定如何实现。。。例:我希望这个常用的东西适用于按钮、文本框、复选框、列表框等用户控件。

    6 回复  |  直到 17 年前
        1
  •  1
  •   BobbyShaftoe    17 年前

    在这种情况下,我通常使用抽象类。创建基本抽象类,然后从新控件继承它。

        2
  •  0
  •   cwap    17 年前

    我本人来自一个允许多重继承并可扩展使用的C++背景,因此我经常遇到与您相同的问题。 第三步是使用组合实现它们。。。是的,我也讨厌这个,但是如果你想使用.NET(或Java或…),就没有办法了

    祝你好运

        3
  •  0
  •   Welbog    17 年前

    interface properties

    public interface ISampleInterface
    {
        // Property declaration:
        string Name
        {
            get;
            set;
        }
    }
    
        4
  •  0
  •   Razzie    17 年前

    您可以在接口中声明属性,如下所示:

    public interface IMyInterface
    {
       string Name { get; set; }
       int Age { get; set; }
    }
    

    然而,在这种情况下,听起来抽象类会更好。

        5
  •  0
  •   JaredPar    17 年前

    interface IFoo {
      string Name { get; set; } 
      string Age { get; } // Read Only
    }
    

    如果所有子类之间的行为完全相同,那么我通常选择抽象类。或者经常是一个组合。即定义一个接口和实现该接口的基本实现。

    class Foo : IFoo { 
      private string _name;
      public Name { get { return _name; } set { _name = value; } }
      public Age { get { return 42; } }
    }
    

    这使您能够灵活地快速实现,可以选择使用接口来处理由于某些原因无法从Foo派生的类。

        6
  •  0
  •   Rich    17 年前