您可以制作两个版本的项目文件,针对不同的框架版本。在这种情况下,我会将所有项目文件放在现有项目目录中。
在每个项目中,您将定义一个表示框架版本的符号(根据需要),例如DOTNET45
. 您可以在Properties - Build - Conditional Compilation Symbols下执行此操作
然后你可以使用#if
指令:
class MyClass<T> : IList<T>
#if DOTNET45
, IReadOnlyList<T>
#endif
{
// Your usual code
#if DOTNET45
// IReadOnlyList implementation
#endif
}
然而,这可能会变得混乱。因此,或者,您可以使用部分类:
partial class MyClass<T>
{
}
#if DOTNET45
partial class MyClass<T> : IReadOnlyList<int>
{
// IReadOnlyList implementation
}
#endif
显然,部分类也可以在文件中进行划分,因此您可以完全不使用#if
,只在项目的 .NET 4.5 版本中包含这个部分类文件。