我应该如何实现接口组合

本文关键字:接口 组合 实现 何实现 我应该 | 更新日期: 2023-09-27 18:09:57

我有这样的情况:

public interface IHasValue<T>
    {
        T Value { get; set; }
    }
public interface IClickable
    {
        void SubscribeOnClick(EventHandler click);
    }
public interface ILoginView : IView
    {
        IHasValue<string> Username { get; }
        IHasValue<string> Password { get; }
        IClickable Login { get; }
        IClickable Cancel { get; }
    }
public partial class LoginVIew : Form, ILoginView
    {
        public LoginVIew()
        {
            InitializeComponent();
        }
        #region ILoginView Members
        public IHasValue<string> Username
        {
            get { ?? }
        }
        public IHasValue<string> Password
        {
            get { ?? }
        }
        public IClickable Login
        {
            get { ?? }
        }
        public IClickable Cancel
        {
            get { ?? }
        }
        #endregion
    }

我应该如何实现这个?我不知道。

我应该如何实现接口组合

为了能够创建ILoginView的实现,您需要实现IHasValue<T>IClickable(因为您需要能够在ILoginView成员中创建实现这些接口的对象实例)。

 public class StringValue : IHasValue<string>
 {
     public string Value { get; set; }
 }
 public interface LoginClickable : IClickable
 {
     public void SubscribeOnClick(EventHandler click)
     {
          // do something to login
     }
 } 
 public interface CancelClickable : IClickable
 {
     public void SubscribeOnClick(EventHandler click)
     {
          // do something to cancel
     }
 } 

    public IHasValue<string> Username
    {
        get { return new StringValue { Value = "Username" }; }
    }
    public IHasValue<string> Password
    {
         get { return new StringValue { Value = "Password" }; }
    }
    public IClickable Login
    {
        get { return new LoginClickable(); }
    }
    public IClickable Cancel
    {
        get { return new CancelClickable(); }
    }