2011-02-15 161 views

回答

3

这通常是一个私有变量,被其他成员(属性,方法)用作一种便捷的方式来跟踪和确定在多个行为中进行选择的状态。

这些通常是但不总是布尔或枚举值。

例如,您可能有一个名为IsDataLoaded的布尔“标志”,以及名为ShowResults()的方法。在ShowResults()方法的主体中,您将检查IsDataLoaded标志的值,如果它是true,则只显示结果。如果false,您首先要调用LoadData()方法。数据加载完成后,LoadData()方法会将标志从false更改为true

使用枚举和位掩码,“flags”可以是包含在单个值中的一组设置或选项。例如,如果你定义了以下(C#):

enum foo 
{ 
    CaseSensitive = 1, 
    Use24HourTime = 2, 
    IgnoreRegistrySetting = 4, 
    LoadFoosAndBarsSeparately = 8 
} 

你最好能够用一个简单的数值指定设置,如13,或指定的“标志”使用CaseSensitive | IgnoreRegistrySetting | LoadFoosAndBarsSeparately

在.NET中,有一个System.FlagsAttribute属性:

System.FlagsAttribute表示枚举可以作为一个位域进行处理;也就是一组标志。

1

通常但不一定是布尔值,标志变量用于确定哪些有限的离散数据集组是特定数据块的成员。

在正常语言中,您可能会标记一段数据来表示它是一只猫。或者标记一份工作申请表示它不完整。

在C和C派生语言中,标志变量通常是枚举类型。

在CPU上,您通常会得到由先前操作设置的单位状态标志。例如。你可以把两个数字加起来,然后'进位'标志将被设置或取消设置,取决于是否应该从最高位传送位。

1

一个标志变量,以最简单的形式, 是你定义有一个 值,直到某些条件为真,在你改变变量的值 这种情况下 的变量。这是一个变量,您可以使用 来控制功能或 语句的流程,从而允许您在功能 进展时检查某些条件的 。

计算机实现

保持 数据的任何变量或常数可以被用作一个标记。您可以将 认为存储位置为 旗杆。存储在变量 中的值表达了一些含义,您可以将其视为标志。

一个例子可能是一个变量名为: 性别,它是字符数据 类型。变量中通常存储的两个值 是:'F'和'M' 意味着女性和男性。然后, 某处的程序中,我们可能 看看变量做出 决定:

if gender equals 'F' 
    display "Are you pregnant?" 
    get answer from user store in pregnant variable 

望着该标志意味着比较 在变到另一个 值的值(常数或另一个变量的值 )使用关系运算符 (在我们上面的示例中: 相等)。通过使用测试 表达式(其通常是布尔型 表达式)来控制结构为“受控” 。因此, 的标志概念“查看”变量 中的值并将其与另一个值进行比较的基本概念是理解所有控制结构如何工作的基础。

1

该词通常用于描述位字段:即某种类型的整型变量,每一位都具有特定的含义。 Windows平台API广泛使用它们。