建議7 將0值作為列舉的預設值

2021-07-22 05:32:44 字數 659 閱讀 8226

建議7: 將0值作為列舉的預設值

允許使用的列舉型別有byte、sbyte、short、ushort、int、uint、long和ulong。應該始終將0值作為列舉型別的預設值。不過,這樣做不是因為允許使用的列舉型別在宣告時的預設值是0值,而是有工程上的意義。

試想,乙個代表星期的列舉類week,我們會想當然地認為它應該有7個元素,**如下所示:

enum week  

那麼,你一不小心編寫了如下的**,它的輸出會是什麼呢?

class program  

輸出為:

week看上去多了第8個值,同時,很不幸,這段**沒有引發異常。所以,應該始終為列舉的0值指定預設值。在上面的列舉型別week中,可以將顯式為元素賦值去掉,編譯器會自動從0值開始計數,然後逐個為元素的值+1。

注意 除了上文說的week的第8個值外,其實,如果列舉型別的元素型別為整型,那麼還可以將其他整型的值賦值給week:

week

= (week)9;  

console.writeline(week); 

這段**並不會出錯,輸出:9。

**:《編寫高質量**改善c#程式的157個建議》陸敏技

方法引數 預設值 Python引數的預設值陷阱!

今日分享 引數的預設值陷阱 下面定義的函式f,其引數d是乙個預設引數,且為字典型別 def f a,d print f a print f d do some process return d 最後返回字典d,下面呼叫函式f ret dict f 1 第二個引數d使用預設值 ret dict b 2...

lua 函式 預設值 定義函式引數的預設值

如果你想要命名引數和預設值,如php或python,你可以使用表構造函式呼叫你的函式 myfunction 函式本身可以有這樣的簽名 function myfunction t setmetatable t,local a,c t 1 or t.a,t 2 or t.b,t 3 or t.c fun...

談下對預設值與預設值的理解

1 預設值 對於乙個引數,在使用者未配置的情況下,顯式地給出的取值。預設值 對於乙個引數,在使用者未配置的情況下,系統內部設定的取值,該取值對使用者不可見。當然,設定了預設值的引數,使用者也可以繼續配置。2 如果乙個引數對其他引數沒有依賴或互斥關係,那麼這個引數就必須單獨設定。依賴關係,舉個例子來說...