从C背景我已经习惯了通过以下方式定义缓冲区的大小来:在C#中,你如何做到同样的事情,使用#define
#define BUFFER_SIZE 1024
uint8_t buffer[BUFFER_SIZE];
你会怎么做的实现在C#中同样的事情?
还有全部大写的K & R风格适合于正常的C#Pascal/Camel情况吗?
从C背景我已经习惯了通过以下方式定义缓冲区的大小来:在C#中,你如何做到同样的事情,使用#define
#define BUFFER_SIZE 1024
uint8_t buffer[BUFFER_SIZE];
你会怎么做的实现在C#中同样的事情?
还有全部大写的K & R风格适合于正常的C#Pascal/Camel情况吗?
const int BUFFER_SIZE = 1024;
,因为它创建了一个变量,不要使用 “静态只读”。 “const”在构建时被替换,并且不会创建变量。
public static readonly int BUFFER_SIZE = 1024;
我喜欢这种在一个const由于compiler shenanigans that can happen用常量的值(常量只是用于替换,所以改变值与原始编译的任何组件都不会改变它)。
请勿使用#define。
定义康斯坦特:私人const int的BUFFER_SIZE 或只读变量:私人只读INT BUFFER_SIZE
就个人而言,我更喜欢常量:
private const int BUFFER_SIZE = 1024;
不过,如果它是公共和你是一个框架,你可能希望它是一个只读到avoid client recompiles。
在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];
我第二两个答案(ctacke,Megacan)。 – Leonidas 2009-01-28 23:55:07
CamelCase只是一种编码习惯。没有语义。 – Leonidas 2009-01-28 23:59:35
是的,但我只是好奇,如果C#程序员会像BUFFER_SIZE那样定义常量,或者只是将其写入像Pascal Case这样的BufferSize。 – 2009-01-29 00:02:07