3

来自 C 背景,我习惯于通过以下方式定义缓冲区的大小:

#define BUFFER_SIZE 1024

uint8_t buffer[BUFFER_SIZE];

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

全大写的 K&R 样式是否也适合普通的 C# Pascal/Camel 大小写?

4

5 回答 5

5
const int BUFFER_SIZE = 1024;

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

于 2009-01-28T23:53:23.067 回答
5

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

private const int BUFFER_SIZE = 1024;

但是,如果它是公共的并且您是一个框架,您可能希望它是只读的以避免客户端重新编译

于 2009-01-28T23:55:32.670 回答
3
public static readonly int BUFFER_SIZE = 1024;

我更喜欢这个而不是 const,因为编译器的恶作剧可能会发生在 const 值上(const 仅用于替换,因此更改值不会在针对原始值编译的任何程序集中更改它)。

于 2009-01-28T23:52:12.850 回答
1

不要使用#define。

定义一个常量:private const int BUFFER_SIZE 或只读变量:private readonly int BUFFER_SIZE

于 2009-01-28T23:52:56.093 回答
0

在 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];
于 2015-04-15T09:46:34.657 回答