從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