serialport를 통해 연결된 전자 장치를 제어하는 데 사용되는 응용 프로그램 (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);
}
}
:
class Conversions
{
public static float IntToPressure(int parameter)
{
//changed
return NewAlgorithm(parameter);
}
//new
public static float IntToTemperature(int parameter)
{
return TempAlgorithm(parameter);
}
}
: 온도 IntToPressure 모든 압력 매개 변수를 변환합니다, + 새로운 방법을
같은 전환 (이전 버전)를 사용하는 클래스 함께 :
: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);
}
}
또 다른 문제는 새로운 앱 버전에 기기 구성 및 새로운 기기 기능 사용에 대한 새로운 클래스 정의가 포함되어 있다는 것입니다.
내 질문을 편집했습니다. 그것을 확인하시기 바랍니다. – adams