16
|
dkackman Srinivas Kokkula · 技术社区 · 15 年前 |
![]() |
1
7
没有可以使用的内置预编译器常量。但是,很容易在vs中创建自己的构建配置,每个配置都有自己的一组定义常量,当然还有一个目标框架版本。很多人这样做是为了有条件地编译基于32或64位的差异。 |
![]() |
2
10
在.csproj(或.vbproj,理论上)中定义自定义编译符号时需要注意的一个大警告是:它们会覆盖以前定义的所有编译符号。例如,考虑msbuild代码段:
如其值所示,第二个defineconstants元素将删除defineconstants的第一个值。为了避免这种情况,您需要重写第二个defineconstants元素,使其看起来像这样:
此外,您还需要将其放入定义的属性组中。 之后 所有其他属性组(如Visual Studio 2010当前添加的自定义编译符号)都将以这样的方式删除您定义的任何其他自定义编译符号(如果这些符号放在Visual Studio下拉其定义之前)。我已将此问题提交给Microsoft。您可以在以下位置跟踪其进度: Microsoft Connect . |
![]() |
3
7
附带说明的是,条件编译代码会让遇到它的程序员感到沮丧。 根据评论编辑 最好是编写自己的类,这样您就可以保证它将要做什么,并且您没有任何奇怪的签名或继承问题:
和往常一样,使用内置的东西和使用自己的代码相比,这是很好的权衡。一般来说,这意味着问问自己,“我可以维护和支持这段代码吗?”vs.“代码能做我需要的事情吗,开箱即用?”
在这种情况下,因为你不能保证
|
![]() |
4
1
因为您应该有不同的项目,所以您可以有分部类,并且只引用每个项目所需的具有特定逻辑的类: 类名 公共部分类名…} 40.CS 公共部分类名{ 公共tuple somemethod()… } 35.CS 公共部分类名{ public keyValuePair someMethod()… } |
![]() |
Linesofcode · 错误未指定sqlcese40。dll 7 年前 |
![]() |
Arvo Bowen · 如何使用父控件的默认字体创建用户控件? 9 年前 |
![]() |
Asdfg · 如何解析此文本并构建对象 9 年前 |
![]() |
qakmak · WPF win8平板电脑模式键盘隐藏屏幕底部的项目 9 年前 |
![]() |
DeJaVo · .NET4到.NET4.5运行时的更改是什么 10 年前 |