我的应用程序使用连接到PC的测量仪器.我希望能够使用来自不同供应商的类似仪器.
所以我定义了一个接口:
interface IMeasurementInterface { void Initialize(); void Close(); }
到现在为止还挺好.在测量之前,我需要设置仪器,这意味着不同仪器的参数非常不同.所以我想定义一个方法,它接受可以有不同结构的参数:
interface IMeasurementInterface { void Initialize(); void Close(); void Setup(object Parameters); }
然后我会将对象投射到我需要的任何东西上.这是要走的路吗?
你可能最好想出一个抽象的"参数"类,它由每个不同的仪器参数扩展...例如然后使用泛型来确保将正确的参数传递给正确的类......
public interface IMeasurementwhere PARAMTYPE : Parameters { void Init(); void Close(); void Setup(PARAMTYPE p); } public abstract class Parameters { }
然后针对每个特定设备,
public class DeviceOne : IMeasurement{ public void Init() { } public void Close() { } public void Setup(ParametersForDeviceOne p) { } } public class ParametersForDeviceOne : Parameters { }