C#同一个工程的cs文件里,如何根据.Net的版本设定不同的代码

wkmsweind 2013-04-12 05:44:05
如题。目的是有些功能不同的.Net版本实现不一样,而且项目需要编译2种.Net版本的dll。希望能共用代码文件,因为大部分代码是一样的。谢谢
C++里可以根据宏定义来区分。C# .Net的要如何处理呢
#if _MSC_VER == 1200
int i = 10;
#else
int i = 20;
#endif
...全文
283 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkmsweind 2013-04-28
  • 打赏
  • 举报
回复
引用 8 楼 qxyywy 的回复:
未实际处理过这种代码 但.NET自己里面有这样的例子:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Web;

namespace $rootnamespace$
{
	public class $safeitemrootname$
	{
	}
}
代码里的$if$ ($targetframeworkversion$ == 3.5)using System.Linq; 是否是楼主所需要的
这个方法没有试出来,好像不行
wkmsweind 2013-04-16
  • 打赏
  • 举报
回复
引用 4 楼 wonderfuly 的回复:
也可在方法上用 Attribute指定满不同条件执行不同方法。
能否举个例子?
wkmsweind 2013-04-16
  • 打赏
  • 举报
回复
引用
NET20
这个是自己定义的?
wkmsweind 2013-04-16
  • 打赏
  • 举报
回复
引用
"也可在方法上用 Attribute指定满不同条件执行不同方法。"
这个能举个例子么?
showjim 2013-04-16
  • 打赏
  • 举报
回复
如果不想修改 条件编译符号,可以在相关程序文件开始位置写个自定义标识,然后在 生成事件->预先 中调用一个程序修改它。 可以参考fastCSharp
showjim 2013-04-16
  • 打赏
  • 举报
回复
项目 -> 右键 属性 -> 生成 -> 条件编译符号 多个用 ; 隔开,比如 XXX
#if XXX
#else
#endif
qxyywy 2013-04-16
  • 打赏
  • 举报
回复
未实际处理过这种代码 但.NET自己里面有这样的例子:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Web;

namespace $rootnamespace$
{
	public class $safeitemrootname$
	{
	}
}
代码里的$if$ ($targetframeworkversion$ == 3.5)using System.Linq; 是否是楼主所需要的
游戏人间 2013-04-13
  • 打赏
  • 举报
回复
也可在方法上用 Attribute指定满不同条件执行不同方法。
游戏人间 2013-04-13
  • 打赏
  • 举报
回复


#if(NET20)
 int i = 10;
#else
 int i = 20;
#endif

好像可以这样,不知道是不是你想要的效果。
gxingmin 2013-04-12
  • 打赏
  • 举报
回复
不过C#里的这个跟C++宏定义没法比,建议你换其他方式来判断
gxingmin 2013-04-12
  • 打赏
  • 举报
回复
可以用#define #define VER1 #define VER2 ... #if VER1 int i = 10; #else int i = 20; #endif

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧