# 程序员参考   #define请参见
C# 预处理器指令 | 条件方法教程
#define 使您得以定义符号,这样,通过将该符号用作传递到 #if 指令的表达式,该表达式将计算为 true。#define symbol
其中: symbol 
要定义的符号名称。 
备注
符号可用于指定编译的条件。可以用 #if 或 #elif 来测试符号。还可以使用 conditional 属性执行条件编译。可以定义符号,但是无法对符号赋值。#define 指令必须在使用任何也不是指令的指令之前出现在文件中。也可以用 /define 编译器选项定义符号。可以用 #undef 取消定义符号。用 /define 或 #define 定义的符号与具有同一名称的变量不冲突。即,不应将变量名传递到预处理器指令,并且只能用预处理器指令计算符号。用 #define 创建的符号的范围是在其中定义该符号的文件。示例
有关如何使用 #define 的示例,请参见 #if。请参见
C# 预处理器指令 | 条件方法教程

解决方案 »

  1.   

    #define Test 0x0001
    这样代表数据的 的对应public class Consts
    {
        public const int Testp;}
    如果里面还有表达式的那种
    没有!
      

  2.   

    知道了,原来C#中也有#define,#if,#elif,#endif这些预处理器指令在C#中所有的#define都应该写在using之前吧?
      

  3.   

    #define #undef在C#中属预处理器指令如:
    #define DEBUG
    它告诉编译器在给定名称符号,上面的语句中就是DEBUG.有点类似于声明一个变量,但这个变量并没有真正的值,只是存在而已.这个符号不是实际代码的一部分,而只在编译器编译代码时存在.#undef正好相反,删除符号的定义:
    如:
    #undef DEBUG
    如果符号不存在,#undef就不发挥作用。同样,如果符号已经存在,#define也不起作用。必须把#define 和#undef放在C#源代码开头,在声明要编译的任何对象的代码之前。在C#中#define本身并没有什么用,但当与其它预处理指令结合使用时,特别是#if,它的功能就非常强大了。这是本人对#define 和#undef在C#中的理解,如有不对的地方还请各位朋友指点。小弟在此献丑了。
      

  4.   

    C#的#define能力很有限的,不能像C那样做替换
    建议使用const
    (何况C++里头也都推荐用const代替#define)
      

  5.   

    以前单纯的做C#项目,还真没用过预处理指令,这次算是了解了。大家继续C++和C#的语法讨论const是枚举啊,Sunmast(速马|一切皆有可能) 是指的vc中用#define定义常量的话,在C#中最好用const来对应吧?