我应该如何实现接口组合
本文关键字:接口 组合 实现 何实现 我应该 | 更新日期: 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(); }
}