我处于方法代码实现取决于所选 Visual Studio 解决方案配置的情况。
每个配置都针对不同的外部 DLL,该 DLL 提供不同的 API 版本,以便我区分它们。如果该信息有帮助,这些 DLL 将用于 Autodesk Revit API。
正如您可能认为的那样,每个 API 版本虽然非常相似,但它们之间可能存在细微差别,这迫使我根据目标版本使用不同的代码。
我为每个配置定义了不同的符号(REVIT_2014
、REVIT_2015
等),我知道我可以依赖于好的旧#ifdef
指令,但首先我想探索是否有更优雅的解决方案。
我已经阅读过ConditionalAttribute
但我不能以我想要的方式使用它,即:
class Test
{
[Conditional("REVIT_2015")]
bool TestMethod
{
//Revit 2015 specific code
}
[Conditional("REVIT_2016")]
bool TestMethod
{
//Revit 2016 specific code
}
}
AsConditionalAttribute
不允许覆盖方法,也不允许方法返回值。
在我开始用丑陋的指令困扰我的代码之前,我#ifdef
还有其他解决方案吗?
提前致谢。