C#中如何定义全局的宏(#define)
需要的是宏定义,编译开关,不是全局变量,是全局宏定义,比如#define DEBUG 这样一个宏定义,如何能够在没个类里面都使用,而不用没个类文件中都定义一次! 展开
在 Project->Properties -> Build 设置中有一个 Conditional compilation symbols,将你要设置的宏的名称写在这个设置中就是全局的宏定义。
1、在类的头部写上#define UInt32或者在项目的环境变量定义。
2、在用到这个变量的时候,写类解决,关键在于重写隐式和显式转换。
扩展资料;
C++中宏的作用
1、使用宏定义常量
宏定义不是C/C++严格意义上的语句,所以定义后不加分号,使用define后的标示符来代替常量,当需要在程序中多次使用200这个值,比如定义数组的长度等,并且可能在以后对该值做出修改时,使用宏定义,仅需要改变宏定义所表示的值即可,而不需要到程序中去寻找哪些地方使用了200。
2、当定义局部变量时,const所定义的变量的作用域,仅限于const定义所在的函数段,而使用宏定义#define,其作用域不仅限于定义所在的函数段,而是从定义点到整个程序的结束。
参考资料:百度百科C#
c#所有变量都要声明在class内。全局变量可以用静态变量替代。
public class A
{
public static int a;
}
调用时直接用类名,A.a = 1;
宏定义:
[Flags]
enum BuyFlag : uint
{
E_BuyClick = 0,
E_SelectStock,
E_RefPrice,
E_BuyNum,
E_BuyOK_First,
E_BuyOK_Second,
E_WinStartClick,
E_WriteCMD,
E_KillTdxw,
E_CloseCMD,
E_end = 99
}
扩展资料
使用 #define 创建的符号的作用域是在其中定义该符号的文件。如以下示例所示,必须将 #define 指令放在文件顶部。
#define DEBUG
//#define TRACE
#undef TRACE
using System;
public class TestDefine
{
static void Main()
{
#if (DEBUG)
Console.WriteLine("Debugging is enabled.");
#endif
#if (TRACE)
Console.WriteLine("Tracing is enabled.");
#endif
}
}
// Output:
// Debugging is enabled.
参考资料:百度百科 #define
C#当中,如果你希望定义一个全局变量或者说全局常量的话,那么建议使用
public static const int MAX_LENGTH;
但是如果你是定义编译选项的话,其实是可以使用#define的,比如可以定义
#define DEBUG实现宏编译
class Global
{
static const int val1 = 10;
static const string val2 = "Hello";
}
然后就可以这样用
Global::val1 == 10 do...
Global::val2 == "hello" do...
此外如果是一些宏的辅助运算,比如max(a,b)
可以使用C#里的泛型来实现,也不如C++好使,说实在的
对 要的就是编译开关。怎么弄?
我想加上#define xxx就编译a代码,否则编译b代码,像这样的:
#if xxx
a
#else
b
#endif
这样的代码到处都是,好多文件里都有
我想知道#define xxx这句话写在哪?能够只改这一处能管所有的编译
把这句话放在此C#文件的最上面就可以了。