我主要有一個C++背景,我正在學習C#。所以,我需要一些C#習語和風格的幫助。在C#中的方法中定義枚舉?
我想在C#中編寫一個小型文本文件解析方法,其中我需要一個具有三種狀態的簡單狀態變量。在C++中我將宣佈一個enum
喜歡本作的狀態變量:
enum { stHeader, stBody, stFooter} state = stBody;
...然後用它在我的解析循環是這樣的:
if (state == stHeader && input == ".endheader")
{
state = stBody;
}
在C#中我意識到,這是不可能在方法中聲明enum
。那麼,爲了清潔的風格我應該怎麼做?聲明此方法以外的內部enum
?使用魔術數字1,2,3?爲此創建一個單獨的類?
請幫我澄清一下我的困惑。
也許我錯過了一些東西,但是如果僅在單一方法中使用枚舉的話,它有什麼意義呢? – Doggett 2011-04-09 09:03:49
@Dogget - 爲狀態提供可讀的名稱。否則我將不得不寫if(state == 2 && input ==「.endheader」)state = 1; – danatel 2011-04-09 09:07:41
狀態的自我註釋等。在C中,這是非常普遍的做法,即在給出的例子中 - 使狀態比int更有意義。我不得不說C#我不得不說 - 主要是因爲你傾向於將方法分解成更小的組件,對象等,而不是C,這是更重要的方向。或者C++在與C相似的情況下使用。 – Mania 2011-04-09 09:08:10