0

我编写了一个应用程序(C#,.NET 2.0),用于控制通过串口连接的电子设备。

现在设备软件已经更新了一些旧版本没有的新功能。

如何维护代码中的这些更改,以便新的应用程序版本支持两个设备版本?

我知道我可以使用一些 if 语句或预处理器命令来检查设备版本,但是在 C# 中执行此操作的正确方法是什么?

编辑:

我想我应该写更多关于我的问题。假设我有一个类用于从旧设备版本转换一些值:

class Conversions
{ 
 public static float IntToPressure(int parameter)
 {
  return AlgorithmA(parameter);
 }
 public static float IntToUnderpressure(int parameter);
 {
  return AlgorithmB(parameter);
 }
}

在新版本中,我只需要一种方法:IntToPressure,它将转换所有压力参数,+ 新的温度方法:

class Conversions
{ 
 public static float IntToPressure(int parameter)
 {
  //changed
  return NewAlgorithm(parameter);
 }
 //new
 public static float IntToTemperature(int parameter)
 {
  return TempAlgorithm(parameter);
 }
}

使用转换(旧版本)的类也是如此:

class UsingConversions
{ 
 public float GetPressure()
 {
  return Conversions.IntToPressure(this.somePressureParameter);
 }
 public float GetUnderpressure()
 {
  return Conversions.IntToUnderpressure(this.someUnderpressureParameter);
 }
}

新的类版本看起来像(+新功能):

class UsingConversions
{ 
 public float GetPressure()
 {
  return Conversions.IntToPressure(this.somePressureParameter);
 }
 public float GetUnderpressure()
 {
  //changed
  return Conversions.IntToPressure(this.someUnderpressureParameter);
 }
 //new
 public float GetTemperature()
 {
  return Conversions.IntToTemperature(this.someTemperatureParameter);
 }
}

另一个问题是新的应用程序版本包含用于配置设备和使用新设备功能的新类的定义。

4

1 回答 1

0

您可以找出两个子类中设备之间的差异,并通过检查插入的设备来实例化正确的设备。如果您需要将这些更改导出到外部世界,这将不起作用

于 2012-04-04T09:02:29.220 回答