In situations such as this one, I usually prefer to use good old-fashioned bit-fields, as examplified by:

VB.NET Code:
  1. <FlagsAttribute()>
  2. Public Enum MyBitfield
  3.  
  4.     IsFontColour = &H1 'Value gets doubled for each field so each one occupy a single bit of a 32 bit number (ie. max 32 entries).
  5.     IsFontSize = &H2
  6.     IsWidth = &H4
  7.     IsHeight = &H8
  8.     IsMarginL = &H10
  9.     IsMarginR = &H20
  10.     IsSpeed = &H40
  11.     IsEasing = &H80
  12.  
  13. End Enum
  14.  
  15. Public Class MyBitClass
  16.  
  17.     Public Function TestBitfields(ByVal sBitValue As MyBitfield) As Boolean
  18.  
  19.         'Set test to hold True for IsFontSize, IsSpeed and IsHeight and False for all others fields.
  20.         Dim test As MyBitfield = MyBitfield.IsFontSize Or MyBitfield.IsSpeed Or MyBitfield.IsHeight
  21.  
  22.         If (sBitValue And test) = test Then 'Simultaneous test for 3 True and 5 False booleans
  23.  
  24.             '...
  25.  
  26.         End If
  27.  
  28.         'Can also be used as:
  29.         If (sBitValue And &HCB) <> 0 Then
  30.  
  31.             'I get to here, if one of IsEasing, IsSpeed, IsHeight, IsFontSize or IsFontColour is True.
  32.  
  33.         End If
  34.  
  35.         Return test = MyBitfield.IsMarginL
  36.  
  37.     End Function
  38.  
  39. End Class