我想尝试这样的事情:
public interface ICar
{
public void Update(/*something here*/);
}
然后是两个班级:
public class Peugeot : ICar
{
public void Update(Peugeot car)
{
}
}
public class Volvo : ICar
{
public void Update(Volvo car)
{
}
}
我怎样才能做到这一点?
答案 0 :(得分:2)
您可以ICar
通用:
public interface ICar<T> where T : ICar<T>
{
public void Update<T>(T car);
}
然后相应地实施Update
方法:
public class Peugeot : ICar<Peugeot>
{
public void Update(Peugeot car)
{
}
}
public class Volvo : ICar<Volvo>
{
public void Update(Volvo car)
{
}
}
答案 1 :(得分:0)
您可以(至少有点)通过制作显式接口实现,然后提供正确输入的公共Update
方法来实现此目的:
public interface ICar
{
void Update(ICar car);
}
public class Peugeot : ICar
{
public void Update(Peugeot car)
{
Update(car);
}
void ICar.Update(ICar car)
{
// do some updating
}
}
public class Volvo : ICar
{
public void Update(Volvo car)
{
Update(car);
}
void ICar.Update(ICar car)
{
// do some updating
}
}