来自C背景,我习惯以下方式定义缓冲区大小:
#define BUFFER_SIZE 1024
uint8_t buffer[BUFFER_SIZE];
你将如何在 C# 中完成相同的事情?
此外,全大写的K&R样式是否适合普通的C# Pascal/Camel case?
来自C背景,我习惯以下方式定义缓冲区大小:
#define BUFFER_SIZE 1024
uint8_t buffer[BUFFER_SIZE];
你将如何在 C# 中完成相同的事情?
此外,全大写的K&R样式是否适合普通的C# Pascal/Camel case?
const int BUFFER_SIZE = 1024;
不要使用“static readonly”,因为它会创建一个变量。而“const”在构建时替换且不创建变量。
就我个人而言,我更喜欢常数:
private const int BUFFER_SIZE = 1024;
虽然,如果它是公共的并且你是一个框架,你可能希望它是只读的,以避免客户端重新编译。
public static readonly int BUFFER_SIZE = 1024;
我倾向于这个选项,而不是使用const。由于编译器会在const值上发生一些诡计,尽管const仅用于替换,因此更改该值不会影响针对原始编译的任何程序集中的值。
不要使用 #define。
Define a constante: private const int BUFFER_SIZE or readonly variable: private readonly int BUFFER_SIZE
在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];