2012-04-04 50 views
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); 
} 
} 

新類版本看起來像(+新的funcionality):

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); 
} 
} 

另一個問題是,新的應用程序版本包含的用於配置設備新類和使用新設備的功能定義。

回答

0

您可以計算兩個子類中設備之間的差異,並通過檢查插入哪個設備來實例化正確的設備。如果您需要將這些更改導出到外部世界,這不起作用

+0

我編輯了我的問題。請檢查一下。 – adams 2012-04-05 10:51:19