Redian新闻
>
C#中如何share Pre-processing directives
avatar
uq
2
往昔悠悠岁月稠
事过境迁几度秋
如梦里
烟雨过幽州
avatar
k*u
3
说起吕雉,恐怕没人说她好话,不管她年轻时陪着刘邦吃了多少苦,有多么
贤惠睿智,帮着刘邦稳固天下,如果没有对戚夫人的报复,可能还有人把她和武则天相
提并论,都有治国的魄力,虽然没有武则天的智慧,但也算是有手段的人。但她对戚夫
人疯狂残忍的报复,真的抹杀了她身上其他的品质,只剩下恶毒和残酷。
吕雉其实也是一个女人,她对戚夫人做的事情要是放在现在来看就是原配和
小三之间的战争,最后原配大获全胜,小三被折磨致死,私生子被杀,除了自己的丈夫
出轨的事实没法挽回,她对小三的恨算是宣泄干净了。就是吓到了自己的孩子,这也是
算她付出的代价。
其实后宫从来都不是什么太平地方,嫔妃争宠,东宫之位的争夺和后宫有理
不清的关系。这也是一个江湖,成王败寇,谁心里都有觉悟。戚姬母子出现之后,吕雉
不但失去丈夫的宠爱,更面临儿子的太子地位不保的险境。一个女人没了丈夫的爱又要
赔进去儿子,吕雉这样刚烈到底性子怎么可能受得了。
要不是周昌和自己儿子总是戚姬母子,她可能也不会下此毒手。但眼看自己
的儿子也和自己不一条心,她选择赶尽杀绝来回应儿子的抗拒。不是说我狠吗?你还没
看见我更狠的样子。
到最后,报复的快感逝去,她每天都觉得戚姬的鬼魂缠身也是凄凉透了。
avatar
c*g
4
在C++中,如果我在一个头文件mine.h中#define MINE 0,那只要我以后在其他文件中#
include mine.h,MINE这个宏就被视作定义了。日后我comment掉mine.h中的#define
MINE 0这一句,其他文件中也会有相应的改变。
但是好像C#的pre-processing directives做不到这一点。。。因为放在一个工程里,
都不用显式地include一个文件,就可以用写在那个文件中的类。而且,貌似pre-
prepocessing directives只在本文件scope之内。如果我class1.cs和class2.cs都有
#ifdef MINE
....
#else
....
#endif
之类的条件编译。那我每次要换一种编译,都得同时到两个文件中comment或uncomment
掉#define MINE这一句。如果是N个文件呢?麻烦得要死。。。
各路高人,请指教一下有没有良策。多谢!
avatar
O*d
5
Do not ask, do not tell
avatar
h*3
7
百度
avatar
o*2
8
And in C# you can only define a symbol/condition but macro.
avatar
b*i
9
能给个例子吗?
Java对应的有吗?

【在 o**2 的大作中提到】
: And in C# you can only define a symbol/condition but macro.
avatar
o*2
10
Yep,you can find examples following the MSDN link above including how to set
it up in Visual Studio.
I don't think Java has an equivalent of this.

【在 b***i 的大作中提到】
: 能给个例子吗?
: Java对应的有吗?

avatar
N*n
11
Macro definition is a major no-no in modern programming language as
it could ruin intellisense and tooling support.
Imagine you have a macro like this:
#ifdef SOMETHING
#define SCREW_UP {
#else
#define SCREW_UP }
#endif
Now what is SCREW_UP when it's used in your code to an IDE, { or }?
When such macro shows up, IDE is all confused and thus cannot run
intellisense or refactoring properly. This is one major reason why
MARCO definition is dropped from modern PMs.
avatar
s*n
12
定义一个专门装constant的class.

中#

【在 c******g 的大作中提到】
: 在C++中,如果我在一个头文件mine.h中#define MINE 0,那只要我以后在其他文件中#
: include mine.h,MINE这个宏就被视作定义了。日后我comment掉mine.h中的#define
: MINE 0这一句,其他文件中也会有相应的改变。
: 但是好像C#的pre-processing directives做不到这一点。。。因为放在一个工程里,
: 都不用显式地include一个文件,就可以用写在那个文件中的类。而且,貌似pre-
: prepocessing directives只在本文件scope之内。如果我class1.cs和class2.cs都有
: #ifdef MINE
: ....
: #else
: ....

avatar
c*g
13
我想要的不是constant,而是选择性编译。:)

【在 s*****n 的大作中提到】
: 定义一个专门装constant的class.
:
: 中#

avatar
c*g
14
I see. Thanks! 不过这个可能对一般生成exe或dll的project可行,对我的也许不可行
。我要用到的是UNITY游戏平台,平台里自己compile和build,不是用visual studio的
build来生成binary的。

【在 o**2 的大作中提到】
: Use /define compiler option instead.
: http://msdn.microsoft.com/en-us/library/0feaad6z.aspx

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。