代码之家  ›  专栏  ›  技术社区  ›  Justin Tanner

在C#中,如何完成与a#define相同的任务

  •  3
  • Justin Tanner  · 技术社区  · 16 年前

    #define BUFFER_SIZE 1024
    
    uint8_t buffer[BUFFER_SIZE];
    

    你将如何在C#中完成同样的事情?

    此外,所有caps K&R风格是否适合普通C#Pascal/驼色外壳?

    5 回复  |  直到 16 年前
        1
  •  5
  •   Jader Dias    16 年前
    const int BUFFER_SIZE = 1024;
    

    不要使用“静态只读”,因为它会创建一个变量。“const”在构建时被替换,不创建变量。

        2
  •  5
  •   Mark Brackett Achilles Ram Nakirekanti    16 年前

    就我个人而言,我更喜欢常数:

    private const int BUFFER_SIZE = 1024;
    

    不过,如果它是公共的,并且您是一个框架,那么您可能希望它是一个只读的 avoid client recompiles

        3
  •  3
  •   ctacke    16 年前
    public static readonly int BUFFER_SIZE = 1024;
    

    我喜欢这个而不是常数,因为 compiler shenanigans that can happen 使用const值(const仅用于替换,因此更改该值不会在针对原始值编译的任何程序集中更改它)。

        4
  •  1
  •   LeleDumbo    16 年前

    定义一个常量:private const int BUFFER_SIZE

        5
  •  0
  •   MrHIDEn    9 年前

    在C#中,我决定这样做:

    //C# replace C++ #define
    struct define
    {
        public const int BUFFER_SIZE = 1024;
        //public const int STAN_LIMIT = 6;
        //public const String SIEMENS_FDATE = "1990-01-01";
    }
    
    //some code
    byte[] buffer = new byte[define.BUFFER_SIZE];