Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Determining if One or More Enumeration Flags Are Set
|
31
{
// lang contains at least Language.CSharp and Language.VBNET.
}
To determine if a variable exclusively contains a set of bit flags that are all set, use the
following conditional:
if((lang | (Language.CSharp | Language.VBNET)) ==
(Language.CSharp | Language.VBNET))
{
// lang contains only the Language.CSharp and Language.VBNET.
}
Discussion
When enumerations are used as bit flags and are marked with the Flags attribute,
they usually will require some kind of conditional testing to be performed. This test-
ing necessitates the use of the bitwise AND (
&) and OR (|) operators.
Testing for a variable having a specific bit flag set is done with the following condi-
tional statement:
if((lang & Language.CSharp) == Language.CSharp)
where lang is of the Language enumeration type.
The
& operator is used with a bit mask to determine if a bit is set to 1. The result of
ANDing two bits is
1 only when both bits are 1; otherwise, the result is 0. You can
use this operation to determine if a specific bit flag is set to a
1 in the number con-
taining the individual bit flags. If you AND the variable
lang with the specific bit flag
you are testing for (in this case
Language.CSharp), you can extract that single specific
bit flag. The expression
(lang &
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata