Using the [Flags] attribute on an enum allows to to perform bitwise operations on it so you can use to have settings for class.
This is especially usefull when a class can have multiple settings applied to it.
The example i'm using here is a Font, which can be Bold, Italic, or Underlined. So you'll notice I setup an enumeration with that special flags attribute.. One other thing you have to do is make the enumeration in powers of 2 (Because if you don't you'll do something like 1 | 2 == 3 which is another property of the Enum)
I hope this code helps ya guys out!
This is especially usefull when a class can have multiple settings applied to it.
The example i'm using here is a Font, which can be Bold, Italic, or Underlined. So you'll notice I setup an enumeration with that special flags attribute.. One other thing you have to do is make the enumeration in powers of 2 (Because if you don't you'll do something like 1 | 2 == 3 which is another property of the Enum)
I hope this code helps ya guys out!
01 | using System; |
02 | using System.Collections.Generic; |
03 | using System.Text; |
04 |
05 | namespace TestFlags |
06 | { |
07 | class Program |
08 | { |
09 | static void Main( string [] args) |
10 | { |
11 | Font font = new Font(); |
12 | font.FontProps = FontProperties.Bold | FontProperties.Italic; |
13 |
14 | Console.WriteLine(font.FontProps); |
15 | Console.ReadLine(); |
16 | } |
17 | } |
18 | [Flags] |
19 | public enum FontProperties |
20 | { |
21 | Bold = 1, |
22 | Italic = 2, |
23 | Underlined = 4, |
24 | None = 8 |
25 | } |
26 | public class Font |
27 | { |
28 | FontProperties fontProps; |
29 | internal FontProperties FontProps |
30 | { |
31 | get { return fontProps; } |
32 | set { fontProps = value; } |
33 | } |
34 | public Font() |
35 | { |
36 | fontProps = FontProperties.None; |
37 | } |
38 | } |
39 | } |
Комментариев нет:
Отправить комментарий