2016-05-17 64 views
0

我有一個重複的方法調用看起來像這樣:簡化重複的方法調用重複

GroupGenerator(param1, enum.val1, true, false, false) 

每次調用布爾值的變化來涵蓋所有可能的組合,

true, false, false 
true, true, false 
etc etc 

是否有整潔的方式做到這一點,而不寫GroupGenerator(param1...一遍又一遍?

任何幫助/意見非常讚賞。

+3

您可以通過另一種調用多個組合的方法調用'GroupGenerator'。 – Sinatr

+0

看來您應該在方法內處理布爾組合,如果所有方法都需要的話,這可以確保所有模塊都承擔一個責任。此外,這個問題更適合[代碼評論](http://codereview.stackexchange.com) –

回答

7

true, false, false實際上是二進制的100true, true, false110。考慮到這一點,

public static bool GetBit(byte b, int bitNumber) 
{ 
    return (b & (1 << bitNumber)) != 0; 
} 

for(byte n = 0; n < 8; n++) 
    GroupGenerator(param1, enum.val1, GetBit(n, 0), GetBit(n, 1), GetBit(n, 2));