【发布时间】:2023-04-01 01:11:01
【问题描述】:
这是我想做的一个具体例子。
考虑string.Join 函数。 Pre-.NET 4.0,只有两个重载,都需要string[]参数。
从 .NET 4.0 开始,新的重载采用更灵活的参数类型,包括 IEnumerable<string>。
我有一个库,其中包含一个 Join 函数,它基本上完成了 .NET 4.0 string.Join 函数的作用。我只是想知道我是否可以使这个函数的实现依赖于目标.NET 框架。如果是 4.0,它可以简单地在内部调用 string.Join。如果是 3.5 或更早版本,它可以调用自己的内部实现。
- 这个想法有意义吗?
- 如果它确实有意义,那么最合乎逻辑的方法是什么?我想我只是假设预处理器指令最有意义,因为在针对 4.0 之前的 .NET 版本时,使用
IEnumerable<string>参数调用string.Join甚至不会编译 ;所以我使用的任何方法都必须在编译之前进行。 (例如,在运行时检查Environment.Version属性是行不通的。)
【问题讨论】:
标签: c# .net frameworks c-preprocessor preprocessor-directive